مبادئ البرمجة الأساسية والمُمارسات التي يجب أن يعرفها كل مُبرمج

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

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

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

1. دعهُ بسيطاً، يا أحمق (قانون د.ب.أ)

قد يبدو الأمر قاسيًا بعض الشيء، لكنه أحد أهم المبادئ التي يجب اعتمادها عند كتابة كود الكمبيوتر. ماذا يعني قانون د.ب.أ؟

د.ب.أ هو اختصار للجملة «دعهُ بسيطاً، يا أحمق» هي قاعدة تصميمية عامة غير مُلزمة الاتباع، أي أنها نمط يُتبع من البعض.

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

إليك وظيفة بسيطة:

function addNumbers(num1, num2) {
    return num1 + num2;
}

بسيطة جدًا. من السهل قراءتها، وأنت تعرف بالضبط ما يحدث عند تنفيذها.

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

2. مبدأ عدم التكرار (DRY)

مبدأ برمجة الكمبيوتر “لا تُكرر نفسك” (DRY) يعني بوضوح عدم تكرار التعليمات البرمجية، وهو مفيد بشكل خاص في الأنظمة مُتعددة الطبقات. ينص مبدأ على أنَّ «أي جزء في النظام ينبغي أن يكون مُعرّفاً في مكان واحد مسؤول عن هذا الجزء». إنه خطأ ترميز شائع. عند كتابة التعليمات البرمجية، تجنب تكرار البيانات أو المنطق. إذا لم تقم مُطلقًا بنسخ ولصق التعليمات البرمجية في برنامجك، فأنت لا تُكرر نفسك.

ألق نظرة على هذه التعليمات البرمجية:

function addNumberSequence(number) {
    number = number + 1;
    number = number + 2;
    number = number + 3;
    number = number + 4;
    number = number + 5;
    return number;
}

بدلاً من تكرار الخطوط، حاول العثور على خوارزمية تستخدم حلقة.

من السهل الحفاظ على كود يتبع مبدأ عدم التكرار (DRY). ومن الأسهل تصحيح أخطاء حلقة واحدة تتعامل مع 50 تكرارًا بدلاً من 50 كتلة من التعليمات البرمجية التي تُعالج كل منها تكرارًا واحدًا.

3. مبدأ المفتوح المغلق

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

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

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

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

4. التركيب بدلًا من الوراثة

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

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

تُعتبر البرمجة التركيبية أكثر سهولة في الكتابة، وأسهل في الصيانة، وتسمح بسلوكيات تحدد المرونة. كل سلوك فردي هو فئته الخاصة. يُمكنك إنشاء سلوكيات مُعقَّدة من خلال الجمع بين السلوكيات الفردية.

5. مبدأ المسؤوليّة الواحدة

ينص مبدأ مبدأ المسؤوليّة الواحدة (SRP) على أن كل فئة أو وحدة في البرمجية يجب أن تُوفر وظيفة واحدة مُحددة فقط. وكما يقول روبرت سي مارتن: “يجب أن يكون لدى الفئة سبب واحد فقط للتغيير”.

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

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

6. فصل الاهتمامات

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

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

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

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

7. أنت لن تحتاجها! لذا لا تقم ببرمجتها (YAGNI)

يعني هذا المبدأ أنه لا ينبغي عليك أبدًا كتابة التعليمات البرمجية للدالة في حالة أنك قد تحتاج إلى شيء ما في المستقبل. أحد أهم مبادئ برمجة الكمبيوتر التي يجب تعلمها هو أنه لا ينبغي عليك محاولة حل مشكلة غير موجودة.

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

قم بتطبيق مبادئ برمجة عدم التكرار فقط عندما تحتاج إلى ذلك؛ إذا لاحظت وجود أجزاء من التعليمات البرمجية مكتوبة مرارًا وتكرارًا، فقم بتنفيذ طبقة من التجريد. لا تُفكر كثيرًا في المستقبل على حساب مجموعة التعليمات البرمجية الحالية التي لديك.

8. توثيق التعليمات البرمجية

مع كل هذا الحديث عن مبادئ البرمجة، قد يكون من السهل نسيان الإنسان الموجود على الجانب الآخر والذي قد يتمكن في النهاية من الوصول إلى الكود الخاص بك بنفسه.

سيُؤكد أي مطور كبير على أهمية توثيق الكود بالتعليقات المناسبة. يجب إتاحتها لجميع اللغات؛ كما يجب أن تجعل كتابتها عادة. اترك تعليقات لشرح الكائنات وتعزيز تعريفات المُتغيِّرات وتسهيل فهم الوظائف.

إليك وظيفة JavaScript مع التعليقات التي تُرشدك خلال الكود:

// This function will add 5 to the input if odd, or return the number if even
function evenOrOdd(number) {
    // Determine if the number is even
    if (number % 2 == 0) {
        return number;
    }
    // If the number is odd, this will add 5 and return 
    else {
        return number + 5;
    }
}

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

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

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

9. إعادة هيكلة الكود

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

تتطور قواعد التعليمات البرمجية باستمرار. أحد مبادئ البرمجة هو تذكر أنه من الطبيعي تمامًا إعادة النظر في أجزاء كاملة من التعليمات البرمجية أو إعادة كتابتها أو حتى إعادة تصميمها.

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

10. تنظيف الكود بأي شكل

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

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

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

الأسئلة الشائعة

س1. ما هي أهمية فهم مبادئ البرمجة الأساسية؟

فهم مبادئ البرمجة الأساسية أمر حيوي لأي مُبرمج. إنه يُساعد على بناء فهم عميق لكيفية عمل الأكواد والبرمجيات، مما يسهم في كتابة تعليمات برمجية أكثر فعالية ويسهل صيانتها.

س2. ما هي المفاهيم الأساسية التي يجب على كل مبرمج معرفتها؟

بعض المفاهيم الرئيسية تشمل عدم التكرار، المفتوح المُغلق، المسؤولية الأحادية، والبساطة. هذه المفاهيم تُشكل اللبنة الأساسية لفهم وكتابة الأكواد بشكل فعّال.

تعلم مبادئ برمجة الكمبيوتر لتكون مُبرمجًا جيدًا

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

DzTech

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