[Code-Visualisierungspraxis] Auswirkungsanalyse von Codeänderungen | Technisches Team von JD Cloud

1. Einleitung

Im vorherigen Artikel „ Eine kurze Analyse der Codevisualisierung “ beschrieb der Autor die grundlegenden Implementierungsprinzipien der Codevisualisierung und gab einige Anwendungsszenarien in der Branche an. Aufgrund des breiten Spektrums an beteiligten Prinzipien und Technologien ist es für den Autor schwierig, alles abzudecken. Um die Verzerrung bei der Informationsübermittlung zu verringern, werden einige Informationsquellen angegeben, die der Leser ausführlich lesen kann. Für einige kleine Funktionspunkte in den im Artikel erwähnten Anwendungsszenarien können Sie jedoch den Implementierungsplan im Detail analysieren, um das große Ganze im Kleinen zu sehen. Daher wird in diesem Artikel die Anwendung der Codevisualisierung bei der Analyse der Auswirkungen von Codeänderungen näher erläutert, in der Hoffnung, für alle hilfreich zu sein.

2. Szene

Lassen Sie uns zunächst anhand zweier gängiger Entwicklungsszenarien beschreiben, warum wir eine „Analyse der Auswirkungen von Codeänderungen“ benötigen.

Szenario 1 : Die Logik von Methode ① wurde geändert, da angenommen wurde, dass sie sich nur auf Eingang A auswirken würde, sodass nur die relevanten Szenarien zurückgegeben wurden. Nachdem ich online gegangen war, wurde festgestellt, dass die Logik von Eingang B betroffen war, was zu einem Online-Unfall führte.

Szenario 2 : Modifizierte die Logik von Methode ② und gab alle bekannten Verkehrseingänge zurück, aber nach einiger Zeit nach dem Online-Zugang traten viele abnormale Alarme auf. Es stellte sich heraus, dass dies Auswirkungen auf die geplanten Aufgaben und die MQ-Verbrauchslogik hatte.

Andere usw...

„Analyse der Auswirkung von Codeänderungen“ kann konkret beschrieben werden als: Wie erkennt man den Einflussbereich funktionaler Logikänderungen, die durch Codeänderungen verursacht werden, insbesondere welche Klassen, Methoden, Eingänge und Aufruftopologien betroffen sind?

3. Planen

Als Reaktion auf die Anforderungen wird unten ein Implementierungsplan basierend auf einer statischen Analyse des Quellcodes angegeben.

4. Umsetzung

Im Folgenden wird der spezifische Implementierungsplan basierend auf Java8 beschrieben

4.1 Generierung der Methodenaufruftopologie

  • Die Grundidee

Verwenden Sie JGit, um das Remote-Warehouse in das lokale zu ziehen, und analysieren Sie mit JavaParser den Quellcode, um Klassen-, Methoden- und Methodenaufrufinformationen zu erhalten, und erstellen Sie darauf basierend eine Methodenaufruf-Topologiekarte.

  • Umsetzungsschritte

Schritt 1 : Verwenden Sie JGit, um das Remote-Repository in das lokale zu ziehen

Schritt 2 : Richten Sie die JavaParser-Konfiguration ein und analysieren Sie alle Quellcodedateien des Projekts

Schritt 3 : Durchlaufen Sie alle Klassendateien, um Informationen zu Klassen, Methoden und Methodenaufrufen zu erhalten

Schritt 4 : Identifizieren Sie Projekteintragsklassen und -methoden (der Beispielcode implementiert nur die Identifizierung von Spring-HTTP-Einträgen).

Schritt 5 : Verwenden Sie die Eingabemethode als Startknoten und generieren Sie ein Methodenaufruf-Topologiediagramm basierend auf der Methode und der Aufrufbeziehung.

(Das für die Analyse verwendete Codebeispiel befindet sich im Paket src/main/java/com/analysis/code/example.)

4.2 Auswirkungsanalyse von Codeänderungen

  • Die Grundidee

Ermitteln Sie mithilfe von Git Diff, welche Java-Klassendateien von der Änderung betroffen sind. Führen Sie dann eine Quellcodeanalyse der Klassendateien vor und nach der Änderung durch, um die Klassenmethodenliste zu erhalten. Vergleichen Sie die Unterschiede davor und danach, um die von der Änderung betroffenen Methodenknoten zu erhalten Und kombinieren Sie schließlich die zuvor generierten Methodentopologieinformationen, um die Topologiekarte der Änderungsauswirkungen zu erhalten.

  • Umsetzungsschritte

Schritt 1 : Verwenden Sie JGit, um zu ermitteln, welche Dateien von Zweigänderungen betroffen sind

Schritt 2 : Verwenden Sie JavaParser, um die Java-Dateien vor und nach der Änderung zu analysieren und die Methodenliste der Klassen vor und nach der Änderung abzurufen.

Schritt 3 : Vergleichen Sie die Methodenkörperinformationen vor und nach der Änderung in der Reihenfolge (Entfernen der Auswirkungen von Kommentaren und Formatieren des Codes), um zu ermitteln, welche Methoden von der Änderung betroffen sind

Schritt 4 : Kombinieren Sie die Methodentopologie, um die Ergebnisse der Änderungsauswirkungen zu generieren

5. Zusammenfassung

Je früher die Auswirkungen von Änderungen beurteilt werden, desto leichter lässt sich das Risiko im Keim ersticken und Unfälle zu geringeren Kosten vermeiden. Dieser Artikel bietet einen grobkörnigen Implementierungsplan für die Funktion „Analyse der Auswirkungen von Codeänderungen“, der Technologien wie Git, Quellcodeanalyse und visuelle Diagramme umfassend nutzt. Aufgrund der immer komplexer werdenden Geschäftssituation sind die im Artikel beschriebenen Funktionen jedoch noch relativ rudimentär und müssen anhand von Szenarien erweitert und verfeinert werden, um für Entwickler wirklich hilfreich zu sein.

6.Referenz

JavaParser

JGit-Kochbuch

graphviz

Graphviz-Java

Autor: Jingdong Technology Xie Xiao

Quelle: JD Cloud Developer Community Bitte geben Sie beim Nachdruck die Quelle an

OpenAI öffnet ChatGPT Voice Vite 5 kostenlos für alle Benutzer. Es wird offiziell veröffentlicht . Zauberoperation des Betreibers: Trennen des Netzwerks im Hintergrund, Deaktivieren von Breitbandkonten, Erzwingen des Wechsels optischer Modems durch Benutzer. Microsoft Open-Source-Terminal-Chat- Programmierer manipulierten ETC-Guthaben und mehr als 2,6 Millionen Yuan pro Jahr unterschlagen. Der vom Vater von Redis verwendete reine C-Sprachcode implementiert das Telegram Bot-Framework. Wenn Sie ein Open-Source-Projektbetreuer sind, wie weit können Sie diese Art von Antwort ertragen? Microsoft Copilot Web AI wird am 1. Dezember offiziell eingeführt und unterstützt das chinesische OpenAI. Die ehemaligen CEOs und Präsidenten Sam Altman und Greg Brockman wechselten zu Microsoft. Broadcom gab die erfolgreiche Übernahme von VMware bekannt.
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/u/4090830/blog/10150932
Recomendado
Clasificación