كود الجيل في دارت. الجزء 1. الأساسيات

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


https://yougottobekidding.wordpress.com/2012/02/18/geeks-and-repetitive-tasks/


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


في عالم تطوير 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 في التطبيق.

Source: https://habr.com/ru/post/ar445824/


All Articles