Es ist Zeit, statische Analysegeräte zu lieben! Treffen Sie Detekt in Kotlin
Wenn Sie bereits wissen, was besprochen wird, und nur an der Implementierung des Projekts interessiert sind, fahren Sie sofort mit dem Installationspunkt fort.
Was ist das

Die Softwareanalyse wurde (im Gegensatz zur dynamischen Analyse) ohne tatsächliche Ausführung der untersuchten Programme durchgeführt.
WikipediaUnd in Ihren eigenen Worten ist es ein praktisches Tool, mit dem Sie die Regeln für guten Code einhalten können. Ermöglicht eine sehr flexible Anpassung der Filter durch die Definition von fehlerhaftem Code. Bei jedem Start wird ein bestimmter Bericht erstellt, der statistische Daten zu erkannten Konflikten sowie Informationen zu diesen Konflikten enthält, anhand derer festgestellt werden kann, wo der Konflikt aufgetreten ist und welchen Typ er hat.
Statische Analysegeräte erleichtern dem Prüfer die Arbeit und sparen dem Entwicklungsteam im Allgemeinen Zeit.
Angenommen, wir haben eine gute PR, aber der Autor hat Namen angegeben, die für die Variablen zu lang sind, Code geschrieben, der leicht vereinfacht werden kann, oder eine der vielen festgelegten Regeln in der Detekt-Konfigurationsdatei verletzt. Die Regeln sind nicht kompliziert, aber eine Codeüberprüfung einer solchen PR funktioniert nicht.
Der Autor wird wieder zwischen Projekten wechseln müssen, ebenso wie die Rezensenten. Ich bin sicher, dass eine wiederholte Rezension wenig Freude bereiten wird.
Automatisieren, wenn es schnell und nicht teuer ist. (C) Gesunder Menschenverstand
Was sind statische Analysegeräte?
Für Java:Für Kotlin:Ich beantworte die Frage, die in deinem Kopf auftauchte: Spot-Bugs auf Kotlin funktionieren nicht.
Einführung von Detekt in das Projekt
Detect kann auf verschiedene Arten installiert werden:
- Plugin für AndroidStudio
- Gradle
Ich denke, die Konfiguration über Gradle ist flexibler und ich spreche darüber.
Auf der offiziellen Website gibt es verschiedene Möglichkeiten, Detekt im Projekt zu installieren, abhängig von der Version von Gradle, ob es sich um ein Android-Projekt handelt. Nach meiner Erfahrung mit der Implementierung eines Android-Projekts
funktionieren einige Anweisungen jedoch nicht . Im Moment ist das Projekt sehr nahe an der Veröffentlichung von 1.0. Die aktuellste Version zum Zeitpunkt des Schreibens ist Release Candidate 1.0.0-RC14
Also.
Wir besuchen die offizielle
Gradle- Website und sehen uns die Installationsanweisungen an.
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.0.0-RC14" } }
Es ist diese Entscheidung, die Sie für das Android-Projekt einhalten sollten.
Sie haben wahrscheinlich bemerkt, dass ich die Apply: Plugin-Zeile entfernt habe, da ich Ihnen rate, Detekt in eine separate Datei zu trennen und Apply bereits darin anzuwenden.
Stufe 1:
Kopieren Sie diesen Code in das Build.gradle auf Anwendungsebene.
Dort sollten wir im Block
allprojects eine Zeile zum Anwenden unserer Datei schreiben, die Detekt-Einstellungen enthält.
allprojects { apply from: "$rootDir/detekt.gradle" repositories { maven { url "https://plugins.gradle.org/m2/" } } }
Stufe 2:
Dann müssen Sie die Datei
detekt.gradle erstellen
apply plugin: "io.gitlab.arturbosch.detekt" detekt { toolVersion = "1.0.0-RC14"
Stufe 3:
Jetzt müssen Sie die Konfigurationsdatei
detekt-config.yml erstellen
Dies ist eine Standardkonfigurationsdatei von der
offiziellen Website .
Stufe 4:
Öffnen Sie eine Konsole und führen Sie den folgenden Befehl aus:
gradlew detektDas ist alles!
Jetzt haben Sie Statistiken für Ihr Projekt bereit. Sie werden in der Konsole angezeigt und können auch im Pfad gefunden werden: {u_project} \ app \ build \ reports \ detekt
Abschließend
Es ist sehr praktisch, Detekt beim Bauen in
Jenkins zu verwendenDie Ausführungszeit für Aufgaben in einem Projekt mit mehr als 2000 Klassen beträgt 4-7 Sekunden *.
Ich möchte sagen, dass die Verwendung eines statischen Analysators unsere Arbeit ein wenig vereinfacht. Beschleunigt den Entwicklungsprozess und spart Geschäftsgeld.
Referenzen:
Detekt GithubDetekt einrichtendefault-detekt-config.yml