Detekt محلل ثابت لكوتلين

حان الوقت لنحب محلل ثابت! تلبية Detekt في Kotlin


إذا كنت تعرف بالفعل ما سيتم مناقشته وكنت مهتمًا فقط بتنفيذ المشروع ، فتابع مباشرة إلى نقطة التثبيت.

ما هذا؟


الصورة

إجراء تحليل البرمجيات (على عكس التحليل الديناميكي) دون التنفيذ الحقيقي للبرامج قيد الدراسة. ويكيبيديا

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

تعمل أدوات التحليل الثابتة على تسهيل عمل المراجع وتوفير وقت فريق التطوير بشكل عام.

لنفترض أن لدينا علاقات عامة جيدة ، ومع ذلك ، فقد قدم المؤلف أسماء أطول من اللازم للمتغيرات ، ورمز مكتوب يمكن تبسيطه بسهولة أو انتهاكه لأحد القواعد العديدة المحددة في ملف تكوين Detekt ، والقواعد ليست معقدة ، ولكن مراجعة التعليمات البرمجية لن تمر بهذه العلاقات العامة.
سيتعين على المؤلف مرة أخرى التبديل بين المشاريع ، وكذلك المراجعين ، وأنا متأكد من أن المراجعة المتكررة لن تجلب سوى القليل من المتعة.
أتمتة إذا كان سريعًا وغير مكلف. (ج) الحس السليم

ما هي أجهزة التحليل الثابتة؟


لجافا:


بالنسبة لكوتلين:


أجب على السؤال الذي نشأ في رأسك ، لا يعمل Spot-bugs على Kotlin.

تقديم Detekt في المشروع


يمكن تثبيت الكشف بعدة طرق:

  1. البرنامج المساعد ل AndroidStudio
  2. Gradle

أعتقد أن التكوين من خلال Gradle أكثر مرونة وأتحدث عنه.

توجد على الموقع الرسمي عدة طرق لتثبيت Detekt في المشروع ، اعتمادًا على إصدار Gradle ، سواء كان مشروع Android. ولكن ، في تجربتي في تنفيذ مشروع android ، لا تعمل بعض التعليمات . في الوقت الحالي ، المشروع قريب جدًا من الإصدار 1.0. أحدث إصدار في وقت كتابة هذا التقرير هو مرشح الإصدار 1.0.0-RC14

هكذا.

نذهب إلى الموقع الرسمي Gradle ونرى تعليمات التثبيت.

buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.0.0-RC14" } } 

هذا القرار أنصحك بالالتزام بمشروع Android.

ربما لاحظت أنني قمت بإزالة التطبيق: سطر البرنامج المساعد ، حيث أنصحك بفصل Detekt إلى ملف منفصل وتطبيق التقدم فيه بالفعل.

المرحلة 1:


لذلك ، انسخ هذا الرمز إلى مستوى التطبيق build.gradle.

هناك ، في كتلة allprojects ، يجب أن نكتب سطرًا لتطبيق ملفنا الذي يحتوي على إعدادات detekt.

 allprojects { apply from: "$rootDir/detekt.gradle" repositories { maven { url "https://plugins.gradle.org/m2/" } } } 

المرحلة 2:


ثم تحتاج إلى إنشاء ملف detekt.gradle

 apply plugin: "io.gitlab.arturbosch.detekt" detekt { toolVersion = "1.0.0-RC14" // Version of the Detekt CLI that will be used. When unspecified the latest detekt version found will be used. Override to stay on the same version. input = files("src/main/java") // The directories where detekt looks for input files. Defaults to `files("src/main/java", "src/main/kotlin")`. parallel = true // Builds the AST in parallel. Rules are always executed in parallel. Can lead to speedups in larger projects. `false` by default. filters = ".*build.*,.*/resources/.*,.*/tmp/.*" // Regular expression of paths that should be excluded separated by `;` or `,`. config = files("$rootDir/detekt-config.yml") // Define the detekt configuration(s) you want to use. Defaults to the default detekt configuration. reports { xml { enabled = true // Enable/Disable XML report (default: true) destination = file("build/reports/detekt.xml") // Path where XML report will be stored (default: `build/reports/detekt/detekt.xml`) } html { enabled = true // Enable/Disable HTML report (default: true) destination = file("build/reports/detekt.html") // Path where HTML report will be stored (default: `build/reports/detekt/detekt.html`) } } } 

المرحلة 3:


أنت الآن بحاجة إلى إنشاء ملف التكوين detekt-config.yml

هذا ملف تكوين قياسي من الموقع الرسمي .

المرحلة 4:


افتح وحدة التحكم وقم بتشغيل الأمر: gradlew detekt

هذا كل شئ!


الآن لديك إحصائيات جاهزة لمشروعك. يتم عرضها في وحدة التحكم ، ويمكنك أيضًا العثور عليها على طول المسار: {u_project} \ app \ build \ reports \ detekt

في الختام


يعد استخدام Detekt مناسبًا جدًا عند البناء في جنكينز
وقت تنفيذ المهمة في مشروع مع أكثر من 2000 فئة هو 4-7 ثواني *.

أريد أن أقول إن استخدام محلل ثابت يبسط عملنا قليلاً. يسرع عملية التطوير ويوفر أموال الأعمال.

المراجع:

ديتيكت جيثب
إعداد detekt
default-detekt-config.yml

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


All Articles