JavaRush /مدونة جافا /Random-AR /مراجعة كتاب "أنماط تصميم الرأس أولاً"
Alex
مستوى

مراجعة كتاب "أنماط تصميم الرأس أولاً"

نشرت في المجموعة
من بين الأشخاص الذين يعرفون على الأقل الحد الأدنى من سلسلة Head First، هناك الكثير ممن يعتبرون مثل هذه الأدبيات قراءة سطحية إلى حد ما للمبتدئين. ماذا يمكنني أن أقول، من غير المرجح أن تتمكن من دراسة موضوع معقد في مجال البرمجة بعمق خلال 48 ساعة. ومع ذلك، من الصعب القول بأن Design Patterns هو كتاب سيكون بمثابة دليل مفيد للبرمجة للمبتدئين. يعد هذا الكتاب أحد الكتب العشرة الأكثر شهرة على Stackoverflow، وذلك لسبب وجيه. إن سهولة العرض والموضوع الأساسي والأمثلة عالية الجودة تجعل الكتاب مشهورًا الآن، وفي رأيي، لسنوات عديدة قادمة. مراجعة كتاب "أنماط تصميم الرأس أولاً" - ١

مميزات الكتاب

تخبرنا أنماط تصميم الرأس الأول عن الأنماط وكيفية استخدامها وكيفية التفكير فيها. النمط هو قالب، وهو حل عالمي لمجموعة محددة من المشاكل. تعد أنماط التصميم بدورها حلولًا معمارية شائعة الاستخدام يمكن استخدامها لكتابة تطبيقات سهلة الاستخدام ومرنة. يقوم المطورون في جميع أنحاء العالم بحل نفس المشكلات بنفس الأساليب. كما يقول التعليق التوضيحي، إذا كنت لا ترغب في إعادة اختراع العجلة، فاستخدم قوالب التصميم الجاهزة (الأنماط)، والتي خصص هذا الكتاب للعمل معها . بشكل منفصل، تجدر الإشارة إلى عرض المادة: الكتب في سلسلة "الرأس الأول" مشهورة ببساطتها ويتم قراءتها في جلسة واحدة. "أنماط التصميم" ليست استثناء. كما تلتزم بالمبادئ الأساسية التالية:
  1. الرؤية
  2. أسلوب العرض الحواري
  3. عدد كبير من الرسوم التوضيحية
  4. مشاركة القارئ النشطة
  5. مناشدة العواطف
  6. جذب انتباه القارئ
يستخدم مؤلفو الكتاب نظرية ما وراء المعرفة بكفاءة لتقديم المادة: بالنسبة لي، مرت أول 100 صفحة دون أن يلاحظها أحد. والجميل في هذا النهج هو أن الدماغ يتذكر بالفعل ما يقرأه. الجمع بين العديد من أساليب السرد والأسئلة المثيرة للاهتمام والتكرار والإبداع - كل هذا يساعد القارئ على عدم فقدان الاهتمام بالموضوع الرئيسي. قبل شراء الكتاب، كنت مترددًا بعد قراءة المراجعات المختلطة. ومع ذلك، بعد تصفح العديد من المصادر الأخرى حول هذا الموضوع بسرعة، قررت: للتعمق في الأنماط، هذا الكتاب هو ما تحتاجه.

الموضوع الرئيسي والفكرة الرئيسية

"بالتأكيد قام شخص ما بحل مشكلتك بالفعل" - هكذا يبدأ الفصل الأول من الكتاب، حيث ينقل المعنى الكامل لأنماط التصميم في البرمجة. الهدف الرئيسي هو نقل معناها بشكل صحيح إلى القارئ، لأنه أولاً وقبل كل شيء، يجب على المبرمج أن يعرف الغرض من الأنماط وفي أي نقطة يجب تطبيقها. بشكل أساسي، تحتاج أولاً إلى فرز القوالب إلى أجزاء صغيرة في رأسك، وبعد ذلك فقط تنفيذها في برامج. إذا كان المبتدئ في البرمجة لديه فهم جيد للأنماط، فإن استخدامها يمكن أن يؤدي إلى تعقيد التعليمات البرمجية بشكل كبير (ولكن يجب تبسيطها!). على السؤال "لماذا يجب استخدام أنماط التصميم؟" يقدم الكتاب إجابة واضحة: "معرفة مفاهيم مثل التجريد والميراث وتعدد الأشكال لا تجعلك مصممًا جيدًا لـ OO. تحتوي الأنماط على تجربة تصميم OO مثبتة.

"ملخص"

ينقسم الكتاب إلى 14 فصلاً بالإضافة إلى المقدمة. في البداية، يحاول مؤلفو الكتاب إعداد القارئ، وضبط دماغه لإدراك المعلومات حول تصميم الأنماط بشكل صحيح. يشرح الفصل الأول المبدأ الأساسي للأنماط والأغراض التي تخدمها. يتم فحص أحد الأنماط الأكثر استخدامًا - الإستراتيجية - بسهولة وبشكل مخفي. الفصول من الثاني إلى الحادي عشر مخصصة لتحليل مفصل للأنماط الفردية :
  1. مراقب. يوزع الأحداث عبر الكائنات المهتمة بحدوثها.
  2. ديكور. نظرة أخرى على الميراث في Java ومنح فئات Java إمكانات جديدة دون تعديل الكود.
  3. مصنع. يحفظ النمط الكود من التبعيات غير المرغوب فيها.
  4. أعزب. يُعرف أيضًا باسم Singleton، وهو يسمح لك بإنشاء كائن فئة واحدة للبرنامج بأكمله.
  5. فريق. يسمح لك هذا النمط بتغليف استدعاء الأسلوب بشكل ملائم، مما يؤدي إلى توسيع إمكانياته.
  6. المحول والواجهة. حل مشكلة عدم توافق الواجهة، بالإضافة إلى تغليف الكائنات لتبسيط واجهتها.
  7. طريقة القالب. تغليف الكتل الخوارزمية، مما يسمح للفئات الفرعية بالارتباط بخوارزمية المعالجة المطلوبة في أي وقت.
  8. التكرار والرابط. يوفر النمط أداة مناسبة للتكرار عبر المجموعات، بغض النظر عن نوعها. بالإضافة إلى ذلك، يقدم الفصل بعض المعلومات حول المجموعات الفائقة.
  9. ولاية. تتمتع الكائنات بالقدرة على التحكم في سلوكها من خلال التغييرات في حالتها الداخلية.
  10. نائب. نمط مناسب جدًا للتحكم في الوصول إلى كائن ما.
ويتناول الفصل الثاني عشر الأنماط المركبة، أو بالأحرى مجموعات من بعض الأنماط التي تمت مناقشتها، والتي يمكن استخدامها لبناء بنيات برمجية قوية. وخصص الفصل 13 لاستخدام الأنماط في المسائل الحقيقية، وتم عرض تصنيف الأنماط وأصنافها وإرشادات استخدامها. يُعد الكتاب بمثابة ملحق للفصل 14، الذي يغطي نطاقًا أوسع من الأنماط. كل واحد منهم مفيد بطريقته الخاصة، لذلك فإن معرفتهم أكثر من المرغوب فيه. بالطبع، إنها ليست شائعة مثل الأنماط الموجودة في الإصحاحات 2 إلى 11، لكن هذا لا يجعلها أقل فائدة. لا يتظاهر الكتاب بأنه عرض دقيق أكاديميًا لنظرية الأنماط. ولكن إذا كانت كتب Head First دقيقة جدًا، فلن تتاح للمطورين الطموحين فرصة لمعرفة ما هو وتوضيح الأساسيات لأنفسهم. هذه طريقة بسيطة ومريحة للتعرف على أنماط التصميم لأولئك الذين ليسوا على دراية بها. وفقًا للمؤلفين، يعد Design Patterns كتابًا مناسبًا لأولئك الذين هم بالفعل على دراية بـ Java (أو C#)، ويريدون تعلم مبادئ التصميم الموجه للكائنات، ويفضلون المحادثة الحية على المحاضرات المملة. هذا الكتاب ليس كتابا مرجعيا! إذا كنت مطورًا محترفًا ولديك خبرة وتعمل على جزء من هذه الأنماط على الأقل، فمن غير المرجح أن يثير الكتاب اهتمامك. التمارين هي أحد العناصر المهمة في الكتاب: لا ينبغي عليك تخطيها. إذا قرأت الكتاب بعناية، وفي الحالة القصوى، قم بإجراء بحث بسيط على الإنترنت، فلن يضيف حلها أي صداع لك. ولكن سيكون هناك بالتأكيد فوائد. على أقل تقدير، سوف تفهم بشكل أعمق النظرية المقدمة في الكتاب.

المميزات والعيوب

أنا، مثل العديد من أولئك الذين يدرسون في JavaRush، لدي موقف بارد تجاه المحاضرات المملة، وحشو المواد وغيرها من أعمال العنف ضد نفسية الطالب المتعطش للمعرفة. في رأيي، من الأفضل إنفاق الطاقة التي تنفق على حفظ النصوص غير المفهومة على إيجاد مصادر بديلة للتعلم. هذا الكتاب هو الذي يستحق وقتك وجهدك. يشكل أسلوب العرض الممتاز والإدارة الكفؤة لاهتمام القارئ وتكرار النقاط الرئيسية الميزة الرئيسية لهذا الكتاب - سهولة استيعاب المادة . يعد عدد كبير من الرسوم التوضيحية ميزة إضافية. في رأيي، كل صورة في الكتاب لها مكانها: فهي جميعها تسمح لك بتعزيز كلمات المؤلفين واكتساب فهم أعمق لجوهر المادة. كما كتبت أعلاه، هذا الكتاب ليس كتابا مرجعيا: مؤلفوه لا يعتزمون سرد جميع الأنماط. وتتمثل مهمتها الرئيسية في توفير الفهم والتحدث عن الأنماط الأساسية بحيث يسهل إدراك الأنماط الأخرى الأكثر تعقيدًا. وهي تتأقلم مع هذا بنسبة 100٪. من بين العيوب أن أنماط تصميم الرأس الأول باللغة الروسية ليست سهلة القراءة كما هو الحال في اللغة الإنجليزية. بالطبع، يجب على كل مطور التحدث باللغة الإنجليزية، لكن المبرمجين المبتدئين لا يطورون دائمًا هذه المهارة إلى الحد الذي يمكنهم من قراءة الكتب بنسختها الأصلية. ومع ذلك، يمكن اعتبار هذا ناقصًا قسريًا، حيث يتم تقديم المادة بدقة تامة ويتم الحفاظ على المعنى.

كتب إضافية عن أنماط التصميم

أنا من أنصار الاعتقاد بأنه من الأفضل دراسة المواضيع الأساسية من عدة مصادر والبحث عن أسلوب العرض المناسب فيها. عندما تريد الغوص في الأنماط وقراءة نظريات إضافية، صدقني، سيكون لديك ما يشغل أمسياتك.
  1. تقنيات التصميم الموجهة للكائنات. أنماط التصميم (جاما إي، هيلم آر، جونسون آر، فليسيدس جيه).

    مراجعة كتاب "أنماط التصميم" (أنماط تصميم الرأس الأول) - 2

    هذا منشور أكثر جدية، كتاب مرجعي للأنماط، كتاب محترم للغاية من "عصابة الأربعة". يسميه الكثيرون الكتاب المقدس لتصميم OO.

    على الإنترنت، تنقسم آراء المطورين إلى 3 معسكرات:

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

    مهم:الأمثلة الموجودة في الكتاب مكتوبة بلغة C++.

  2. جافا إي. أنماط التصميم للمحترفين (مراد ينر، أليكس فيدوم).

    مراجعة كتاب "أنماط التصميم" (أنماط تصميم الرأس الأول) - 3

    هذا الكتاب مخصص لتصميم تطبيقات المؤسسات: وهو يغطي العديد من الأمثلة على مشكلات التطبيقات الواقعية.

  3. أنماط التصميم في جافا (جراند م).

    مراجعة كتاب "أنماط التصميم" (أنماط تصميم الرأس الأول) - 4

    يوضح الكتاب بشكل ملون كيف أن استخدام الأنماط يوفر وقت المطورين، ويقدم نظرة عامة على لغة UML، ويصف 47 نمط تصميم.

أنماط التصميم في JavaRush

في دورة JavaRush، يتم تعلم أنماط التصميم في المستوى 7 من مهمة Java Collections. المحاضرتان 1 و 2 مخصصتان للأنماط الأكثر شيوعًا، وفي المحاضرة 4 يمكنك حل المشكلات المتعلقة بهذا الموضوع. فيما يلي بعض المقالات المثيرة للاهتمام "لتقوية نفسك":
  1. مقال عام عن موضوع الأنماط مع الفئات والأمثلة وكل ما نحبه.

  2. مقالتان عن الأنماط: نظرة عامة على الجزء الأول والجزء الثاني الأكثر تفصيلاً .

  3. أنماط التصميم باستخدام نمط Singleton كمثال .

  4. مقالات حول أنماط " الاستراتيجية " و" المحول ".

  5. يرتبط مفهوم أنماط التصميم بمخططات UML، وستساعدك هذه المقالة على فهم ماهيتها.

تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION