عبدالوهاب العليوي | Abdulwahab Al-Alawi
267 subscribers
58 photos
3 files
12 links
هنا نحكي عن البرمجة، التقنية، الأدوات، وأشياء تهم كل مبرمج بطريقة بسيطة وممتعة.
Download Telegram
كورسات مجانية في هذه المجالات لمن يريد التعلم 👇

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، منطقة الأسلوب، إلخ.
- استخدام 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
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
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

معناها: اختر أسماء تكشف النية والغرض من وجودها في الكود وتجنب الأسماء التي لا تدل او تعبر عن شي، اجعل المتغيرات تتحدث عن سبب وجودها لكي يسهل عليك وعلى غيرك من المبرمجين قراءة الكود.

ولكي تجعل الأسماء تعبر عن نيتها يجب عليك جعلها تجيب عن هذه الأسأله :

ما سبب وجوده؟

ماذا يفعل؟

كيف يتم استخدامه؟

أنظر إلى هذا المثال السيء :
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 - لا تكتب مفاهيم متشابهه بتهجئات غير متسقة، فهذا يعتبر تضليل  ويصعب على المبرمجين تذكرها او العثور عليها.
3
What is the default return type of a method in Java if none is specified?
ما هو نوع الإرجاع الافتراضي للدوال في 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 :
static void staticMethod() {
}

- طريقة تعريف دالة instance :
void instanceMethod() {
}

- عند استدعاء دالة static لا نحتاج إلى انشاء كائن من الكلاس

- من أجل استدعاء دالة instance من الضروري انشاء كائن من الكلاس

- دوال ال static يمكنها الوصول فقط الى المتغيرات والدوال التي من نوع static.

- دوال ال instance يمكنها الوصول إلى المتغيرات و الدوال التي من نوع static و التي من نوع instance

- لا يمكن استعمال الكلمة this مع الدوال التي من نوع static

- يمكن استعمال الكلمة this مع الدوال التي من نوع instance

- دوال static لا تدعم override

- دوال instance تدعم override

#java #learn #developer
قد نظن أن المال والنجاح مرتبطان بالفرص فقط… لكن الحقيقة أن الانضباط الذاتي هو المفتاح الأول لأي زيادة في الإنتاجية والدخل.
من لا يملك القدرة على ضبط نفسه، يضيع وقته، يشتت جهده، ويضيع عليه نتائج ممكنة كانت في متناول يده.

الانضباط الذاتي يعني أن تحدد أولوياتك، وأن تلتزم بجدولك، وأن تتحكم في شهواتك وتأجيلاتك، قبل أن تطالب العالم بالنجاح.

الأمثلة العملية كثيرة:

- من يكتب يومياً ١٠ صفحات في مشروعه، بدلاً من تأجيل العمل لساعات طويلة، سينهي المشروع أسرع ويضاعف دخله.

- من يتحكم في إدمان الهاتف أو الانشغال بالتفاهات، يجد وقتاً لتعلم مهارة جديدة تزيد من قيمته العملية.

- من يضع قواعد لنفسه في الصرف والادخار، يتحكم في دخله بدل أن ينتهي به المطاف إلى التبذير أو الديون.

مبدأ مهم: الانضباط الذاتي ليس قيداً على الحرية، بل هو الطريق لتوسيعها.

خط عملي لهذا اليوم: اختر عادة صغيرة واحدة تلتزم بها اليوم، سواء في العمل، الدراسة، أو التحكم في وقتك، ودوّن نتائجها قبل نهاية اليوم لتشعر بأثر الانضباط المباشر.

اليوم السادس عشر من سلسلة فن تربية الذات.

د/ عبدالكريم بكار
#فن_تربية_الذات #عبد_الكريم_بكار
إنّ الأمم لا تنهض بالعاطفة وحدها، ولا بالحنين إلى ماضٍ مجيد، بل تنهض حين تملك وعياً جماعياً يستوعب الماضي ليستلهم منه الدروس، لا ليُقيم فيه.
الماضي خزانة عبرٍ، أما المستقبل فهو ميدان العمل.

إنّ الوعي الجمعي السليم يُعيد ترتيب نظرتنا للأشياء:

- فيجعلنا نُدرك أنّ التحديات ليست نهاية الطريق، بل بداية لتوليد الحلول.
- ويُعلّمنا أن نقدّم المعرفة والكفاءة على الشعارات والأماني.
- ويغرس فينا أن الأمة التي تُنفق وقتها في اجترار تاريخها، تفقد القدرة على كتابة تاريخ جديد.

إنّ مسؤولية المثقفين والمربين اليوم أن يوقظوا في الناس هذا الوعي: أن ما مضى لا يعود، وما هو آتٍ ينتظر منّا أن نصنعه.
فإذا تحوّل هذا الإدراك إلى ثقافة عامة، نشأ جيلٌ لا يُكبل رجليه بقيود الأمس، ولا يسير في الظلام بلا بوصلة، بل يمشي بخطى ثابتة نحو الغد.

فالوعي بالمستقبل ليس ترفاً فكرياً، بل شرطٌ لبقاء الأمم.

د/عبدالكريم بكار
How can one constructor call another constructor within the same class?
كيف يمكن لل constructor استدعاء constructor آخر داخل نفس الفئة؟
Anonymous Quiz
27%
A) Using super()
23%
B) Using this()
14%
C) Using new()
36%
D) Constructors cannot call each other
ماهو الخطأ في هذه الدالة؟
public static int half(double num) 
{
double result = num / 2.0;
return result;
}