golang

Визуализация исходного кода на языке golang

  • четверг, 28 сентября 2023 г. в 00:00:19
https://habr.com/ru/articles/763688/

Исходный код программы надо визуализировать - отобразить в виде схем для лучшего понимания, изучения, осмысления, создания документации и др.

Рисовать схемы вручную никто хочет - надо создавать их полностью автоматически.

Предлагаю вниманию несколько инструментов для визуализации кода:

  1. Граф зависимостей модулей языка golang, с отображением директорий.

  2. Граф подключений к внешним сервисам

  3. Приложения для автоматического создания схемы таблиц и колонок в БД Postgres (ERD-diagram)

    Все инструменты бесплатные, автоматические, автономные

    1) Граф зависимостей модулей языка golang, с отображением директорий.

    Утилита предназначена для отображения всех пакетов(модулей) любого репозитория на языке Golang в виде схемы(граф) в формате .graphml, который можно конвертировать в картинку .jpg и др.

    Нужно для понимания структуры исходного кода репозитория, для изучения или лучшего понимания структуры вызовов исходного кода.

    Отображаются:

  • имена каталогов

  • имена пакетов

  • количество функций и строк в пакете

  • стрелки вызовов горутин go (синие)

  • стрелки вызовов функций (чёрные)

  • стрелки взаимосвязи пакетов (пунктирные)

пример:

  1. Граф подключений к внешним сервисам

    Утилита предназначена для отображения всех подключений к внешним сервисам любого репозитория на языке Golang в виде схемы(граф) в формате .graphml, который можно конвертировать в картинку .jpg и др. Автоматически анализируется исходный код репозитория для поиска импорта модулей внешних сервисов. Нужно для понимания с какими сервисами взаимодействует этот репозиторий, для изучения или лучшего понимания структуры вызовов исходного кода.

    Отображаются:

  • имя текущего репозитория

  • имена внешних сервисов, и стрелки к ним Настроено для отображения следующих сервисов: Postgres SQL, MSSQL, Kafka, Nats, Minio, EMail, Web, Web socket, Camunda, Whatsapp, Telegram, Chat GPT, Redis, Keycloak, Prometeus и др.

пример:

  1. Приложения для автоматического создания схемы таблиц и колонок в БД Postgres (ERD-diagram)

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

Приложение умеет автоматически находить в БД и рисовать:

  1. Все таблицы

  2. Все колонки таблиц и типы

  3. Стрелки взаимосвязи таблиц от колонки до колонки (foreign key)

  4. Находит таблицы в старом имеющемся файле .graphml, и располагает таблицы по таким же координатам X,Y

Полученный файл .graphml в бесплатном редакторе yED можно:

  1. Экспортировать в рисунок .jpg

  2. Редактировать

  3. Сделать автоматическую расстановку блоков

пример:

Резюме: указанные обработки пригодятся всем программистам на языке golang :-) (для других языков нужны такие же).