شرح المفهوم
لا يحتاج المبتدئ إلى مطاردة التحسينات الدقيقة، ولكن من المفيد ملاحظة متى يكون أحد الأساليب أنظف وأخف من الآخر. في هذا الدرس، يعني منظور الأداء مقارنة طريقتين لإنشاء نفس المخرجات وفهم سبب قابلية إحداهما للتوسع بشكل أفضل. توفر لك Java عدة طرق للتعامل مع النصوص، وتعد الأمثلة الصغيرة أفضل مكان لرؤية المفاضلات بوضوح. ستستخدم حلقة تكرارية، وتولد محتوى متكررًا، وتلاحظ كيف يؤثر الهيكل على كل من سهولة القراءة والكفاءة. الهدف ليس حفظ حيل السرعة. الهدف هو تطوير غرائز جيدة: اختر حلاً واضحًا أولاً، ثم تحقق مما إذا كان لا يزال منطقيًا عندما يزداد حجم العمل.
أين تضع الكود
- عرّف متغيرات اللون والموضع في الأعلى.
- أنشئ منطق رسم الأشكال أو وضعها في المنتصف.
- اعرض الإخراج (طباعة، `canvas`، `SVG`، أو كتلة منسقة) في النهاية.
مرجع الأوامر
- شغّل الكود وافحص النص الناتج سطرًا بسطر.
- زد حجم الحلقة التكرارية وشاهد كيف يتغير الإخراج.
- أعد كتابة الحلقة التكرارية مرة واحدة باستخدام دمج السلاسل النصية العادي (`string concatenation`)، ثم قارن سهولة القراءة.
- اذكر سببًا واحدًا لتفضيل `StringBuilder` غالبًا لتجميع النصوص المتكررة.
دليل خطوة بخطوة
- اشرح ما تضيفه الحلقة التكرارية في كل تمريرة.
- شغّل البرنامج الأولي وتأكد من طباعة خمسة أسطر.
- غيّر الحد الأعلى للحلقة التكرارية وأعد تشغيل الكود.
- أنشئ نسخة ثانية تستخدم `String` عاديًا لنفس المهمة.
- قارن كلا النسختين ولاحظ أي منهما ستفضل الاحتفاظ بها في برنامج أكبر.
تمارين تطبيقية
- عدّل البرنامج بحيث يتضمن كل سطر حالة مثل `done` أو `pending`.
- أنشئ نسخة تطبع أسماء مستخدمين مرقمة بدلاً من تسميات المهام.
- أضف سطرًا واحدًا قبل الحلقة التكرارية ليعمل كعنوان تقرير بسيط.
تحديات برمجية
- ولّد قائمة أكبر بكثير واشرح أي نهج يظل أسهل في الصيانة.
- صمم تنسيق إخراج صغير حيث تظل فواصل الأسطر والمسافات متسقة مع نمو القائمة.
مهام تمرين صغيرة
- أعد تسمية متغير `builder` إلى اسم أكثر وصفية.
- أضف سطرًا أخيرًا بعد إخراج الحلقة التكرارية يوضح العدد الإجمالي للمهام.
- اكتب جملة واحدة تشرح متى تبدأ اعتبارات الأداء في أن تصبح مهمة في البرامج البسيطة.
خطأ شائع
Mixing x and y axes or using wrong coordinate origin causes shapes to appear in unexpected places.
تحدٍ مصغّر من الواقع
Draw one square, one triangle, and one circle, then move X marker 2 steps right and 1 step down.