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

اليوم ، توليد الشفرة هو القدرة على القيام بهذه المهمة في أقصر وقت ممكن . الفكرة الأساسية بسيطة: العثور على نمط في نفس المقاطع المملة والتي يجب كتابتها مرارًا وتكرارًا ، قم بإنشاء أداة للجيل ، قم بتشغيلها ، وانظر كيف يحدث السحر!
في عالم تطوير 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 في التطبيق.