So starten Sie die Änderung mit großen Projekten

8


Ich muss Erweiterungen zu einem vorhandenen C ++ - Projekt mit über 100 KB Codezeilen vornehmen.
Meine Frage ist Wie und wo soll ich mit solchen Projekten anfangen?
Das Problem steigt weiter, wenn der Code nicht gut dokumentiert ist. Gibt es automatisierte Tools zur Untersuchung des Code-Flusses bei großen Projekten?

Danke,

    
sud03r 29.06.2009, 05:32
quelle

10 Antworten

13

Es gibt ein Buch für Sie: Effektiv mit Legacy-Code arbeiten

Es geht nicht um Werkzeuge, sondern um verschiedene Ansätze, Prozesse und Techniken, mit denen Sie den Code besser verstehen und ändern können. Es ist sogar aus einer meist C ++ Perspektive geschrieben.

    
Nader Shirazie 29.06.2009, 05:38
quelle
16

Verwenden Sie die Quellcodeverwaltung, bevor Sie etwas anfassen!

    
AraK 29.06.2009 05:34
quelle
3
  • Zuerst die vorhandene Schnittstelle gut untersuchen.
  • Schreiben Sie Tests, wenn sie nicht vorhanden sind, oder erweitern Sie bereits geschriebene.
  • Ändern Sie den Quellcode.
  • Führen Sie Tests aus, um zu überprüfen, ob die Änderung das ältere Verhalten irgendwie unterbricht.
Alan Haggai Alavi 29.06.2009 05:41
quelle
3

Es gibt ein weiteres gutes Buch, das derzeit im Internet frei verfügbar ist, über objektorientiertes Reengineering: Ссылка

    
Michael Zilbermann 29.06.2009 07:04
quelle
3

Das Buch "Code Reading" von Diomidis Spinellis enthält viele Ratschläge, wie man sich einen Überblick und ein vertieftes Wissen verschaffen kann über größere, unbekannte Projekte.

Kapitel 6 konzentriert sich einsam auf dieses Thema (Tacking Large Projects). Auch die Kapitel über Tooling (Kap. 9) und Architektur (Kap. 8) können schöne Hinweise für Sie enthalten.

Im Buch geht es jedoch darum, den "Code" zu verstehen (durch Lesen). Es geht nicht direkt den Wartungsschritt an.

    
dmeister 29.06.2009 07:32
quelle
3

Zuerst würde ich versuchen, die Anforderungen des Produkts zu finden .

Es ist fast undenkbar, dass ein Produkt dieser Größe ohne Anforderungen entwickelt wird.

Indem Sie die Anforderungen durchlesen, können Sie:

  • bekomme ein Gefühl dafür, was das Produkt (und damit der Code) mindestens tun soll
  • Sehen Sie, wie gut (oder schlecht) der Code diese Anforderungen tatsächlich erfüllt

Sonst guckst du nur auf Code und versuchst die Absicht der Entwickler zu verstehen ...

    
Dan 29.06.2009 14:33
quelle
2

Laufen Doxygen mit dem EXTRACT_ALL Tag festgelegt, um alle Beziehungen in der Codebasis zu dokumentieren. Es wird Ihnen nicht mit dem Code-Flow helfen, aber hoffentlich wird es etwas Licht in Bezug auf die Struktur und das Design der gesamten Anwendung geben.

    
Soo Wei Tan 29.06.2009 05:41
quelle
2

Wenn Sie in der Lage sind, den Code auf einem PC auszuführen, können Sie versuchen, einen Callgraph normalerweise aus einer Profiling-Ausgabe zu erstellen.

Auch Querverweis-Tools wie cscope, ctags, lxr usw. können viel helfen. A

Wenn Sie etwas Zeit mit dem Lesen, dem Erstellen von Klassendiagrammen oder dem Hinzufügen von Kommentaren zu den Teilen des Codes verbringen, die Sie lange zu verstehen brauchten, sollten Sie sich mit der Codebasis vertraut machen und sie modifizieren / erweitern.

    
piotr 29.06.2009 06:26
quelle
2

Als Erstes müssen Sie verstehen, wie der Code funktioniert. Lesen Sie, welche Dokumentation es gibt, und beobachten Sie, wie das Programm unter einem Debugger läuft. Wenn Sie sich die Hauptfunktion / Schleife ansehen und sich dann langsam tiefer in das Programm hineinarbeiten, können Sie eine ziemlich gute Vorstellung davon bekommen, wie die Dinge funktionieren. Stelle sicher, dass du deine Ergebnisse aufschreibst, damit andere, die dir folgen, eine bessere Ausgangsposition haben.

    
Steve Rowe 29.06.2009 07:38
quelle
1

Ein sehr guter österreichischer Programmierer hat mir einmal gesagt, dass man, um ein Programm zu verstehen, zuerst die Datenstrukturen verstehen muss, die das Programm verwendet.

    
tr9sh 29.06.2009 10:44
quelle

Tags und Links