بفضل الله أنتهيت من كتاب The Object Oriented Thought Process ودي مراجعة بسيطة هحاول أقنعك بيها ليه انت محتاج تقرأ الكتاب ده.

The Object Oriented Thought Process Book

الكتاب أولا حجمه صغير حوالي 180 صفحة (الإصدار الخامس)، هدفه إنه يخليك تفكر بطريقة Object Oriented. في بداية الكتاب المؤلف بيتكلم عن الخطأ اللي بيقع فيه معظم الناس (واللي أنا كنت واحد منهم) وهو أنك تبدأ تتعلم وتتعرض للغة برمجة OO قبل ما تفهم الObject Oriented Concepts أو تدخل في كتب الـ OO Analysis/Design/Programming قبل ما تبني Foundation قوي وتعرف ازاي تفكر بطريقة OO. وادى مثال عن انتقال كثير من مطورين الـC للغة الـC++ بدون فهم الOO Concepts ولا أتعلموا ازاي يفكروا بطريقة OO، وده اللي خلى ناس كتيرة منهم لما بتدعي إنهم C++ programmers في أي interview كان بيبان أنهم مجرد C programmers بيستخدموا C++ compilers!

أول 9 شابترات بيتكلموا عن الـ Classical OO Concepts اللي هم: Encapsulation, Inheritance, Polymorphism, and Composition. هيتكلم عن Class Design Guidelines، وهيركز على ازاي تصمم OO System اللي هو عبارة عن مجموعة من الـ Classes بتـ Interact مع بعضها. كمان هيتكلم عن الـ Interface, Abstract Class والفرق الحقيقي ما بينهم وازاي الأتنين دول بيلعبوا دور كبير في تصميم الـ OO Systems.

ومن المواضيع المهمة في الكتاب هو "How Inheritance Weakens Encapsulation؟" وإزاي أتنين من أساسيات الـ OO يكونوا incompatible مع بعض بحيث إن الـ Inheritance يكسر الـ Encapsulation!

وهيتكلم عن مواضيع تانية زي Composition over Inheritance وغيرها.

شابتر 10 هيتكلم عن الـ Design Patterns والشابتر ده ما هو إلا مقدمة بسيطة هيعرفك إن في حاجة اسمها Design Patterns ووضعها مع شرح بسيط لكام Pattern منهم.

شابتر 11 تحت عنوان "Avoiding Dependencies and Highly Coupled Classes" هيحط الأساس اللي هيبني عليه بعد كده في الشابتر اللي بعده الخاص بالـ SOLID Principles.

شابتر 12 والأخير هيتكلم عن الـ SOLID بشرح بسيط عن كل مبدأ ومثال مع ربطهم بالـ Classical OO Concepts اللي اتكلم عنهم طول الكتاب.

من الحاجات الجميلة في الكتاب إنه بيقتبس كلام من كتب تانية مهمة وهو بيشرح وبيحطهم كمرجع في نهاية كل شابتر عشان لو عايز تتعمق أكتر في الموضوع، واخدت منه شوية أسماء كتب حلوين. الكتاب صغير وجميل وبيقدم حاجة مختلفة عن باقي الكتب والكورسات اللي على اليوتيوب. أنا رأيي المتواضع إن بداية تعلم الـ Object Oriented لازم تكون من هنا.

خد بالك بردو من شوية حاجات لو أشتريت الكتاب وقررت تقرأه:

  • الكتاب فيه أخطاء سواء في الأكواد ودي حاجة تافهة يعني أو في الكلام، يعني كان في جملة نفى فيها جزء وأثبت جزء تاني ولففني حوالين نفسي شوية، والعجيب إنه عمل خمس إصدارات ومصلحش الأخطاء دي.
  • تأكد إنك هتقرأ النسخة الخامسة لأن هي اللي فيها الـ SOLID.