2010-04-25 8 views
7

Ich finde mich 10 mal mehr Code lesen als schreiben. Meine IDEs sind alle so optimiert, dass ich Code bearbeiten kann - mit Vervollständigung, Code-Assist, Konturen usw. Wenn ich jedoch ein völlig neues Projekt auschecke: Die Logik der Anwendung wird nicht mit diesen IDE-Funktionen optimiert. Weil ich nicht erweitern kann, was ich nicht vollständig verstehe.Lesen Code - hilfreiche Visualisierer und Browser-Tools

Wenn Sie zum Beispiel ein relativ neues Projekt, frama-c, ausprobieren, erkennen Sie, dass es Plugins gibt, die hilfreich sind, um Einblick in "unbekannten Code" zu bekommen: http://frama-c.com/plugins.html - Allerdings hat das Projekt natürlich einen anderen Umfang. Was mir völlig bewusst ist.

Ich bin auf der Suche nach etwas, das hilfreiche Dinge für das Lesen von Code tut. Wie:

  • ein Diagramm Bereitstellung - Engineering UML e g Reverse
  • zeigt variable Bereiche
  • anzeigt, welche Teile von versuchten Änderungen
  • Visualisierung Datenfluß Semantik
  • zeigt Tag betroffen sind. -Listen von stark beanspruchten Funktionen
  • ...

Ich hoffe, dass so etwas existiert. - Dass es einige Eclipse-Plugins gibt, die ich nicht kenne oder dass es einen Code-Browser gibt, der einige dieser Features hat?

Antwort

1

Source Navigator ist ein Tool zum Anschauen. Es ist ein bisschen alt, aber Call Graph Visualisierung.

+0

gut ... Call Graph Visualisierung ist nicht genau das, was ich suche. Das ist mehr Profiling als Übersicht. – wishi

0

Das erste und vierte Aufzählungszeichen in Ihrer Frage, zusammen beschreiben 'Aufruf Grafik'.

Natürlich sind diese ideal, wenn Sie viel Code verdauen, der von jemand anderem geschrieben wurde.

Hier ist eine implementation in C++, die die Quelle und die Dokumentation enthält. Es gibt einige Call Graphs (grafische Darstellung von Funktionsaufrufen) Implementierungen - ich habe sie (src + docs) im Web für eine Vielzahl von Sprachen gefunden. Das eigene Rollen ist jedoch nicht schwierig. Die meisten (alle?) Der Call-Graph-Skripts, die ich gefunden habe, basieren auf graphviz, die, wie Sie vielleicht wissen, eine Layout-Engine ist, die eine sehr einfach zu erlernende Syntax ('Punkt') zur Darstellung von Graphen verwendet.

Ich habe auch Graphviz für andere Zwecke im Zusammenhang mit Test/Diagnose verwendet; Beispielsweise ist Gprof2Dot ein Python-Skript, das die Profiler-Ausgabe in eine Punktdatei umwandelt (die dann von graphviz als Grafik gerendert werden kann).

1

Gekoppelt mit graphviz, Doxygen kann Wunder tun, wenn es keine High-Level-Design-Dokumentation gibt.