2010-04-25 4 views
7

Je me surprends à lire 10 fois plus de code qu'à écrire. Mes IDE sont tous optimisés pour me permettre d'éditer du code - avec complétion, aide au code, contours etc. Cependant, si je consulte un projet complètement nouveau: entrer dans les logiques de l'application n'est pas optimisé avec ces fonctionnalités IDE. Parce que je ne peux pas étendre ce que je ne comprends pas complètement. Si vous regardez par exemple un projet relativement récent, frama-c, vous vous rendez compte qu'il a des plugins utiles pour avoir un aperçu du "code inconnu": http://frama-c.com/plugins.html - Cependant, bien sûr, le projet a une portée différente. Ce dont je suis pleinement conscient.Code de lecture - visualiseurs et outils de navigation utiles

Je cherche quelque chose qui fait des choses utiles pour la lecture de code. Comme:

  • fournissant un graphique, - inverse UML ingénierie e g,
  • montrant champs variables
  • montrant quelles parties sont affectées par des modifications tentatives
  • visualisant sémantique de flux de données
  • étiquette montrant. -listes des fonctions fortement utilisées
  • ...

Mon espoir est que quelque chose comme ça existe. - Qu'il y a des plugins Eclipse que je ne connais pas ou qu'il y a un navigateur de code qui a certaines de ces fonctionnalités?

Répondre

1

Source Navigator est un outil à regarder. C'est un peu vieux mais a une visualisation de graphique d'appel.

+0

bien ... la visualisation de graphique d'appel n'est pas exactement ce que je cherche. C'est plus de profilage que de vue d'ensemble. – wishi

0

La première et la quatrième puce de votre question décrivent ensemble un 'graphique d'appel'.

Bien sûr, ils sont idéaux lorsque vous avez digéré beaucoup de code écrit par quelqu'un d'autre.

Voici un implementation en C++ qui inclut la source et les docs. Il existe de nombreuses implémentations de «call graphs» (affichage graphique des appels de fonction) - je les ai trouvées (src + docs) sur le Web pour une variété de langues. Rouler le vôtre n'est pas difficile cependant. La plupart (tous?) Des scripts de graphes d'appel que j'ai rencontrés sont basés sur graphviz, qui, comme vous le savez, est un moteur de mise en page qui utilise une syntaxe très facile à apprendre ('point') pour représenter les graphiques.

J'ai également vu graphviz utilisé à d'autres fins liées aux tests/diagnostics; par exemple, Gprof2Dot, est un script python qui convertit la sortie du profileur en un fichier point (qui peut ensuite être rendu sous forme graphique par graphviz).

1

Couplé avec graphviz, Doxygen peut faire des merveilles lorsqu'il n'y a pas de documentation de conception de haut niveau.

Questions connexes