كتابة كود أقل في البرمجة
المسار: أساسيات البرمجة الوحدة: الدوال والخطوة التالية
مدخل إلى الدرس: كتابة كود أقل في البرمجة
مفهوم تصغير حجم الكود بدايةً تقليص أو تصغير حجم الكود يقصد به إزالة الكود الذي لا داعي له و الذي إن تم حذفه فإنه لا يؤثر بتاتاً على طريقة عمله. إذاً...
طريقة الدراسة: اقرأ التعريف، تتبّع المثال في الشرح، نفّذه بنفسك، ثم اختبر النتيجة والحالات الاستثنائية قبل الانتقال.
مفهوم تصغير حجم الكود
بدايةً تقليص أو تصغير حجم الكود يقصد به إزالة الكود الذي لا داعي له و الذي إن تم حذفه فإنه لا يؤثر بتاتاً على طريقة عمله.
إذاً تقليص حجم الكود لا يكون بحذف كود مهم منه بل بإزالة ما يمكن الإستغناء عنه.
في هذا الدرس ستتعلم كيف يمكنك تصغير حجم الكود بأكبر قدر ممكن.
كلما كان حجم الكود أصغر كلما أصبح الكود أسهل في القراءة، الصيانة، التعديل و المراجعة.
إذاً سواء كنت تنشئ برنامج عادي أو موقع أو لعبة إلخ.. دائماً حاول جعل الكود أصغر و خالي من التكرار.
طرق تصغير حجم الكود
- باستخدام الحلقات و الدول لعدم تكرار الكود.
- بعدم كتابة أي كود يمكن الإستغناء عنه.
- أسلوب المبرمج و براعته في التحليل.
تصغير حجم الكود باستخدام الحلقات
إذا كنت تريد تنفيذ الأمر نفسه عدة مرات، قم بكتابته مرة واحدة داخل حلقة بدل أن تكتبه نفسه عدة مرات كما كنت تفعل حين كنت ترسم أشكل هندسية بواسطة النجوم لأنك بهذا الأسلوب تستطيع جعل حجم الشكل الهندسي قابل للتغير بدون إجراء أي تعديل على الكود.
الكود التالي يعمل 100% و لكن كتابته بهذا الشكل أمر سيء بسبب تكرار الأمر write() 5 مرات.
مثال
write("*\n"); write("**\n"); write("***\n"); write("****\n"); write("*****\n");
سنحصل على النتيجة التالية عند التشغيل.
**
***
****
*****
تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.
الآن سنكتب نفس الكود السابق مرة واحدة بالإعتماد على الحلقات، و نجعله يتكرر على قدر ما نحتاج.
أسلوب كتابة الكود التالي يعتبر جيد جداً.
مثال
for (var i=1; i<=5; i++) { for (var j=1; j<=i; j++) { write("*"); } write("\n"); }
سنحصل على النتيجة التالية عند التشغيل.
**
***
****
*****
تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.
تقليص حجم الكود بعدم كتابة أي كود يمكن الإستغناء عنه
في معظم لغات البرمجة يمكنك أن لا تضع أقواس البداية و النهاية { } مع الحلقات و الشروط إذا كنت قد وضعت بداخلهم أمر واحد فقط.
السبب في ذلك أنك بالمنطق تستخدم الحلقة لتكرار عملية واحدة على الأقل، و تضع شرط لكي تنفذ عملية واحدة على الأقل.
بمعنى آخر، عندما تستخدم حلقة أو شرط يتوقع منك مفسّر الكود أن تضع فيهم على الأقل أمر واحد، لذلك إذا كنت تريد وضع أمر واحد فقط بداخل الحلقة أو الشرط يمكنك عدم وضع أقواس البداية و النهاية و سيعمل الكود بدون أي مشكلة.
حلقة بدون أقواس بداية و نهاية
في المثال التالي الحلقة الداخلية تحتوي أمر واحد فقط بداخلها و لهذا يمكننا عدم وضع أقواس البداية و النهاية لها.
مثال
for (var i=1; i<=5; i++) { for (var j=1; j<=i; j++) write("*"); write("\n"); }
سنحصل على النتيجة التالية عند التشغيل.
**
***
****
*****
تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.
شروط بدون أقواس بداية و نهاية
في المثال التالي جمل الشرط تحتوي على أمر واحد فقط بداخلها و لهذا يمكننا عدم وضع أقواس البداية و النهاية لها.
مثال
var x = 5; if (x > 0) write(x+ " is positive."); else if (x < 0) write(x+ " is negative."); else write(x+ " is zero.");
سنحصل على النتيجة التالية عند التشغيل.
تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.
تقليص حجم الكود حسب أسلوب المبرمج و براعته في التحليل
في هذه الدورة أنت تعلمت كيف تستطيع كتابة الكود بعدة طرق و أساليب و أنه يمكنك التلاعب بالكود كما تريد و الحصول على نفس النتيجة.
بشكل عام كلما كان برنامجك يتنفذ بخطوات أقل و ليس فيه تكرار لنفس الأوامر كلما كان أفضل لأنه في هذه الحالة يكون أسرع في التنفيذ و بنفس الوقت تكون صيانته في المستقبل أسهل و بالطبع الكود في هذه الحالة يعتبر ممتاز.
ضغط الكود على سطر واحد
كتابة الكود كله على سطر واحد و إزالة المسافات الفارغة التي لا داعي لها منه يقال له Minify و هذا الأمر قد تصادفه في مراحل متقدمة من تعلمك للبرمجة خاصةً إذا عملت في مجال تطوير المواقع ففي هذا المجال دائماً ما تقوم بتضمين ملفات javascript أو css جاهزة في مشروعك فتجد أن هذه الملفات تحتوي على كود شكله مخيف جداً و غير مفهوم.
كمثال بسيط، مطوروا المواقع غالباً ما يستخدموا ملف إسمه jquery.min.js لكي يوفروا على أنفسهم كتابة الكود الذي توفره لهم هذه المكتبة.
إذا فتحت هذا الملف ستجده كله مكتوب على سطر واحد فقط و مستحيل فهمه كالتالي.
مثال توضيحي: الملفات المضغوطة (Minified) تُكتب عادة على سطر واحد وتبدو صعبة القراءة، وهذا مقصود لتسريع التحميل لا للتعلّم. أثناء دراستك اكتب كودًا واضحًا ومقروءًا، واترك الضغط لأدوات البناء لاحقًا.
// مثال مختصر بدل ملف مكتبة مضغوط كامل
function greet(name){return "Hello "+name;}
هذا الكود هو كود عادي جداً و لكن تم ضغطه على سطر واحد بهذا الشكل لكي يصبح حجمه أصغر و بالتالي يصبح تحميله يتطلب وقت أقل.
في المشاريع الحقيقية لا نكتب الكود بشكل مضغوط، بل في العادة نستخدم إضافات مجانية تقوم هي بإعطائنا نسخ مضغوطة من الملفات.
الآن سنكتب كود عادي و من ثم نعيد كتابته نفسه بشكل مضغوط حتى ترى أن ضغط الكود هو أمر ليس بمخيف.
مثال
for (var i=1; i<=5; i++) { for (var j=1; j<=i; j++) write("*"); write("\n"); }
نفس الكود السابق و لكن تم ضغطه على سطر واحد فقط.
for (var i=1; i<=5; i++) { for (var j=1; j<=i; j++) { write("*"); } write("\n"); }
سنحصل على النتيجة التالية عند التشغيل.
**
***
****
*****
تمرين: انسخ المثال وجرّبه بنفسك، ثم عدّل القيم ولاحظ النتيجة.
مراجعة وتمرين تثبيت المهارة
اختبار سريع: اشرح بعبارتك معنى «كتابة كود أقل في البرمجة»، ثم بيّن أين ستستخدمه داخل برنامج صغير لحل مشكلة يومية مع مدخلات ونتائج يمكن التحقق منها، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.
تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.
الدرس التالي: الخطوة التالية بعد تعلم أساسيات البرمجة. من الأفضل إنهاء التجربة الحالية قبل متابعة الدرس التالي.