Чтение кода - полезные визуализаторы и инструменты браузера
Я читаю в 10 раз больше кода, чем пишу. Все мои IDE оптимизированы для того, чтобы я мог редактировать код - с завершением, поддержкой кода, схемами и т. Д. Однако, если я проверяю совершенно новый проект: проникновение в логику приложения не оптимизируется с помощью этих функций IDE. Потому что я не могу расширить то, что я не до конца понимаю.
Например, если вы посмотрите на сравнительно новый проект frama-c, вы поймете, что в нем есть плагины, которые помогают понять "незнакомый код": http://frama-c.com/plugins.html - Однако Конечно, проект имеет другую сферу. То, что я полностью осознаю.
Я ищу что-то полезное для чтения кода. Подобно:
- предоставление графика, - обратный инжиниринг UML, например,
- показ переменных областей
- показывающий, какие части подвержены попыткам модификации
- визуализация семантики потока данных
- отображение списков тегов часто используемых функций
- ...
Я надеюсь, что что-то подобное существует. - Что есть некоторые плагины Eclipse, которые я не знаю, или что есть браузер кода, который имеет некоторые из этих функций?
3 ответа
Source Navigator - это инструмент для просмотра. Он немного староват, но имеет визуализацию графа вызовов.
В сочетании с Graphviz, Doxygen может творить чудеса, когда нет высокоуровневой проектной документации.
Первая и четвертая маркировка в вашем вопросе вместе описывают " граф вызовов ".
Конечно, они идеальны, когда вы перевариваете много кода, написанного кем-то другим.
Вот одна реализация в C++, которая включает в себя исходный код и документы. Существует довольно много реализаций "графов вызовов" (графическое отображение вызовов функций) - я нашел их (src + docs) в Интернете для различных языков. Прокатить свой не сложно, хотя. Большинство (все?) Скриптов графа вызовов, с которыми я сталкивался, основаны на graphviz, который, как вы, возможно, знаете, является механизмом компоновки, который использует очень простой в освоении синтаксис ('точка') для представления графиков.
Я также видел графвиз, используемый для других целей, связанных с тестированием / диагностикой; например, Gprof2Dot, это скрипт Python, который преобразует выходные данные профилировщика в точечный файл (который затем может быть отображен в виде графика с помощью graphviz).