من المعروف أنه من الجيد جدًا أن يكون المبرمج كسولًا ، لأن القيام بالمزيد بأقل باستخدام مفتاح التقدم . لا أحد يحب أن يفعل الشيء نفسه مرارًا وتكرارًا. هذا متعب وممل وليس خلاقًا على الإطلاق. تكرار نفس الإجراء ، نرتكب الأخطاء في كثير من الأحيان ، ولكن لحسن الحظ ، هناك أشخاص يتمتعون بالفعالية والفعالية في أداء مهام مماثلة. وهذه هي أجهزة الكمبيوتر !

اليوم ، توليد الشفرة هو القدرة على القيام بهذه المهمة في أقصر وقت ممكن . الفكرة الأساسية بسيطة: العثور على نمط في نفس المقاطع المملة والتي يجب كتابتها مرارًا وتكرارًا ، قم بإنشاء أداة للجيل ، قم بتشغيلها ، وانظر كيف يحدث السحر!
في عالم تطوير Android ، هذه الأدوات معروفة لكل مطور. هذا هو التحديثية ، والخنجر ، والغرفة. ماذا عن دارت؟ وليس أقل أهمية السؤال: ماذا نحتاج إلى إنشاء أدوات خاصة بنا لإنشاء التعليمات البرمجية؟
ثبة ورمز توليد: أدوات بأسعار معقولة
لإنشاء أداة لإنشاء الشفرة ، نحتاج إلى الحزمتين التاليتين:
source_gen
توفر هذه الحزمة واجهة برمجة تطبيقات ملائمة لإنشاء التعليمات البرمجية. هذا عبارة عن مجموعة من حزم Dart ذات المستوى المنخفض ، مثل المحلل والبناء . على الرغم من أن استخدام هذه الحزمة اختياري ، إلا أنه يمكن أن يوفر لك العديد من الصعوبات.
source_gen يوفر فئتين مولد مجردة التي تتبع نمط الزائر :
Generator
: عند ورث هذا الفصل ، سيتم زيارة كل عنصر من عناصر الكود. وبالتالي ، لديك سيطرة كاملة على ما يجب القيام به مع كل عقدة أو عنصر تمت زيارته.GeneratorForAnnotation
: هذه الفئة تشبه Generator بسيط ، ولكن عندما ترث هذه الفئة ، يمكنك أيضًا تحديد "تعليق توضيحي". وبالتالي ، لن تتم زيارة سوى العقد الموضحة بهذا التعليق التوضيحي. سيتم تجاهل بقية الكود.
تحتاج أيضًا إلى تكوين Builder
، والذي سيكون ملفقًا فوق المولد. هناك ثلاثة خيارات:
- إذا كنت ترغب في كتابة
partial
من التعليمات البرمجية ، فعليك اختيار SharedPartBuilder
. يسمح لك "part" بتقسيم المكتبة إلى عدة ملفات Dart. SharedPartBuilder
بإنشاء ملف بالملحق .g.dart
. - يمكنك أيضًا استخدام
PartBuilder
إذا كنت تريد استخدام النهج "part" ، لكنك تحتاج إلى مزيد من التحكم في امتداد الملف الذي تم إنشاؤه ، على سبيل المثال .my_file.dart
. - إذا كنت ترغب في كتابة مكتبة قائمة بذاتها يمكن استيرادها ، استخدم
LibraryBuilder
.
build_runner
تتيح لك هذه الأداة تشغيل المولد في مرحلة التطوير. يمكن استدعاؤها من سطر الأوامر:
pub run build_runner <command>
بدلاً من <command>
قد يكون:
build
: يبدأ الجيل مرة واحدة.watch
: تطلق برنامج خفي يتتبع التغييرات في الملفات ويبدأ في التوليد عند الحاجة.serve
: مشابهة للمشاهدة ، لكنها تبدأ تمامًا مثل خادم التطوير.test
: يبدأ الجيل مرة واحدة ، ويقوم بإنشاء دليل إخراج مشترك ، ثم يقوم pub run test --precompiled <merged-output-dir>
.
لكي source_gen
، يجب عليك أيضًا إنشاء ملف buil.yaml
، والذي يشير إلى تفاصيل تكوين مولد الشفرة.
باستخدام كود توليد في دارت
يستخدم توليد الشفرة في العديد من المكتبات المعروفة في Dart:
المزيد ...
سيوضح الجزء الثاني كيفية استخدام التعليقات التوضيحية وإنشاء التعليمات البرمجية لتتبع جميع TODO
في التطبيق.