شرح المفهوم
يبدأ الأداء في Go غالبًا بكتابة أبسط شيء يعمل، ثم إزالة الهدر حيثما يكون مهمًا. في هذا الدرس، ستبني مثالًا صغيرًا، وتفحص أين يحدث عمل إضافي، وتُجري تحسينًا واحدًا مركزًا دون جعل الكود أصعب في القراءة. الهدف هو التدرب على اختيار تدفق بيانات فعال، وتجنب التخصيصات غير الضرورية قدر الإمكان، والحفاظ على الدوال صغيرة بما يكفي لتسهيل فهمها.
أين تضع الكود
- عرّف متغيرات اللون والموضع في الأعلى.
- أنشئ منطق رسم الأشكال أو وضعها في المنتصف.
- اعرض المخرجات (طباعة، لوحة رسم، SVG، أو كتلة منسقة) في النهاية.
مرجع الأوامر
- شغّل الكود، ثم لاحظ أي جزء يكرر العمل وأي جزء يبقى ثابتًا.
- قِس تغييرًا صغيرًا واحدًا، مثل التخصيص المسبق لشريحة (slice) أو إعادة استخدام قيمة، وقارن النتيجة.
- حافظ على بنية الحزمة (package) بسيطة بحيث تظل تغييرات الأداء سهلة المراجعة.
- اكتب سببًا واحدًا يجعل نسختك الأسرع لا تزال قابلة للقراءة.
دليل خطوة بخطوة
- شغّل الكود المبدئي أولاً لتعرف السلوك الأساسي.
- حدد مكانًا واحدًا يقوم فيه البرنامج بعمل أكثر من اللازم.
- قم بتحسين واحد فقط، ثم أعد تشغيل البرنامج وقارن المخرجات.
- اشرح في جملة واحدة لماذا يساعد تغييرك في الأداء.
- اختتم بفحص سريع: نتيجة صحيحة، أسماء واضحة، ولا تعقيد غير ضروري.
تمارين تطبيقية
- أعد كتابة المثال بحيث يبني شريحة أكبر بكفاءة دون تغيير النتيجة النهائية.
- أنشئ نسخة ثانية تحل نفس المهمة بطريقة أبسط ولكن أقل تحسينًا قليلاً، ثم قارن المفاضلات.
- غيّر المثال ليعمل مع السلاسل النصية (strings) بدلاً من الأعداد الصحيحة (integers) وحافظ على كفاءة الكود.
تحديات برمجية
- عالج مجموعة مدخلات أكبر وحافظ على سهولة تتبع الكود.
- ابحث عن تحسين للأداء لا يعتمد على حيل ذكية أو كود مربك.
مهام تمرين صغيرة
- أعد تسمية متغير واحد لجعل غرضه أوضح.
- أضف تعليقًا قصيرًا يشرح اختيار الأداء الذي قمت به.
- اطبع طول وسعة الشريحة (slice) لتأكيد ما يفعله البرنامج.
خطأ شائع
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.