هل هناك أي أطر عمل آلية جيدة لتطبيق معايير الترميز في لغة Perl؟

StackOverflow https://stackoverflow.com/questions/51499

سؤال

واحد وأنا على علم به هو بيرل::ناقد

ولم يؤد بحثي على Google إلى أي نتائج في محاولات متعددة حتى الآن.:-(

هل لدى أي شخص أي توصيات هنا؟

سيكون موضع تقدير أي موارد لتكوين Perl::Critic وفقًا لمعايير الترميز لدينا وتشغيلها على قاعدة التعليمات البرمجية.

هل كانت مفيدة؟

المحلول

من حيث إعداد ملف التعريف، هل حاولت perlcritic --profile-proto؟سيؤدي ذلك إلى إرسال بيانات قياسية لجميع السياسات المثبتة لديك مع جميع خياراتها مع وصف لكليهما، بما في ذلك قيمها الافتراضية، بتنسيق perlcriticrc.حفظ وتحرير لتتناسب مع ما تريد.عندما تقوم بترقية Perl::Critic، قد ترغب في تشغيل هذا الأمر مرة أخرى وإجراء اختلاف مع perlcriticrc الحالي الخاص بك حتى تتمكن من رؤية أي تغييرات على السياسات الحالية والتقاط أي سياسات جديدة.

فيما يتعلق بتشغيل perlcritic بانتظام، قم بإعداد ملف اختبار::بيرل::ناقد اختبار مع بقية الاختبارات الخاصة بك.هذا جيد للكود الجديد.

بالنسبة للتعليمات البرمجية الموجودة لديك، استخدم اختبار::بيرل::ناقد::تقدمي بدلاً من.T::P::C::Progressive سينجح في المرة الأولى التي تقوم فيها بتشغيله، ولكنه سيحفظ عدد الانتهاكات؛بعد ذلك، T::P::C::Progressive سوف يشتكي إذا ارتفع أي من الأعداد.الشيء الوحيد الذي يجب البحث عنه هو عند التراجع عن التغييرات في نظام التحكم بالمصدر لديك.(أنت تستخدم واحدة، أليس كذلك؟) لنفترض أنني قمت بالتحقق من التغيير وإجراء الاختبارات وأن التغييرات التي قمت بها تقلل من عدد انتهاكات P::C.لاحقًا، اتضح أن التغيير الذي أجريته كان سيئًا، لذا عدت إلى الرمز القديم.سيفشل اختبار T::P::C::Progressive بسبب انخفاض الأعداد.أسهل ما يمكنك فعله في هذه المرحلة هو حذف ملف السجل (الموقع الافتراضي t/.perlcritic-history) وتشغيله مرة أخرى.يجب أن يعيد إنتاج حساباتك القديمة ويمكنك كتابة أشياء جديدة لإسقاطها مرة أخرى.

Perl::Critic لديه الكثير من السياسات التي تأتي معه، ولكن هناك مجموعة من التوزيعات الإضافية للسياسات.القي نظرة على المهمة::بيرل::ناقد و المهمة :: بيرل :: الناقد :: بما في ذلك التبعيات الاختيارية.

لا تحتاج إلى أن يكون لديك perlcriticrc واحد للتعامل مع جميع التعليمات البرمجية الخاصة بك.قم بإنشاء ملفات perlcriticrc منفصلة لكل مجموعة من الملفات التي تريد اختبارها، ثم قم بإجراء اختبار منفصل يشير إلى كل منها.على سبيل المثال، قم بإلقاء نظرة على اختبارات المؤلف لـ P::C نفسها على http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/.عندما يتم تشغيل اختبارات المؤلف، هناك اختبار يتم تشغيله على جميع أكواد P::C، واختبار ثانٍ يطبق قواعد إضافية على السياسات فقط، واختبار ثالث ينتقد اختبارات P::C.

أنا شخصياً أعتقد أنه يجب على الجميع العمل بمستوى الخطورة "الوحشي"، ولكن التخلص من السياسات التي لا يتفقون معها.Perl::Critic ليس متوافقًا تمامًا مع نفسه؛حتى مطوري P::C لا يتفقون مع كل ما يقوله كونواي.انظر إلى ملفات perlcriticrc المستخدمة في Perl::Critic نفسها وابحث في كود Perl::Critic عن مثيلات "## no Critic"؛أحسب 143 في الوقت الحاضر.

(نعم، أنا أحد مطوري Perl::Critic.)

نصائح أخرى

هنالك بيرلتيدي لمعظم المعايير الأسلوبية.يمكن تكوين perlcritic بسهولة باستخدام ملف ملف .بيرلكريتيك.أنا شخصيًا أستخدمه في المستوى الأول، لكني قمت بتعطيل بعض السياسات.

بالإضافة إلى "الأطر الآلية"، أوصي بشدة باستخدام داميان كونواي أفضل ممارسات بيرل.أنا لا أتفق مع ما يقترحه بنسبة 100%، لكنه في أغلب الأحيان يؤيده.

الوظيفة المذكورة أعلاه ديفيل::بروفيسور ربما يعني حقا ديفيل::غطاء (للحصول على تغطية التعليمات البرمجية لمجموعة الاختبار).

هناك مزيج رائع من Perlcritic مع EPIC for Eclipse - اضغط على CTRL-SHIFT-C (أو الاختصار الذي تم تكوينه المفضل لديك) ويتم تمييز التعليمات البرمجية الخاصة بك بمؤشرات تحذير حيثما وجد perlcritic شيئًا يشكو منه.أجمل بكثير من تذكر تشغيله قبل تسجيل الوصول.وكما هو معتاد مع perlcritic، فإنه سوف يلتقط .perlcriticrc الخاص بك حتى تتمكن من تخصيص القواعد.نحتفظ بـ .perlcriticrc الخاص بنا في التحكم في الإصدار حتى يحصل الجميع على نفس المعايير.

بالإضافة إلى أفضل الممارسات التجميلية، أجد دائمًا أنه من المفيد تشغيل Devel::Prof في مجموعة اختبارات الوحدة الخاصة بي للتحقق من تغطية الاختبار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top