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

القاعدة الأولي؛ لا تكرر الكودأكثر من مرة: 

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

القاعدة الثانية؛ اختيار أسماء مفهومة للأشياء التي تقوم بتعريفها:

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

القاعدة الثالثة؛ استخدام التعليقات البرمجية عند الحاجة:

تساعدنا التعليقات في شرح الكود للقارئ، وهي مثل الملح فلا تقلل ولا تكثر منها، وتذكر دائماً بأن تتأكد في حال كون الكود غير واضح من كتابة تعليقات تشرح ذلك الكود، وإن أردت شرح طريقة عمل كلاس أو دالة أو فائدة خاصيّة (Property) يمكنك استخدام javadoc لكتابة ذلك، ويمتلك javadoc ميزة إمكانية عرضه للمبرمج في بيئات التطوير مثل Netbeans حيث تجد أنك حين تكتب اسم الدالة يظهر لك شرح لها, وهذا ما لا يتم في حالة كتابة ملاحظاتك على شكل تعليق.

القاعدة الرابعة؛ تقسيم المشروع البرمجي إلى مجزوئات فرعية والابتعاد عن اعتمادية الكود:

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

القاعدة الخامسة؛ إتباع مبدأ المسؤولية الفردية (SRP):

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

  • يجب أن تكون صغيرة.
  • يجب أن تفعل شيئًا واحدًا فقط، ويجب أن تفعل ذلك بشكل جيد.

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