كتاب clean code عربي - ملخص كتاب clean code الشهير الجزء الأول

كتاب clean code بالعربي

كتابة كود نظيف (Clean Code) أمر في غاية الأهمية لكل مبرمج. الكود النظيف من الأمور التي تُبيِّن المبرمج الضعيف من القوي. ربما هناك شركات أغلقت بالفعل بسبب الكود السيئ. نعم، كما سمعت يا صديقي، وربما قد دعا عليك زميلك المبرمج الذي يعمل معك في نفس المشروع بسبب كودك السيئ. لا تقلق، لن يدعو عليك صديقك بعد الآن، ههههه. كتاب clean code عربي، سعدت بوجودك في هذا المقال.

كتاب clean code عربي
كتاب clean code عربي - ملخص كتاب clean code الشهير الجزء الأول

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

كيف سنلخص كتاب clean code

 حقيقة الأمر، هذه المقالات لن تكون التلخيص المألوف للكتاب. أريدها أن تكون ملخصًا للنصائح التي تعلمتها من الكتاب لتحسين كودي، نصائح عامة تناسب المبتدئين لتحسين كودهم وجعله نظيفًا (Clean Code). لذلك، هناك أمور سنهملها في الكتاب والتي في الغالب لن يتطرق إليها الناس في البدايات مثل الفصول الأخيرة من الكتاب، لأنها بالفعل فصول متقدمة على مستواي الحالي، فلن أخوض فيها كثيرًا. فإذا كنت يا صديقي منتظرًا ملخصًا لكل فصل في الكتاب؛ فأعتذر إليك.

في الغالب ستكون النصائح المقدمة من الفصل الأول: "Clean Code"، والفصل الثاني: "Meaningful Names"، والفصل الثالث: "Functions"، والفصل الرابع: "Comments"، والفصل التاسع: "Unit Tests"، والفصل العاشر: "Classes". سأدعم بعض النصائح بأمثلة عملية كي يتم فهمها بشكل جيد.

في مقال اليوم، سنتعرف على كتاب "Clean Code" وفصوله كاملة بشكل مختصر جدًا لكي يكون صديقي القارئ على معرفة شمولية بما يحتويه الكتاب. وسنعرف أيضًا سريعًا بمؤلف هذا الكتاب العملاق العم بوب 👇👇👇

فصول الكتاب

نبذة مختصرة عن كل فصل في كتاب Clean Code: A Handbook of Agile Software Craftsmanship، أرجو أن تفيدكم:

1- Chapter 1: Clean Code

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

ستجد ايضا في الفصل اقتباسات من خبراء البرمجة حول كتابة الكود النظيف، وفي النهاية يشجع العم بوب جميع المبرمجين على اعتبار الكود النظيف معيارًا وليس استثناءً. فالفصل الأول ليس مجرد مقدمة، بل هو دعوة مفتوحة لتحسين الطريقة التي نكتب بها البرمجيات.
   
2- Chapter 2: Meaningful Names

الفصل الثاني من الكتاب احسبه البداية الفعلية لمعرفة كيف تكتب كود نظيف، يدور الفصل حول اهمية إختيار اسماء الـ variables, functions,Arrays..etc بعناية وأن تكون معبرة. يوضح العم بوب أن الأسماء الجيدة يمكن أن تجعل الكود يتحدث عن نفسه، مما يقلل الحاجة إلى التعليقات التوضيحية ويزيد من سهولة الصيانة والتطوير.التسمية الجيدة ليست أمر ثانوي بل هذا أمر أساسي لكتابة clean code.

3- Chapter 3: Functions

في الفصل الثالث من كتاب Clean Code للعم بوب، يتعمق في واحدة من أهم جوانب كتابة الكود النظيف: كتابة الدوال. هذا الفصل مخصص لفهم كيفية كتابة دوال تكون واضحة، سهلة الفهم، وقابلة للصيانة. العم بوب يقدم إرشادات عملية ونصائح مستمدة من خبرته الواسعة في البرمجة.فيقول أن الدوال الجيدة هي تلك التي تؤدي وظيفة واحدة بوضوح ودقة. الفصل يحدد مجموعة من الخصائص التي يجب أن تتمتع بها الدوال الجيدة.

4- Chapter 4: Comments

في الفصل الرابع من كتاب الــ Clean Code ، يتمحور الحديث حول التعليقات Comments في الكود البرمجي. يعالج هذا الفصل مسألة مهمة تتعلق بمتى وكيف نستخدم التعليقات بفعالية لجعل الكود أكثر وضوحًا وفهمًا.يبدأ العم بوب بتوضيح أن التعليقات هي أداة قوية لتحسين فهم الكود، ولكنها ليست بديلاً عن كتابة كود نظيف وواضح. ويكثر من التأكيد على أن التعليقات يجب أن تكون الحل الأخير لتحسين وضوح الكود، وليس الأول.

5- Chapter 5: Formatting

"When people look under the hood, we want them to be impressed with the neatness, consistency, and attention to detail that they perceive..." 

هذا هو كلام العم بوب في بداية هذا الفصل؛ حيث يقول أننا نريد أن نبهر الناس بنظافة وتناسق الكود الذي كتبناه، وأن يتيقنوا أن مبرمجين محترفين قد عملوا على هذا الكود. ولو افترضنا أنهم رأوا كودًا مثل الإسبكتي بدلاً من الكود السابق، لظنوا أن بحارة مخمورين قد عملوا على هذا الكود. ويؤكد العم بوب أن تنسيق الكود ليس مجرد مسألة جمالية، بل هو أساسي للتواصل الفعال بين المطورين وضمان فهم الكود وصيانته بسهولة.

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

6- Chapter 6: Objects and Data Structures

"These two examples show the difference between objects and data structures. Objects hide their data behind abstractions and expose functions that operate on that data. Data structures, on the other hand, expose their data and have no meaningful functions..."

في الفصل السادس من كتاب clean code، يتم التركيز على فهم الفرق بين الكائنات (Objects) وهياكل البيانات (Data Structures)، وكيفية استخدامها بشكل صحيح لكتابة كود نظيف وفعّال. يوضح هذا الفصل أهمية اختيار النهج المناسب عند تصميم البرمجيات لتحقيق توازن بين المرونة والأداء.

7- Chapter 7: Error Handling

"Clean code is readable, but it must also be robust. These are not conflicting goals. We can write robust clean code if we see error handling as a separate concern..."

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

8- Chapter 8: Boundaries

في الفصل الثامن من كتاب Clean Code، يتم التركيز على كيفية التعامل مع الحدود (Boundaries) بين الأنظمة والمكونات المختلفة في البرمجيات. على سبيل المثال، إذا كتبت أكواد برنامج معين وقمت بإضافة كود آخر لم تصنعه بنفسك، سواء كان من مكتبة أو من أي مصدر آخر، فلا بد أن تضع حدودًا واضحة بين كودك والكود الذي تستورده من مكان آخر. ويجب التأكد من توافقهما لتفادي حدوث أي مشاكل فيما بعد.

 فيوضح أهمية تصميم واجهات واضحة ومستقرة، وكيفية التعامل مع الأكواد التي تقع عند الحدود بين المكونات المختلفة لضمان نظافة الكود وسهولة صيانته.

9- Chapter 9: Unit Tests

"Tests are as important to the health of a project as the production code is. Perhaps they are even more important..."

في الفصل التاسع من كتاب clean code للعم بوب، يتم التركيز على أهمية اختبارات الوحدة (Unit Tests) كجزء لا يتجزأ من كتابة كود نظيف وموثوق. يوضح العم بوب كيفية كتابة اختبارات وحدة فعّالة ويسلط الضوء على أفضل الممارسات لضمان جودة الاختبارات وتحقيق أقصى فائدة منها.

10- Chapter 10: Classes

في الفصل العاشر من كتاب Clean Code، يتم التركيز على تصميم وتنظيم الكلاسات (Classes) بطريقة تجعل الكود أكثر نظافة وقابلية للصيانة. يشرح العم بوب المبادئ الأساسية لتصميم الكلاس، وكيفية تحقيق تنظيم أفضل للكود من خلال استخدام الكلاسات بشكل صحيح.

11- Chapter 11: Systems

"Systems must be clean too. An invasive architecture overwhelms the domain logic and impacts agility..."

في الفصل الحادي عشر من كتاب Clean Code للعم بوب، يتم تناول موضوع تصميم الأنظمة systems بشكل شامل. يركز هذا الفصل على كيفية التعامل مع التعقيد الذي يصاحب الأنظمة الكبيرة، وأهمية الحفاظ على نظافة الكود على مستوى النظام بأكمله، وليس فقط على مستوى Modules أو Classes.

12- Chapter 12: Emergence

As systems become more complex, they take more and more time for a developer to understand, and there is an ever greater opportunity for misunderstanding..."

في الفصل الثاني عشر من كتاب Clean Code، يتم التركيز على مفهوم مهم جدًا، وهو أن الشركة التي تستخدم البرمجيات (Software) في عملها ستنمو بمرور الوقت، وبالتالي سينمو البرمجيات لديها أيضًا (Emergence). لذا، ينبغي معرفة كيفية بناء وتصميم البرمجيات التي يمكن تطويرها وجعلها أكبر وأكثر تعقيدًا بمرور الوقت بطريقة نظيفة ومنظمة. يناقش هذا الفصل كيفية اتباع المبادئ البسيطة والفعالة لتحقيق تصميم برمجي يتكيف مع التغييرات بشكل طبيعي.

13- Chapter 13: Concurrency

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

14- Chapter 14: Successive Refinement

"The solution is to continuously keep your code as clean and simple as it can be. Never let the rot get started..."

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

15- Chapter 15: JUnit Internals

في هذا الفصل القصير، العم بوب يشير إلى أهمية اختبارات الوحدة Unit Testes وكيفية استخدام JUnit كأداة أساسية لتنفيذ هذه الاختبارات. ثم يبين مبادئ تصميم JUnit وكيفية بناء هيكل الاختبارات بشكل متناسق وفقًا لمعايير الكود النظيف.

16- Chapter 16: Refactoring SerialDate

في الفصل 16 من كتاب Clean Code ، يتناول العم بوب كلاس اسمه SerialDate من مكتبة JCommon كنموذج يقوم فيه بعمل إعادة ترتيب (Refactoring) لأكواد الكلاس بطرق تساهم في جعله أكثر قابلية للصيانة والتطوير clean code. كما يوضح أثناء ذلك الطرق والتقنيات التي يستخدمها.

17- Chapter 17: Smells and Heuristics (الأخير)

في هذا الفصل العم بوب يشير إلى مصطلحين مهمين Smells and Heuristics:

  • الــ Smells: هي علامات تشير إلى وجود مشاكل محتملة في التصميم، مما يؤدي إلى صعوبة في الصيانة والتعديل فيما بعد. يشير العم بوب أن الــ Smells Code لا تعني بالضرورة وجود خطأ فعلي، ولكنها تشير إلى أماكن يجب مراجعتها وتحسينها.
  • الــ Heuristics: يتحدث العم بوب عن المبادئ والقواعد البسيطة التي  من خلالها يمكن تجنب Smells Code وتحسين تصميم البرمجيات. يشمل ذلك استخدام الأسماء المناسبة، وتجنب تكرار الأكواد، وتجزئة المشروع الكبير إلي مشاريغ صغيرة متكاملة Divide and conquer، وغيرها من المبادئ القيمة.

هذه هي كل فصول الكتاب، وكل فصل يغطي موضوعًا مهمًا في كتابة الكود النظيف وتحسين جودة البرمجيات.

نبذة عن مؤلف الكتاب

مؤلف الكتاب هو روبرت سي. مارتن الشهير بالعم بوب Uncle Bob، العم بوب محترف في مجال تطوير البرمجيات منذ عام 1970 ومستشار برمجيات دولي منذ عام 1990. مؤسس ورئيس شركة Object Mentor, Inc وهي فريق من المستشارين ذوي الخبرة يقدمون الإرشاد والتوجيه لعملائهم في جميع أنحاء العالم في مجالات مثل C++ ،Java ،C# Ruby، البرمجة الشيئية، Design Patterns, UML, Agile Methodologies, and eXtreme programming

الخاتمة

كان هذا المقال الأول من عدة مقالات بشرح فيها أهم النصائح لكتابة كود نظيف من كتاب Clean Code: A Handbook of Agile Software Craftsmanship للعم بوب، كانت هذه البداية فقط قدمت فيها نبذة مختصرة جدا عن فصول الكتاب وعن مؤلفه العم بوب، انتظروا باقي المقالات.

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

كان معكم علي وحيد.

"اللهم إن كان من توفيق فمنك وحدك وإن كان من خطأ أو نسيان فمني ومن الشيطان."

المصادر


Ali Waheed

مرحبًا بكم، انا على وحيد طالب في كلية الذكاء الاصطناعي جامعة المنوفية. أتكلم عن مواضيع في الذكاء الاصطناعي والبرمجة. أشارك معكم تجارب شخصية في المجال، مراجعات كورسات... وإن شاء الله أكثر من ذلك. تشرفت بكم.

إرسال تعليق

أحدث أقدم

نموذج الاتصال