Как закончить анализ 500 тысяч строк легаси-кода за один день и уйти домой вовремя
Устранение ошибок сканирования во внутренней сети безопасности и больших репозиториях
При запуске терминальных инструментов разработки во внутренней сети компании с межсетевым экраном и прокси-сервером возникают ошибки блокировки сети. Причиной является сбой проверки внутреннего корневого сертификата, так как из-за особенностей среды выполнения происходит обход стандартного хранилища операционной системы.
Необходимо прописать настройки прямо в профиле терминала. В переменные HTTP_PROXY и HTTPS_PROXY введите адрес внутреннего прокси. Для переменной NODE_EXTRA_CA_CERTS укажите путь к файлу внутреннего корневого сертификата. Если задать ANTHROPIC_BASE_URL как локальную конечную точку Ollama и установить значение CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC равным 1, внешний трафик будет заблокирован. Это позволяет соблюдать правила межсетевого экрана, устранять ошибки сканирования и сокращать время настройки.
Запуск полного сканирования в монолитном репозитории размером более 500 тысяч строк занимает 30 минут или завершается ошибкой кучи (heap memory). В среде с 16 ГБ оперативной памяти для стабильной работы сканера необходимо использовать локальные модели размером 14B или 20B. Создайте файл .understandignore в корне проекта.
Применить шаблоны исключений очень просто. Создайте файл в корневом каталоге и пропишите в нем пути **/node_modules/, **/target/, **/build/ и **/src/test/. Введите в терминале команду NODE_OPTIONS="--max-old-space-size=8192", чтобы увеличить лимит кучи Node.js. По мере уменьшения количества анализируемых файлов время завершения первичного сканирования сокращается до менее чем 3 минут.
Ограничение области запросов для предотвращения некорректных ответов
Если задать вопрос по всему огромному репозиторию целиком, в граф знаний единовременно загрузятся десятки тысяч узлов. Возникает галлюцинация, при которой старая и новая версии платежных классов путаются, и извлекаются нерабочие методы. Необходимо сузить область бизнес-логики.
Процедура ограничения области запросов конкретным каталогом выглядит следующим образом. При просмотре одного файла после команды указывается относительный путь к целевому файлу. При изучении структуры домена выполняются команды для извлечения узлов только в пределах определенной границы домена. При использовании команд чата также указывается путь к проверяемому каталогу, а папка тестов исключается. По мере уменьшения количества узлов точность поиска кода возрастает.
Опасно слепо доверять результатам ИИ и сразу исправлять код. Необходимо самостоятельно сопоставлять вывод графа знаний с исходным кодом. Откройте проводник файлов в IDE, чтобы проверить, действительно ли существует метод, о котором говорит ИИ. Проверьте отношения вызовов, убедитесь в правильности области действия транзакций и файлов сопоставления. Перед изменением кода запустите команду для анализа последствий.
Автономное извлечение схемы системных потоков с помощью функции экскурсии
В легаси-системах, где ответственные сотрудники уволились и нет никакой документации, даже для понимания работы одного API приходится перерывать десятки файлов. Использование инструментов Understand-Anything позволяет создать экскурсию, которая пошагово проводит по системе в порядке зависимостей между слоями, начиная с точки входа. Больше не нужно каждый раз обращаться к старшим разработчикам.
Способ извлечения графа потоков запросов и ответов следующий. После завершения анализа графа знаний откройте пользовательский интерфейс панели управления. Выберите функцию экскурсии в меню или введите команду напрямую. Последовательно прослеживайте узлы, начиная с точки входа API и переходя к бэкенд-сервисам и базе данных, чтобы визуализировать ход выполнения.
При работе с легаси-кодом необходимо заранее рассчитывать побочные эффекты. После изменения кода и перед коммитом запустите команду, которая преобразует измененные файлы в узлы графа. Выполняется комплексный расчет связанных узлов. Заранее оцените влияние изменений на существующие API или пакетные задания.
Проанализированные ресурсы можно выгрузить в формате Markdown и зарегистрировать во внутренней вики. Закройте технический долг, закоммитив файл графа знаний, созданный после завершения сканирования. Если файл большой, управляйте им с помощью Git LFS. Настройте отслеживание больших файлов, отправьте конфигурационный файл в репозиторий и используйте его в качестве руководства по адаптации (онбордингу). Настроив запуск инкрементального конвейера при каждом коммите, вам больше не придется каждый раз запускать полное сканирование для поддержания актуального состояния архитектуры.