Ich muss leider berichten, dass ich meine Programme erst kürzlich erneut auf Primfaktoren und Tic-Tac-Toe untersucht habe und sie völlig frei von jeglichen Kommentaren oder Dokumentationen sind.
- Donald E. Knuth
Jeder Programmierer ist wiederholt auf eine Situation gestoßen, in der Sie den Code eines anderen lesen müssen, ohne eine Vorstellung davon zu haben, wofür diese oder jene Funktion oder Klasse gedacht ist und wie sie im Allgemeinen miteinander verbunden ist.
Dies geschieht sogar mit eigenen Programmen und Skripten, die in schreibgeschütztem YP geschrieben sind.
Entwickler, die ein Talent für die Arbeit mit solchen Codes haben, werden im Team hoch geschätzt.
Es gibt solche wundersamen Labyrinthe aus dem Code, wenn der Quellcode Folgendes enthält:
- Inkonsistenter Entwicklungsstil
- Übermäßig komplexe und verwirrende Programmstruktur
- Offensichtliche logische Fehler oder Auslassungen
- Vernachlässigen
Sie müssen verstehen, dass es einen großen Unterschied zwischen Live-Arbeitscode und einem Bildungs- und Bildungscode gibt. Im ersten Fall kann der Entwicklungsprozess durch eine Vielzahl von technischen, kommerziellen und sogar häuslichen Gründen beeinflusst werden. Unter ihrem Einfluss kann selbst das strengste und eleganteste Software-Design zu Spaghetti werden. Die Hauptgründe für diese Metamorphose sind vielen Programmierern bekannt.
- Die allererste und grundlegende Voraussetzung für ein Arbeitsprogramm ist, dass es hier und jetzt ausgeführt werden muss, häufig auf verschiedenen Geräten und Plattformen. Wenn Sie aufgrund von Einschränkungen durch Domänenrichtlinien seltsame Problemumgehungen finden müssen, werden diese Lösungen definitiv erfunden und implementiert.
- Die Softwareentwicklung für AppleStore, das Wireguard- Beispiel, ist ziemlich aufschlussreich.
- . , .
- , .
- PHP, JavaScript.
Feige. 1 Exploits einer Mutter .
Die Hermeneutik des Quellcodes erfordert besondere Fähigkeiten und Werkzeuge. Fähigkeiten dieser Art sind nur mit Erfahrung verbunden, aber eine gründliche Kenntnis der syntaktischen Merkmale der Sprache und der zugehörigen Dokumentation kann die Arbeit für diejenigen erleichtern, denen es an praktischer Erfahrung mangelt. Eine weitere solche Hilfe sind spezielle Tools für die Quellcodeforschung.
Sourcetrail zur Rettung
Sourcetrail ist ein fortschrittlicher interaktiver Explorer und Parser, mit dem Sie Ihren Quellcode aktiv erkunden können, indem Sie Strukturdaten indizieren und sammeln. Die Anwendungsoberfläche besteht aus drei Hauptteilen.
Feige. 2 Sourcetrail-Schnittstelle .
- Schnelle Suche und Auswahl indizierter Symbole im Quellcode. Ein Fenster zur automatischen Vervollständigung bietet sofort einen Überblick über alle übereinstimmenden Ergebnisse in der gesamten Codebasis. Die Fuzzy-Suche wird unterstützt.
- Das Diagramm zeigt die Struktur des Quellcodes. Der Fokus liegt auf dem aktuell ausgewählten Symbol. Das Diagramm zeigt explizit die eingehenden und ausgehenden Abhängigkeiten von anderen Symbolen an.
- Nach Ansicht Code in einer Liste zeigt alle Teile des Quellcodes für das aktuell ausgewählte Zeichen.
Beim Start fordert Sie Sourcetrail auf, ein Projekt auszuwählen. Das Set enthält mehrere Bildungs- und Schulungskurse für alle unterstützten Sprachen. Nach Auswahl eines Projekts indiziert Sourcetrail den Quellcode und Sie können mit der Arbeit mit dem Projekt beginnen.
Feige. 3 Projektauswahl .
Strukturen und Klassen werden grau angezeigt. Pakete, Module und Namespaces - rosa ; Funktionen und Methoden sind gelb und Variablen und Bereiche sind blau . Derzeit werden folgende Programmiersprachen unterstützt:
- C / C ++;
- Java;
- Python.
Feige. 4 Methode Ausführen .
Wir haben das Projekt tictactoe_cpp und dann die Methode Run ausgewählt. Anhand des Diagramms können Sie deutlich erkennen, dass Run über die Hauptfunktion einmal aufgerufen wird. Zusätzlich zu den Eckpunkten des Graphen tragen die Kanten auch eine nützliche semantische Last.
- Einschließlich Text aus Datei: grün → grün.
- Verwendet Typ: gelb → grau.
- Variable Nutzung: gelb → blau.
- Funktionsaufruf: gelb → gelb.
Abbildung 5 Bezeichnung der Kanten des Diagramms .
Darüber hinaus gibt es Definitionen für das Überschreiben (links) und die Methodenvererbung (rechts).
Abb. 6 Notation von Kanten zum Überschreiben und Erben einer Methode .
Sourcetrail ist bestrebt, interaktives Verhalten auf jede mögliche Weise umzusetzen. Wenn Sie in der Codeansicht Diagrammobjekte auswählen, werden die entsprechenden Symbole automatisch hervorgehoben. Das Gegenteil ist auch der Fall. Die Auswahl der Symbole in der Codedarstellung führt zu einer automatischen Neukonfiguration des Diagramms. Das ausgewählte Element im Diagramm wird sofort in die Mitte verschoben, und der Inhalt im Codebereich wird ebenfalls aktualisiert. Wenn Sie den Mauszeiger über die Diagrammobjekte bewegen, werden die entsprechenden Symbole mit einem rechteckigen Rahmen hervorgehoben. Auch hier gilt das Gegenteil für das Bewegen des Mauszeigers über Zeichen im Codebereich.
Sie können den Detaillierungsgrad und die Tiefe des Diagrammgebäudes mithilfe der Trail-Steuerelemente in der oberen linken Eckefestlegen .
Feige. 7 Einstellungen für die Grafikanzeige .
Ein interessantes Benutzeroberflächenkonzept für diese Anwendungsklasse ist die Navigation im Stil eines Webbrowsers. In Abb. In 2 sind die Schaltflächen Zurück , Vorwärts und Startseite sichtbar . Ich muss sagen - es ist wirklich praktisch. Die Refresh - Taste neuzeichnen nicht die Grafik, wie man erwarten könnte, schlägt aber vor Wieder Indizierung der Quellcodedateien. Mit der Schaltfläche Lesezeichen können Sie Ihren Favoriten ein Symbol hinzufügen.
Eine der Trail-Steuerelemente ist der benutzerdefinierte Trailganz oben. Durch Aufrufen des entsprechenden Formulars können Sie das gewünschte zusammengesetzte Diagramm, Detail, Start- und Zielknoten sowie die Art der Konstruktion auswählen.
Feige. 8 Erstellen eines Diagramms mit einem benutzerdefinierten Pfad .
Sourcetrail installieren
Sourcetrail ist für Windows, MacOS und Linux verfügbar. Windows-Benutzer führen setup.exe wie gewohnt aus. Unter macOS erfolgt die Installation mit Standard-Betriebssystem-Tools. Für Linux gibt es zwei Möglichkeiten:
- Laden Sie das Paket .tar.gz herunter und führen Sie den Befehl Sourcetrail.sh aus.
- Laden Sie das AppImage, erteilen Sie die Ausführungsberechtigung mit dem Dateinamen chmod + x und führen Sie es dann einfach aus.
Die Einstellungen werden an folgenden Orten gespeichert.
- Windows
- macOS ~ / Bibliothek / Anwendungsunterstützung / Sourcetrail;
- Linux ~ / .config / sourcetrail.
Für die aktuelle Version von Sourcetrail muss die Java 8-Laufzeit installiert sein, um Java-Projekte zu indizieren. Die binäre Sourcetrail-Architektur muss mit der der JRE übereinstimmen. Sourcetrail 32-Bit erfordert eine 32-Bit-JRE, und eine 64-Bit-Version der Anwendung erfordert jeweils eine 64-Bit-JRE.
Unterstützung für IDEs und Editoren von Drittanbietern
Sourcetrail unterstützt die Integration mit einer Vielzahl von IDEs und Texteditoren. Alle Plugins sind Open Source, die Entwicklung erfolgt auf Github .
- Atom;
- CLion;
- Finsternis;
- Emacs;
- IntelliJ IDEA;
- Qt Schöpfer;
- Erhabener Text;
- Vim;
- Visual Studio-Code.
CLI-Funktionen
Über die Befehlszeile können Sie das Projekt in Sourcetrail indizieren oder anpassen.
sourcetrail index [options...] projectfile
Möglichkeiten:
--help; --version; --project-file # .srctrlprj .
Projektaufbau:
sourcetrail config [options...] --help; --indexer-threads # ; --use-processes #, C/C++ ; --logging-enabled #/ / ; --verbose-indexer-logging-enabled # , ; --jvm-path; --jvm-max-memory; --maven-path # maven; --jre-system-library-paths # jar JRE; --global-header-search-paths; --global-framework-search-paths; --show # ;
Zusammenfassung
Es wird angenommen, dass Entwickler die meiste Zeit damit verbringen, vorhandenen Code zu verstehen, anstatt neuen Code zu schreiben. Quellcode-Analysetools wie Sourcetrail können das Gleichgewicht erheblich zugunsten des letzteren neigen, ohne die Qualität zu beeinträchtigen. Ich möchte darauf hinweisen, dass der Fokus auf einer durchdachten und vertrauten dynamischen Benutzeroberfläche liegt, die perfekt die Rolle eines unauffälligen Assistenten spielt und bei Routinevorgängen erheblich Zeit spart.