Gaza, a piece of our soul. ❤️🇵🇸

SOLID Principles بالعربي

من ضمن المصطلحات المهمه الموجودة في ال OOD هو مصطلح SOLID وهو اختصار لعدة عمليات خلينا نشرحها ببساطة.

  1. S > Single Resposibility:

    Class should have one responsibility.

    سبب واحد انك تغير الكلاس
    يعني مينفعش تخلي الكلاس بتاعك يقوم بكل المهام في البرنامج او حتى مهام ملهاش علاقة ببعض، لازم لكل كلاس مهمه محدده ومعروفه، ومعروف انت رايح تعدل فين بالظبط اللي ليه علاقة بالوظيفة.

  2. O > Open-Closed:

    Codebase Should be open for extension and close for modifications.

    أزود اه إنما معدلش في الكود
    يعني الكود بتاعك يكون Flexible في طريقة كتابته بحيث لما تحب تعمل function تبقى ثابته في الكور من غير اما تتعدل مثلاً ب if conditions او switch statements ولكن تتعدل عن طريق الobjects اللي هتتبعتلها اللي على اساسها هيكون الoutput.

  3. L > Liskov Substitution:

    Object from Child and Parent Classes should have similar functionalities.

    اقدر استعمل اي واحد من الparent او الchild واتوقع ان السلوك يبقى واحد
    بمعنى مينفعش ت override وظائف ال parent class بشكل عشوائي ويكون نتيجة functions مختلفه من ال parent او ال child.

  4. I > Interface Segregation:

    Interfaces should be meaningful to one functionality.

    قسم ال interface الكبيرة ل interfaces صغيرة محدده
    بمعنى ان ال interfaces مينفعش تبقى لاكتر من حاجه احتمال كبير مستخدمهاش ولكن المفروض تبقى blue print لحاجات محدده احتمال كبير استخدمها في وظيفة محدده.

  5. D > Dependency Inversion:

    Higher level modules can’t depend on lower level modules

    مينفعش ال higher level modules تعتمد على lower level modules ولكن لازم أحط abstraction layer في النص واخلي الاتنين يعتمدوا عليهم وبالتالي يحصل عكس في ال dependency.