شرح المفهوم
يقدم هذا الدرس المعمارية بمستوى مناسب للمبتدئين: تنظيم الكود بحيث يكون لكل جزء وظيفة واضحة واحدة. أنت لا تبني نظامًا كبيرًا بعد، ولكنك ستتدرب على فصل البيانات والسلوك وتدفق البرنامج بدلاً من وضع كل شيء في ملف واحد أو دالة واحدة. هذه العادة مهمة مبكرًا لأن البنية النظيفة تجعل الاختبار أسهل، وتقلل الارتباك، وتمنحك مسارًا أكثر سلاسة من التمارين البسيطة إلى التطبيقات الحقيقية.
أين تضع الكود
- عرّف متغيرات اللون والموضع في الأعلى.
- أنشئ منطق رسم الأشكال أو تحديد موضعها في المنتصف.
- اعرض المخرجات (طباعة، `canvas`، `SVG`، أو كتلة منسقة) في النهاية.
مرجع الأوامر
- حدد أي صنف يخزن البيانات وأي صنف يتعامل مع التنسيق أو السلوك.
- شغّل المثال، ثم غيّر قيمة إدخال واحدة لتأكيد أن كل جزء لا يزال يعمل كما هو متوقع.
- أعد هيكلة مسؤولية واحدة خارج `main` بحيث تظل نقطة الدخول صغيرة وقابلة للقراءة.
- اكتب جملة واحدة تشرح لماذا هذه البنية أسهل في التوسيع من وضع كل شيء في دالة واحدة.
دليل خطوة بخطوة
- اقرأ المثال وحدد دور كل صنف قبل تغيير أي شيء.
- شغّل الكود الأساسي لتأكيد المخرجات الحالية.
- قم بتحسين معماري واحد، مثل نقل التنسيق أو التحقق إلى صنف منفصل.
- قارن الإصدار الجديد بالأصلي وقرر أيهما أسهل فهمًا.
- اختتم بملاحظة قصيرة حول كيفية تأثير البنية على قابلية القراءة والتغييرات المستقبلية.
تمارين تطبيقية
- أضف صنفًا ثانيًا يتحقق من صحة بيانات المستخدم قبل عرضها.
- غيّر المثال من سجل مستخدم إلى سجل منتج أو طلب مع الحفاظ على نفس البنية.
- اكتب ملخصًا موجزًا للمخرجات يوضح كائن البيانات والصنف المسؤول عن العرض.
تحديات برمجية
- أنشئ تصميمين صغيرين لنفس المشكلة وقارن أيهما يحافظ على مسؤوليات أوضح.
- صمم تخطيط حزمة صغير لمشروع مبتدئ يتضمن أصناف البيانات والخدمة ونقطة الدخول.
مهام تمرين صغيرة
- أعد تسمية صنف أو دالة لجعل مسؤوليتها أكثر وضوحًا.
- أضف اختبارًا يدويًا سريعًا باستخدام كائن `User` ثانٍ.
- اكتب ملخصًا من سطر واحد يوضح أي خيار معماري حسّن هذا المثال.
خطأ شائع
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.