Исходный код программы надо визуализировать - отобразить в виде схем для лучшего понимания, изучения, осмысления, создания документации и др.
Рисовать схемы вручную никто хочет - надо создавать их полностью автоматически.
Предлагаю вниманию несколько инструментов для визуализации кода:
Граф зависимостей модулей языка golang, с отображением директорий.
Граф подключений к внешним сервисам
Приложения для автоматического создания схемы таблиц и колонок в БД Postgres (ERD-diagram)
Все инструменты бесплатные, автоматические, автономные
1) Граф зависимостей модулей языка golang, с отображением директорий.Утилита предназначена для отображения всех пакетов(модулей) любого репозитория на языке Golang в виде схемы(граф) в формате .graphml, который можно конвертировать в картинку .jpg и др.
Нужно для понимания структуры исходного кода репозитория, для изучения или лучшего понимания структуры вызовов исходного кода.
Отображаются:
имена каталогов
имена пакетов
количество функций и строк в пакете
стрелки вызовов горутин go (синие)
стрелки вызовов функций (чёрные)
стрелки взаимосвязи пакетов (пунктирные)
пример:
![](https://habrastorage.org/getpro/habr/upload_files/1ed/d56/b1c/1edd56b1ca375b0aac27dcc9c16385ed.jpg)
Граф подключений к внешним сервисам
Утилита предназначена для отображения всех подключений к внешним сервисам любого репозитория на языке Golang в виде схемы(граф) в формате .graphml, который можно конвертировать в картинку .jpg и др. Автоматически анализируется исходный код репозитория для поиска импорта модулей внешних сервисов. Нужно для понимания с какими сервисами взаимодействует этот репозиторий, для изучения или лучшего понимания структуры вызовов исходного кода.
Отображаются:
имя текущего репозитория
имена внешних сервисов, и стрелки к ним Настроено для отображения следующих сервисов: Postgres SQL, MSSQL, Kafka, Nats, Minio, EMail, Web, Web socket, Camunda, Whatsapp, Telegram, Chat GPT, Redis, Keycloak, Prometeus и др.
пример:
![](https://habrastorage.org/getpro/habr/upload_files/f8c/41a/0d8/f8c41a0d87a0e7043b992dc2afac6a65.jpg)
Приложения для автоматического создания схемы таблиц и колонок в БД Postgres (ERD-diagram)
Есть много разных приложения для автоматического создания ERD-diagram, однако все они отображают стрелки связей только до таблицы, а не до нужной колонки, и не имеют возможности редактировать и обновлять отредактированную схему
Приложение умеет автоматически находить в БД и рисовать:
Все таблицы
Все колонки таблиц и типы
Стрелки взаимосвязи таблиц от колонки до колонки (foreign key)
Находит таблицы в старом имеющемся файле .graphml, и располагает таблицы по таким же координатам X,Y
Полученный файл .graphml в бесплатном редакторе yED можно:
Экспортировать в рисунок .jpg
Редактировать
Сделать автоматическую расстановку блоков
пример:
![](https://habrastorage.org/getpro/habr/upload_files/34f/67a/b19/34f67ab195cf04e9db14e9012f309d84.jpg)
Резюме: указанные обработки пригодятся всем программистам на языке golang :-) (для других языков нужны такие же).