لماذا نقوم بتقسيم الكود إلى دوال ؟
يُحسّن تقسيم الكود إلى دوال منفصلة قابلية القراءة وإعادة الاستخدام والصيانة.
إعادة الاستخدام: اكتب الكود مرة واحدة، واستخدمه عدة مرات دون تكرار، مما يزيد من قابلية إعادة استخدامه.
سهولة القراءة: تُسهّل الطرق المُسمّاة الأصغر قراءة الكود وفهمه.
سهولة الصيانة : يُسهّل تنظيم الكود في طرق إصلاح الأخطاء أو تحديثه.
الاختبار : يُمكن اختبار الطرق بشكل مستقل، مما يُحسّن موثوقية الكود ويُسهّل تصحيح الأخطاء.
يُحسّن تقسيم الكود إلى دوال منفصلة قابلية القراءة وإعادة الاستخدام والصيانة.
إعادة الاستخدام: اكتب الكود مرة واحدة، واستخدمه عدة مرات دون تكرار، مما يزيد من قابلية إعادة استخدامه.
سهولة القراءة: تُسهّل الطرق المُسمّاة الأصغر قراءة الكود وفهمه.
سهولة الصيانة : يُسهّل تنظيم الكود في طرق إصلاح الأخطاء أو تحديثه.
الاختبار : يُمكن اختبار الطرق بشكل مستقل، مما يُحسّن موثوقية الكود ويُسهّل تصحيح الأخطاء.
أي من التالي يُستخدم لإنهاء تنفيذ الدالة؟
Anonymous Quiz
19%
A) Stop
35%
B) break
29%
C) exit
18%
D) return
كورسات مجانية في هذه المجالات لمن يريد التعلم 👇
1. Artificial Intelligence + Data Analyst 2. Machine Learning + Data Science
3. Cloud Computing + Web Dev
4. Ethical Hacking + Hacking
5. Data Analytics + DSA
6. AWS Certified + IBM COURSE
7. Data Science + Deep Learning
8. BIG DATA + SQL COMPLETE COURSE
9. Python + OTHERS
10 MBA + HANDWRITTEN NOTES
Link ⤵️
https://drive.google.com/drive/mobile/folders/1if09a9QyNfBRlAKey7If5preZ3BswudZ
1. Artificial Intelligence + Data Analyst 2. Machine Learning + Data Science
3. Cloud Computing + Web Dev
4. Ethical Hacking + Hacking
5. Data Analytics + DSA
6. AWS Certified + IBM COURSE
7. Data Science + Deep Learning
8. BIG DATA + SQL COMPLETE COURSE
9. Python + OTHERS
10 MBA + HANDWRITTEN NOTES
Link ⤵️
https://drive.google.com/drive/mobile/folders/1if09a9QyNfBRlAKey7If5preZ3BswudZ
Which of the following is NOT an OOP concept in Java?
Anonymous Quiz
12%
A) Encapsulation
12%
B) Inheritance
38%
C) Polymorphism
38%
D) Compilation
👍1🔥1
# ✅ *🧠 المفاهيم الأساسية في جافا التي يجب أن تعرفها* ☕️
## 1. البرمجة الكائنية (OOP)
جافا تعتمد بالكامل على البرمجة الكائنية، باستخدام الفئات والكائنات.
- التغليف: تجميع البيانات والأساليب معًا
- الوراثة: فئة ترث من فئة أخرى
- التعددية الشكلية: تحميل وتجاوز الأساليب
- التجريد: إخفاء التنفيذ المعقد
## 2. إدارة الذاكرة
- جمع القمامة التلقائي عبر JVM
- مناطق الذاكرة: Heap، Stack، منطقة الأسلوب، إلخ.
- استخدام
## 3. إطار المجموعات
- الواجهات:
- التطبيقات:
- أساليب مفيدة للبحث، الفرز، والتكرار
## 4. معالجة الاستثناءات
- استخدام
- الاستثناءات المفحوصة مقابل الاستثناءات غير المفحوصة
- إنشاء استثناءات مخصصة عن طريق توسيع
## 5. الإدخال/الإخراج للملفات مع
- استخدام
-
## 6. تعدد المهام والتزامن
- استخدام فئة
- التزامن باستخدام
- إطار العمل Executors لإدارة تجمعات الخيوط
## 7. ميزات جافا 8
- اللامدا:
- التدفقات: معالجة بيانات قوية
- Optional: التعامل مع القيم الفارغة بأمان
- الواجهات الوظيفية:
## 8. تفاصيل JVM
- تحويل بايت كود إلى كود آلة في وقت التشغيل
- استخدام المترجم JIT للأداء
- يقوم Classloader بتحميل ملفات
## 9. الكلمات الرئيسية والمعدلات
-
-
## 10. أنماط التصميم (الأساسيات)
- Singleton
- Factory
- Builder
- Observer
#تعلم_البرمجة
## 1. البرمجة الكائنية (OOP)
جافا تعتمد بالكامل على البرمجة الكائنية، باستخدام الفئات والكائنات.
- التغليف: تجميع البيانات والأساليب معًا
- الوراثة: فئة ترث من فئة أخرى
- التعددية الشكلية: تحميل وتجاوز الأساليب
- التجريد: إخفاء التنفيذ المعقد
## 2. إدارة الذاكرة
- جمع القمامة التلقائي عبر JVM
- مناطق الذاكرة: Heap، Stack، منطقة الأسلوب، إلخ.
- استخدام
finalize() للتنظيف (على الرغم من أنه مُهمل في الإصدارات الجديدة)## 3. إطار المجموعات
- الواجهات:
List، Set، Map، Queue - التطبيقات:
ArrayList، HashSet، HashMap - أساليب مفيدة للبحث، الفرز، والتكرار
## 4. معالجة الاستثناءات
- استخدام
try-catch-finally للأخطاء في وقت التشغيل - الاستثناءات المفحوصة مقابل الاستثناءات غير المفحوصة
- إنشاء استثناءات مخصصة عن طريق توسيع
Exception أو RuntimeException## 5. الإدخال/الإخراج للملفات مع
java.io و java.nio- استخدام
FileReader و BufferedReader للقراءة -
Files و Paths من NIO للعمليات الحديثة والسريعة## 6. تعدد المهام والتزامن
- استخدام فئة
Thread أو تنفيذ Runnable - التزامن باستخدام
synchronized و Lock - إطار العمل Executors لإدارة تجمعات الخيوط
## 7. ميزات جافا 8
- اللامدا:
(a, b) -> a + b- التدفقات: معالجة بيانات قوية
- Optional: التعامل مع القيم الفارغة بأمان
- الواجهات الوظيفية:
Predicate، Function، إلخ.## 8. تفاصيل JVM
- تحويل بايت كود إلى كود آلة في وقت التشغيل
- استخدام المترجم JIT للأداء
- يقوم Classloader بتحميل ملفات
.class في وقت التشغيل## 9. الكلمات الرئيسية والمعدلات
-
static، final، abstract، transient، volatile -
this، super، instanceof – غالبًا ما تُطرح في المقابلات## 10. أنماط التصميم (الأساسيات)
- Singleton
- Factory
- Builder
- Observer
#تعلم_البرمجة
What is the default value of an integer array in Java?
Anonymous Quiz
18%
A) null
68%
B) 0
9%
C) garbage value
5%
C) depends on JVM
How can you correctly initialize a 2D array in Java?
Anonymous Quiz
5%
A) int[][] arr = new int(3,3);
55%
B) int arr[][] = {{1,2}, {3,4}};
20%
C) int arr[][] = new int[2][2]{{1,2}, {3,4}};
20%
D) int arr[2][2] = {1,2,3,4};
What is an object in Java?
Anonymous Quiz
35%
A) A class template
27%
B) An instance of a class
19%
C) A function
19%
D) A primitive data type
for (int i = 0; i < 5; i++) {
if (i == 3)
continue;
System.out.print(i + " ");
}إذا كنت تعمل في مجال التكنولوجيا أو تخطط للانتقال إليه، فستجد موردًا واحدًا على الأقل مفيدًا.
إليك محرك موارد مجاني بسعة 500 تيرابايت يحتوي على دروس تعليمية + كتب + دورات + تدريبات + موارد تعليمية باللغات التالية:
☝Data science,
☝Artificial Intelligence,
☝AWS Certification,
☝Cloud Ops - GCP, Azure, AWS,
☝BIG DATA,
☝Data Analytics,
☝BI,
☝IT Support,
☝MBA,
☝Machine Learning,
☝Deep Learning,
☝Ethical Hacking,
☝SPSS,
☝Statistics,
☝Learning language resources ( English , French , German)
You will learn to stupor. ⬇️
You will learn to stupor.
https://drive.google.com/drive/folders/1CgN7DE3pNRNh_4BA_zrrMLqWz6KquwuD
إليك محرك موارد مجاني بسعة 500 تيرابايت يحتوي على دروس تعليمية + كتب + دورات + تدريبات + موارد تعليمية باللغات التالية:
☝Data science,
☝Artificial Intelligence,
☝AWS Certification,
☝Cloud Ops - GCP, Azure, AWS,
☝BIG DATA,
☝Data Analytics,
☝BI,
☝IT Support,
☝MBA,
☝Machine Learning,
☝Deep Learning,
☝Ethical Hacking,
☝SPSS,
☝Statistics,
☝Learning language resources ( English , French , German)
You will learn to stupor. ⬇️
You will learn to stupor.
https://drive.google.com/drive/folders/1CgN7DE3pNRNh_4BA_zrrMLqWz6KquwuD
❤4
التسميات الصحيحة في الكود البرمجي
بسم الله الرحمن الرحيم
الأسماء موجودة في كل مكان في الكود المتغيرات، الدوال، الكلاسات، الحزم، الملفات…
واختيار اسم جيد يعني أن الكود سيكون واضح وسهل القراءة، بينما الأسماء السيئة تجعل الكود غامض وصعب الفهم لك او لغيرك من المبرمجين.
في كتاب Clean Code ذكر الكاتب (Robert C. Martin) عشر قواعد مهمة لاختيار أسماء صحيحة:
1. Use Intention-Revealing Names
2. Avoid Disinformation
3. Make Meaningful Distinctions
4. Use Pronounceable Names
5. Use Searchable Names
6. Avoid Encodings
7. Hungarian Notation (Don’t)
8. Class Names vs Method Names
9. Don’t Be Cute
10. Pick One Word per Concept
---
القاعدة الأولى: Use Intention-Revealing Names
معناها: اختر أسماء تكشف النية والغرض من وجودها في الكود وتجنب الأسماء التي لا تدل او تعبر عن شي، اجعل المتغيرات تتحدث عن سبب وجودها لكي يسهل عليك وعلى غيرك من المبرمجين قراءة الكود.
ولكي تجعل الأسماء تعبر عن نيتها يجب عليك جعلها تجيب عن هذه الأسأله :
ما سبب وجوده؟
ماذا يفعل؟
كيف يتم استخدامه؟
أنظر إلى هذا المثال السيء :
هنا القارئ سيسأل: هل d تعني يوم؟ مدة؟ عدد؟
اما في هذا المثال الأفضل
من النظرة الأولى، أي شخص يقرأ الكود سيفهم الغرض مباشرة بدون الحاجة إلى شرح إضافي.
الخلاصة الاسم الجيد مثل تعليق مدمج داخل الكود يعبر يكشف الغرض والنية من وجود الكود
بقية القواعد سوف نشرحها في منشور آخر
#cleancode
بسم الله الرحمن الرحيم
الأسماء موجودة في كل مكان في الكود المتغيرات، الدوال، الكلاسات، الحزم، الملفات…
واختيار اسم جيد يعني أن الكود سيكون واضح وسهل القراءة، بينما الأسماء السيئة تجعل الكود غامض وصعب الفهم لك او لغيرك من المبرمجين.
في كتاب Clean Code ذكر الكاتب (Robert C. Martin) عشر قواعد مهمة لاختيار أسماء صحيحة:
1. Use Intention-Revealing Names
2. Avoid Disinformation
3. Make Meaningful Distinctions
4. Use Pronounceable Names
5. Use Searchable Names
6. Avoid Encodings
7. Hungarian Notation (Don’t)
8. Class Names vs Method Names
9. Don’t Be Cute
10. Pick One Word per Concept
---
القاعدة الأولى: Use Intention-Revealing Names
معناها: اختر أسماء تكشف النية والغرض من وجودها في الكود وتجنب الأسماء التي لا تدل او تعبر عن شي، اجعل المتغيرات تتحدث عن سبب وجودها لكي يسهل عليك وعلى غيرك من المبرمجين قراءة الكود.
ولكي تجعل الأسماء تعبر عن نيتها يجب عليك جعلها تجيب عن هذه الأسأله :
ما سبب وجوده؟
ماذا يفعل؟
كيف يتم استخدامه؟
أنظر إلى هذا المثال السيء :
int d;
هنا القارئ سيسأل: هل d تعني يوم؟ مدة؟ عدد؟
اما في هذا المثال الأفضل
int elapsedTimeInDays; // الوقت المنقضي بالأيام
int daysSinceCreation; // عدد الأيام منذ الإنشاء
int daysSinceModification; // عدد الأيام منذ التعديل
int fileAgeInDays; // عمر الملف بالأيام
من النظرة الأولى، أي شخص يقرأ الكود سيفهم الغرض مباشرة بدون الحاجة إلى شرح إضافي.
الخلاصة الاسم الجيد مثل تعليق مدمج داخل الكود يعبر يكشف الغرض والنية من وجود الكود
بقية القواعد سوف نشرحها في منشور آخر
#cleancode
❤3
السلام عليكم ورحمة الله
نكمل اليوم القاعده الثانية من قواعد التسميات الصحيحة في كتابة الكود البرمجي من كتاب clean code .
القاعدة الثانية : تجنب التضليل (Avoid Disinformation)
حاول بقدر الإمكان ان تجعل اسماء ال variables, Method, Class واضحة وصريحة بحيث لا تخلق أي لبس او تعطي انطباع خاطئ، التضليل في الكود يضيع الوقت ويزيد من صعوبة فهم الكود
إليك نصائح لكي تتجنب التضليل التضليل :
1- لا تستخدم اسماء لها معنى معروف و يختلف عن قصدك .
2- لا يجب أن تُسمي مجموعة من الحسابات باسم accountList إلا إذا كانت فعلًا من نوع List (أي بنية بيانات قائمة). كلمة "List" لها معنى محدد عند المبرمجين، فإذا استخدمت الاسم ولم يكن الكائن من نوع List، فهذا قد يقود إلى استنتاجات خاطئة عند قراءة الكود.
لذلك، من الأفضل اختيار أسماء بديلة مثل: accounts, accountGroup
3-إذا كان لديك مفاهيم متشابهة في الكود، فمن الأفضل أن تكون أسماؤها مكتوبة بطريقة متشابهة ومنسقة ، لان هذا يساعد المبرمجين في استخدام ميزة الاكمال التلقائي في بيئات التطوير
مثال:
عندما تبدأ بتسمية بعض الكلاسات والمتغيرات المتربطة بالمستخدم بكلمة user مثل userAcount,userProfile, userSettings هذا يساعد على الاختيار ويسهل البحث.
4 - لا تكتب مفاهيم متشابهه بتهجئات غير متسقة، فهذا يعتبر تضليل ويصعب على المبرمجين تذكرها او العثور عليها.
نكمل اليوم القاعده الثانية من قواعد التسميات الصحيحة في كتابة الكود البرمجي من كتاب clean code .
القاعدة الثانية : تجنب التضليل (Avoid Disinformation)
حاول بقدر الإمكان ان تجعل اسماء ال variables, Method, Class واضحة وصريحة بحيث لا تخلق أي لبس او تعطي انطباع خاطئ، التضليل في الكود يضيع الوقت ويزيد من صعوبة فهم الكود
إليك نصائح لكي تتجنب التضليل التضليل :
1- لا تستخدم اسماء لها معنى معروف و يختلف عن قصدك .
2- لا يجب أن تُسمي مجموعة من الحسابات باسم accountList إلا إذا كانت فعلًا من نوع List (أي بنية بيانات قائمة). كلمة "List" لها معنى محدد عند المبرمجين، فإذا استخدمت الاسم ولم يكن الكائن من نوع List، فهذا قد يقود إلى استنتاجات خاطئة عند قراءة الكود.
لذلك، من الأفضل اختيار أسماء بديلة مثل: accounts, accountGroup
3-إذا كان لديك مفاهيم متشابهة في الكود، فمن الأفضل أن تكون أسماؤها مكتوبة بطريقة متشابهة ومنسقة ، لان هذا يساعد المبرمجين في استخدام ميزة الاكمال التلقائي في بيئات التطوير
مثال:
عندما تبدأ بتسمية بعض الكلاسات والمتغيرات المتربطة بالمستخدم بكلمة user مثل userAcount,userProfile, userSettings هذا يساعد على الاختيار ويسهل البحث.
4 - لا تكتب مفاهيم متشابهه بتهجئات غير متسقة، فهذا يعتبر تضليل ويصعب على المبرمجين تذكرها او العثور عليها.
❤3
What is the default return type of a method in Java if none is specified?
ما هو نوع الإرجاع الافتراضي للدوال في Java إذا لم يتم تحديد أي منها؟
ما هو نوع الإرجاع الافتراضي للدوال في Java إذا لم يتم تحديد أي منها؟
Anonymous Quiz
48%
A) void
4%
B) int
20%
C) object
28%
D) It is compilation error when return type is not present.
ماذا سيكون إخراج الحلقة التالية؟
for (int i = 0; i < 3; i++) {
System.out.print(i + " ");
}بسم الله الرحمن الرحيم
Static Method vs Instance Method in Java
الدوال في لغة الجافا نوعين دوال من نوع static و دوال من نوع instance (non static) الاختلاف الرئيسي بين النوعين هو أن دوال static تعتبر جزء من الكلاس ويمكن أن نستدعيها من خلال اسم الكلاس، اما دوال ال instance تنتمي للكائن ومن اجل استدعائها نحتاج إلى انشاء كائن من الكلاس الذي تنتمي اليه.
إليك أبرز الفروقات بين النوعين :
- طريقة تعريف دالة static :
- طريقة تعريف دالة instance :
- عند استدعاء دالة static لا نحتاج إلى انشاء كائن من الكلاس
- من أجل استدعاء دالة instance من الضروري انشاء كائن من الكلاس
- دوال ال static يمكنها الوصول فقط الى المتغيرات والدوال التي من نوع static.
- دوال ال instance يمكنها الوصول إلى المتغيرات و الدوال التي من نوع static و التي من نوع instance
- لا يمكن استعمال الكلمة this مع الدوال التي من نوع static
- يمكن استعمال الكلمة this مع الدوال التي من نوع instance
- دوال static لا تدعم override
- دوال instance تدعم override
#java #learn #developer
Static Method vs Instance Method in Java
الدوال في لغة الجافا نوعين دوال من نوع static و دوال من نوع instance (non static) الاختلاف الرئيسي بين النوعين هو أن دوال static تعتبر جزء من الكلاس ويمكن أن نستدعيها من خلال اسم الكلاس، اما دوال ال instance تنتمي للكائن ومن اجل استدعائها نحتاج إلى انشاء كائن من الكلاس الذي تنتمي اليه.
إليك أبرز الفروقات بين النوعين :
- طريقة تعريف دالة static :
static void staticMethod() {
}- طريقة تعريف دالة instance :
void instanceMethod() {
}- عند استدعاء دالة static لا نحتاج إلى انشاء كائن من الكلاس
- من أجل استدعاء دالة instance من الضروري انشاء كائن من الكلاس
- دوال ال static يمكنها الوصول فقط الى المتغيرات والدوال التي من نوع static.
- دوال ال instance يمكنها الوصول إلى المتغيرات و الدوال التي من نوع static و التي من نوع instance
- لا يمكن استعمال الكلمة this مع الدوال التي من نوع static
- يمكن استعمال الكلمة this مع الدوال التي من نوع instance
- دوال static لا تدعم override
- دوال instance تدعم override
#java #learn #developer