مبادئ SOLID في البرمجة

خمسة ديال المبادئ الأساسية باش تكتب كود نقي، فليكسيبل، وساهل للصيانة. اكتشف كيفاش تطور من جودة الكود ديالك.

شنوما مبادئ SOLID؟

هي مجموعة ديال القواعد اللي كتعاون المبرمجين يبنيو برامج قوية وقابلة للتطوير. كل حرف من SOLID كايمثل مبدأ من هاد المبادئ الخمسة.

5

S: مبدأ المسؤولية الواحدة

أش كيعني؟

كل "class" خاص تكون عندها مسؤولية وحدة وباينة. خاص تكون غير سبة وحدة اللي تخليك تبدل فيها.

الفائدة

كيخلي الكود ساهل للفهم، التعديل، والإختبار.

❌ ماشي SRP

Report

  • Fetch Data
  • Format Data
  • Print Data

✅ مبدأ SRP

DataFetcher

Formatter

Printer

O: مبدأ الفتح والإغلاق

أش كيعني؟

الكود خاصو يكون "مفتوح للتوسع" لكن "مسدود للتغيير". يعني تزيد فونكسيوناليتي جديدة بلا ما تبدل الكود القديم اللي خدام.

الفائدة

كيخلي الكود ستابل. كتقدر تزيد حوايج جداد بلا ما تخاف تخسر القديم.

L: مبدأ تبديل ليسكوف

أش كيعني؟

خاصك تقدر تبدل الأوبجيكت ديال الـ "class parent" بأوبجيكت ديال الـ "class child" بلا ما يطرطق البرنامج.

الفائدة

كيضمن أن الوراثة (inheritance) عندك صحيحة ومبنية على أساس متين.

make_bird_fly(new Eagle())

make_bird_fly(new Penguin())

I: مبدأ فصل الواجهات

أش كيعني؟

من الأحسن دير "interfaces" صغار ومتخصصين على أنك دير "interface" وحدة كبيرة وعامة.

الفائدة

الـ "classes" كايطبقو غير داكشي اللي كايحتاجوه، وهادشي كاينقص من الكود الزايد.

D: مبدأ قلب الاعتمادية

أش كيعني؟

الـ "modules" الكبار ماخاصهومش يعتامدو على الـ "modules" الصغار. بجوج خاصهم يعتامدو على "abstractions" (interfaces).

الفائدة

كيخلي الكود ديالك فليكسيبل بزاف. ساهل تبدل جزء من السيستيم (بحال لا باز دو دوني) بلا ما تأثر على باقي الأجزاء.

❌ ماشي DIP

ReportGenerator
MySQLDatabase

✅ مبدأ DIP

ReportGenerator
Database Interface
MySQLDatabase

تأثير تطبيق مبادئ SOLID

شوف الفرق فالجودة ديال الكود ملي كاتطبق هاد المبادئ. الكود كيولي أكثر قابلية للصيانة، للقراءة، وللتطوير.