توليد الشيفرة باستخدام build_runner
توليد الشيفرة النمطية من التعليقات التوضيحية
توليد الشيفرة باستخدام build_runner درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
لماذا نولّد الكود؟
بعض الأكواد عبارة عن تعليمات تمهيدية متكررة، مثل تحليل JSON. تكتب Code generation هذه الأكواد نيابةً عنكم انطلاقًا من التعليقات التوضيحية، فتظلون دقيقين وسريعين. ⚙️
تعرّفوا إلى build_runner
إن build_runner أداة Dart التي تشغّل مولدات الكود على مشروعكم. فهي تقرأ ملفات المصدر، وتعثر على التعليقات التوضيحية، وتُصدر ملفات جديدة.
اعتمادية للتطوير
تضيفون build_runner ضمن dev_dependencies في pubspec.yaml، لأنه يعمل وقت البناء ولا يُضمَّن مطلقًا مع تطبيقكم.
dev_dependencies:
build_runner: ^2.4.0ملف part المُولَّد
تكتب المولِّدات في ملف مجاور. وتربطون به باستخدام توجيه part، وينتهي اسمه اصطلاحًا باللاحقة .g.dart.
part 'user.g.dart';تشغيل البناء
شغّلوا التوليد لمرة واحدة باستخدام الأمر build. يفحص هذا الأمر شيفرتكم وينشئ كل ملف .g.dart أو يحدّثه.
dart run build_runner buildوضع المراقبة
أثناء التطوير، يعيد وضع watch التوليد تلقائيًا كلما حفظتم الملف. ويحافظ على مزامنة الملفات المُولَّدة دون الحاجة إلى إعادة التشغيل يدويًا.
dart run build_runner watchمعالجة التعارضات القديمة
إذا تعارضت المخرجات مع ملفات قديمة، أضيفوا --delete-conflicting-outputs. فهذا يحذف الملفات المُولَّدة القديمة حتى ينجح البناء الجديد.
dart run build_runner build --delete-conflicting-outputsالتعليقات التوضيحية هي المحرّك
لا تعمل المولِّدات إلا على التصريحات التي تضعون لها annotate. إذ تخبر التعليقة التوضيحية أداة البناء بالفئة التي يجب معالجتها والشيفرة التي ينبغي إنتاجها.
لا تعدّلوا الملفات المُولَّدة
تعاملوا مع كل ملف .g.dart على أنه read-only. سيستبدل البناء التالي تعديلاتكم، لذا عدّلوا المصدر والتعليقات التوضيحية بدلًا من ذلك.
التضمين أو التجاهل
تختار الفرق إما تضمين الملفات المُولَّدة في المستودع، أو إضافتها إلى .gitignore وإعادة بنائها في CI. في كلتا الحالتين، اختاروا سياسة واحدة والتزموا بها.
منظومة أوسع
تتصل حزم كثيرة بـ build_runner، مثل json_serializable وfreezed. وهي تشترك في مسار builder واحد، لذلك يشغّلها أمر واحد جميعًا.
تحقّق سريع
ما الأمر الذي يعيد توليد الشيفرة عند كل حفظ للملف؟
مراجعة
يحوّل build_runner التعليقات التوضيحية إلى ملفات .g.dart مُولَّدة. أضيفوه إلى dev_dependencies، وشغّلوا build أو watch، ولا تعدّلوا المخرجات مطلقًا. 🎉
الأسئلة الشائعة
هل درس «توليد الشيفرة باستخدام build_runner» مجاني؟
نعم — نص درس «توليد الشيفرة باستخدام build_runner» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «توليد الشيفرة باستخدام build_runner»؟
توليد الشيفرة النمطية من التعليقات التوضيحية تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «توليد الشيفرة باستخدام build_runner»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التعليقات التوضيحية المضمّنة: override وdeprecated
- كتابة التعليقات التوضيحية المخصصة
- توليد الشيفرة باستخدام build_runner
- json_serializable عمليًا