На прошлой неделе появился ИИ-сервис DeepWiki, через который можно пропустить код любого проекта, размещенного на GitHub. В результате будет сгенерирована подробная документация о коде и структуре проекта, качественно структурированная и снабженная ссылками. В документации даже будут нарисованы различные графы взаимосвязей классов и будет сделана визуализация различных процессов, происходящих в программе.
Чтобы получить документацию, надо взять URL репозитария на GitHub, и заменить подстроку "github" на "deepwiki".
Я взял свой проект менеджера накопления информации MyTetra, и прогнал его через этот сервис. Результат меня не только удивил, но и порадовал. Бездушная машина прошерстила весь код, и собрала в кучу сведения о всех решениях и всех особенностях, заключенных в строках программы.
Итак, документация (на текущее состояние кода MyTetra) находится по следующему адресу:
https://deepwiki.com/xintrea/mytetra_dev
Честно говоря, эта документация настолько обширна и подробна, что я даже не помню всех тонкостей, которые были заложены в код. А эта штуковина обнаружила кучу закономерностей и взамосвязей, о которых я, как разрабочик, уже и забыл.
Мало того, в нижней части окна браузера имеется промпт-строка. Через нее можно, к примеру, делать навигацию по коду. Например, можно прямо по-русски написать что-то типа:
Покажи в каких местах кода происходит управление текстовыми таблицами в визуальном редакторе.
И в ответ сервис покажет все возможные места где это происходит. Можно задавать более сложные вопросы, например попросить показать как происходит доступ к тому или иному объекту из какого-либо класса и прочие подобные вещи.
Единственное. что пока осталось мне непонятным - какую конкретно ветку кода анализирует этот сервис. На первый взгляд он вроде как настраивается на самые актуальные изменения. Потому что в отчете он показал функционал, который есть только в ветке experimental. То есть, сервис как-то сам понял, что просматривать надо не master-ветку, а более актуальную. За это можно даже поставить отдельный плюс.
Да, с этим инструментом гораздо легче разбираться в больших и сложных проектах. Упрощается навигация по коду и понимание что там к чему. Пользуйтесь на здоровье.