Единица 3 / 12

Чтение кода, объяснение и совместимость с новой базой кода

Прибыль:

  • Возможность отображать базу внешнего кода слой за слоем с помощью ИИ и сквозное отслеживание функции.
  • Способность шаг за шагом объяснять сложные функции и отслеживать поток данных.
  • Возможность рассматривать описание ИИ как гипотезу и проверять критические утверждения в коде.

Разработчики читают код, а не пишут код. Когда вы начинаете новую работу, берете на себя обслуживание, оставленное кем-то другим, или вносите вклад в библиотеку с открытым исходным кодом, ваша первая задача: «Что здесь происходит?» это найти ответ на вопрос. ИИ может сократить эту задачу открытия до часов, а не недель, но только при использовании правильных вопросов и рефлекса проверки.

В этом модуле мы учимся использовать ИИ как «руководство по коду»: отображать базу внешнего кода, переводить сложную функцию на простой язык, отслеживать поток данных и выяснять, как использовать библиотеку. Золотое правило здесь заключается в том, что объяснение ИИ — это гипотеза; вы проверяете это с помощью самого кода.

Почему аннотация кода эффективна, но опасна?

LLM очень хорошо читает фрагмент кода и переводит его на человеческий язык, например: «эта функция обновляет токен сеанса пользователя»; потому что он усвоил закономерности из миллионов подобных примеров. Это значительно экономит время, особенно при использовании длинных и вложенных функций.

Вот в чем риск: модель иногда говорит о том, что делает код, а не о том, что он делает на самом деле. Если имя переменной — isAdmin, но логика внутри перевернута, модель может просмотреть имя и извлечь неправильную сводку. Поэтому, прежде чем сделать заявление основой для ваших критических решений, вам следует визуально проверить предполагаемое поведение по соответствующим линиям. Описание приведет вас в нужное место; Последнее слово остается за кодексом.

Внимание: не считайте резюме ИИ «этот код делает X» единственным доказательством при принятии решения, касающегося безопасности или денежного потока. Резюме представляет собой карту, показывающую, где искать; Вы даете подтверждение в коде.

Шаги по сопоставлению базы внешнего кода

  1. Начните с верхнего уровня. Для начала ознакомьтесь со структурой папок и точками входа (главная, запуск приложений, домашний роутер). Спросите ИИ: «Какие уровни приложения основаны на этой структуре каталогов?» просить.
  2. Отслеживайте объект от начала до конца. «Какие файлы активируются и в каком порядке при входе пользователя?» — просмотр одного потока более поучителен, чем чтение всей архитектуры.
  3. Локализовать термины. Запросите у ИИ концепции, специфичные для проекта («арендатор», «регистр», «исполнитель заданий») и найдите их эквиваленты в коде.
  4. Вы упростили сложную функцию. Объясните длинную функцию шаг за шагом, а затем отметьте эти шаги в коде.
  5. Проверять. Внесите небольшое изменение и запустите тесты, чтобы проверить свое понимание; Тест сразу подскажет, если ваше понимание неверно.

Три мини-кейса

Случай 1. Унаследованная услуга была сокращена с 2 дней до 3 часов. Разработчик взял на себя сервис выверки платежей на 4000 строк у уходящего коллеги. Если бы ИИ суммировал модули и отслеживал поток платежей от начала до конца; Он лично проверил две критически важные функции в коде. Открытие, которое при классическом «слепом чтении» заняло 2 дня, было завершено примерно за 3 часа с помощью проверенного метода искусственного интеллекта.

Случай 2. Ловушка с вводящим в заблуждение именем. Одна функция называлась validateAndSave, но в сводке ИИ говорилось: «Сначала проверяет, затем сохраняет». Когда разработчик зашёл в код, он увидел, что сохранение делалось до проверки, а проверка только писала в лог. Это была фактическая основная причина сообщения об ошибке в производстве. Если бы в коде не было проверки, ложное резюме скрыло бы ошибку.

Случай 3 — Ускорено обучение новым библиотекам. Команда собиралась интегрировать незнакомую им библиотеку очередей сообщений. Я спросил у AI "как настроить потребителя в этой библиотеке, как повторить попытку в случае ошибки?" Они спросили и предоставили образец; Затем они сравнили пример с официальным документом и исправили разницу (API старой версии). Время обучения сократилось вдвое.

Четыре копируемых шаблона

Сопоставление кодовой базы:

Ниже приведен список каталогов/файлов проекта. 1) Извлеките слои приложения (ввод, бизнес-логика, доступ к данным и т. д.). 2) Перечислите возможный путь к файлу запроса «{{example property}}». 3) Отметьте области, в которых вы не уверены, как «необходимые для проверки». {{список_каталогов}}

Описание функции (пошагово):

Разделите эту функцию на группы строк и объясните простым турецким языком, что делает каждая группа. Наконец: перечислите ввод, вывод, побочные эффекты (база данных/файл/сеть) и возможные крайние случаи. Соберите поведение, в отношении которого вы не уверены, под ОТДЕЛЬНЫМ заголовком «необходимо проверить».{{function}}

Отслеживание потока данных:

Откуда берется значение «{{переменная/данные}}», какие преобразования оно проходит, где записывается? Создайте цепочку потоков, используя имена функций в коде. Связанный код: {{code_segments}}

Научимся пользоваться библиотекой:

Я хочу создать {{ Цель}} с помощью {{библиотеки}}. Приведите минимальный рабочий пример. Убедитесь, что каждая используемая вами функция действительно принадлежит этой библиотеке; если вы не уверены, отметьте «проверить на основании официальной документации». Версия: {{версия}}.

Слабая подсказка / Сильная подсказка

Слабое: «Объясните этот код». (Что вам интересно? На каком уровне? Что вы будете делать?)
Стронг: «Я беру на себя эту функцию и изменю в ней логику повторов. Объясните функцию шаг за шагом, особенно в случае ошибки, четко укажите, сколько раз и с каким интервалом вы повторяете попытки; пометьте части, в которых вы не уверены, как «необходимо проверить». [код]»

Сильная версия передает ваше намерение (я изменю логику повтора) и фокус; так что объяснение является не общим резюме, а полезным руководством.

Квест

ИИ работает хорошо

Обязательно проверьте

Общее резюме архитектуры

Удалить слои

Фактическая последовательность звонков

сложная функция

Пошаговое объяснение

Обратная логика, побочные эффекты

поток данных

Составление цепочки

Условные переходы, пропущенные пути

Использование библиотеки

Генерация выборки

Подлинность и версия API

Нет замены человеческому пониманию

Описание ИИ не заменяет обучение; это ускоряет его. По-настоящему «владеть» кодовой базой означает построить ее мысленную модель, и эта модель подходит только тогда, когда вы читаете код, вносите небольшие изменения и видите результат. Используйте ИИ так, как наставник сказал бы вам: «Посмотрите сюда, это важно», — но читайте там, где вы видите это своими глазами.

Совет: если вы думаете, что поняли функцию, попросите ИИ «обобщить ее в одном предложении»; Затем сравните его со своим собственным предложением. Если два предложения противоречат друг другу, значит, вы или модель что-то упустили — и вы это исправляете в коде.

Распространенные ошибки

  • Рассматривайте резюме как доказательство. Принять решение по коду без проверки описания — значит попасть в ловушку вводящих в заблуждение названий.
  • Приклеиваем слишком большие детали. Объединение 2000 строк одновременно дает поверхностные и подверженные ошибкам результаты; разделить на части.
  • Не указывая цели. Если вы не говорите «что вы будете делать», описание остается общим и не фокусируется на вашем бизнесе.
  • Не проверка экземпляра библиотеки. Модель может вызывать устаревший или несуществующий API; Сравните с официальным документом.
  • Отдать все знания. Работая только с тезисами, даже не читая кодовую базу, вы беспомощны при первой же реальной ошибке.

В заключение

ИИ — мощный помощник в изучении базы стороннего кода: отображает архитектуру, упрощает сложные функции, отслеживает поток данных, обучает использованию библиотек. Но каждое объяснение — это гипотеза. Четко изложите свою точку зрения, разбейте ее и проверьте в коде и тестировании каждое критическое утверждение, которое, как говорит (и не делает) модель, «должно быть проверено». Гид — ИИ; Вы тот, кто читает карту и несете ответственность.

Задача приложения

Выберите модуль, с которым вы незнакомы или который вы только что унаследовали. Сначала извлеките слои и путь к файлу объекта с помощью шаблона «Сопоставление базы кода». Затем шаг за шагом объясните наиболее важную функцию этой функции с помощью шаблона «объяснение функции». Наконец, лично проверьте в коде как минимум два утверждения, которые модель пометила как «необходимо проверить», и отметьте, истинны они или ложны.

контрольный список

  • [ ] Я рассматриваю утверждение ИИ как гипотезу и проверяю ее в коде.
  • [ ] Объясняя код, я добавляю в подсказку свою цель и фокус.
  • [ ] Я суммирую большую базу кода, разделив ее на части.
  • [ ] Я проверяю критические заявления в Интернете на предмет вводящих в заблуждение имен и ловушек обратной логики.
  • [ ] Я сравниваю примеры библиотеки с официальным документом и версией.
  • [ ] Я использую ИИ как средство ускорения обучения, а не как замену обучения.