Email or username:

Password:

Forgot your password?
iliazeus

Есть ли какое-то ПО, которое позволило бы строить что-то вроде mind map, но с привязкой к коду? Чтобы куски кода были узлами в графе, и их можно было произвольно соединять, показывая между ними связи.

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

@rf #вопрос

14 comments
iliazeus

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

Aleksei Duriagin

@iliazeus чтобы не вставлять скриншоты кода, draw.io в связке с vscode также умеет добавлять ссылки на конкретный код. двойной клик на Node в графике перекинет на строчку в коде.

iliazeus

@aduryagin а какое это расширение? Я просто использовал именно веб-приложение; не знал, что есть такая интеграция.

Это оно?

marketplace.visualstudio.com/i

Mikle_Bond

@iliazeus
Возможно, третье поможет obsidian, и его дополнение canvas
@rf

iliazeus

@Mikle_Bond попробую, спасибо!

D:\side\

@iliazeus теоретически это задача distributed tracing, вроде Jaeger, но немного поздновато настраивать его, когда всё уже поехало и искать концы надо уже сейчас.

Плюсую Obsidian и его Canvas, это вроде точно соответствует желаемому. (Но что это лучшее решение задачи — не уверен.)

iliazeus

@dside distributed tracing не поможет полностью, даже если его нормально настроить - хочу иметь возможность помещать на граф код не только по пути запроса, но и просто логически связанный. Например, если баг из-за того, что из базы достали кривые данные - то видеть и код, который эти данные в базу мог положить.

Obsidian с Canvas попробую, спасибо!

D:\side\

@iliazeus да, но он всё ещё может положить достаточно контекста перед глазами, чтобы в голове можно было уместить всё остальное.

Граф для такой процедуры может быть чрезмерным.

У меня на последней работе была принята практика постмортемов — начиная с наблюдаемого или сообщённого симптома, задавать вопрос "почему это случилось?", отвечать на него и задавать этот же вопрос к ответу, пока не придём к проблеме, которую можно решать.

Вели мы их обычно в общей вики вложенными списками (деревом то бишь), прикладывая ссылки на код в гите или отчётики в мониторинге, где релевантно. Необходимости в графах как-то не испытывали. Больше того, большую часть времени эти вопросы-ответы образовывали одну линию, без веток. Но ветки бывали, поэтому остановились на формате, что их допускает.

@iliazeus да, но он всё ещё может положить достаточно контекста перед глазами, чтобы в голове можно было уместить всё остальное.

Граф для такой процедуры может быть чрезмерным.

У меня на последней работе была принята практика постмортемов — начиная с наблюдаемого или сообщённого симптома, задавать вопрос "почему это случилось?", отвечать на него и задавать этот же вопрос к ответу, пока не придём к проблеме, которую можно решать.

BiFiK

@iliazeus @rf

Можно посмотреть в сторону uml диаграмм.
Сгенерированную uml можно загрузить в Plantuml и посмотреть связи между классами

iliazeus

@bifik так а каким инструментом ее так сгенерировать? :)

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

BiFiK

@iliazeus тут надо искать готовые реализации под тот язык, который используется.

iliazeus

@bifik все, что я знаю, генерируют просто стандартные диаграммы классов. В которых, с одной стороны, слишком много всего, что мне не нужно. А с другой стороны, нет того, что нужно.

Например, связей между сервисами. В проекте несколько сервисов на двух разных языках, связанных между собой через http api и через очередь сообщений. Вряд ли какой-то из таких инструментов их учтет.

iliazeus

@bifik поэтому и ищу не автоматическую генерацию, а просто "ручной" инструмент, но с удобствами.

Go Up