Визуализация архитектуры кода

Каждый уик-энд я кодирую в личном проекте, который со временем достиг определенной сложности, когда у меня есть последовательности различных функций, которые берут мой вклад, что я сохраняю в некоторых объектах класса, отрубаю его, обрабатываю, а затем, наконец, вывести его.
Поскольку я делаю большие перерывы между сеансами кодирования, я обычно забываю точную структуру моего кода. Поэтому каждый раз, когда у меня появляется ошибка, я должен снова ознакомиться с тем, как входные данные передаются через мой код, как внутри какого-то модуля, который обеспечивает функциональность, все организовано и т.д.

Я не уверен, что это связано с плохой структурой кода моего программного обеспечения или просто присущей сложности.

Есть ли инструмент, который, учитывая исходный код, наглядно показывает мне, как "архитектура" моего кода, то есть как все методы и функции классов работают вместе?

В идеале это также помогло бы мне понять код, который другие люди писали быстрее, чтобы быстро узнать, как взаимодействуют отдельные фрагменты кода.

(Я кодирую в Python с Pycharm, если это поможет вам.)

Ответы

Ответ 1

Я боюсь, что не существует идеального инструмента для всесторонней визуализации архитектуры вашей программы и потока управления, вы должны держать их в голове и сделать свою программную архитектуру чистой, унифицированной и предсказуемой. Однако есть некоторые инструменты, которые могут вам помочь.

В Pycharm вы можете:

Существует также модуль pycallgraph2 Python module, который может создавать визуализации графа вызовов для приложений Python. (Это поддерживаемая ветвь снятого с производства модуля pycallgraph Python module)

И есть Codimension IDE, у которого есть Python функция визуализации кода feature

Ответ 2

Может быть, я опоздал, но я думаю, что нашел другой инструмент, который идеально соответствует этому вопросу: Sourcetrail, который официально поддерживает C/C++/Java/Python в 2019 году. Текст внизу взят из официального документа:

Sourcetrail - это интерактивный источник, который упрощает навигация в существующем исходном коде. Цель Sourcetrail - дать ответы на все ваши вопросы о вашем исходном коде. Sourcetrail сначала индексирует ваш код и собирает данные о его структуре, а затем предоставляет вам простой интерфейс, состоящий из трех интерактивных представлений, каждый играет ключевую роль в получении информации.