Тренажёр «Codex: продукты и практика»: задания с проверкой
Ремесло разработки с агентом по видам работы: войти в незнакомый проект, сделать новую возможность, найти причину поломки, написать тесты, отрефакторить без изменения поведения, пройти ревью, сделать миграцию данных, выложить и откатить. Каждый урок — отдельный вид работы и то, что в нём меняется, когда рядом агент.
Как тренироваться
Полный тренажёр повторяет темы после сданной домашней работы: выбирает задания по результатам, показывает ошибки и помогает закрепить материал. Для сохранения результатов нужен аккаунт.
Начните с открытого урока
В открытом уроке есть теория и задания. Практику с редактором или схемой удобнее проходить на странице урока.
Первый урок: Помощник и продукт: что меняется, когда код уходит к людямЧто можно повторить
- Помощник и продукт: что меняется, когда код уходит к людям
Различать работу «для себя» и работу «для людей», знать четыре вещи, которые добавляются во второй, понимать, какие части работы агент не ускоряет, и представлять карту курса по видам работы.
- Вход в незнакомый проект
Отличать чтение файлов от понимания устройства, задавать семь вопросов входа, знать, что поручать агенту и где он уверенно врёт, и проверять карту мелкой правкой сквозь весь путь.
- Новая возможность: от постановки до готовности
Формулировать задачу, а не решение, записывать «чего не делаем» и признак готовности до работы, перебирать края списком и вести работу тонкими срезами, отдавая агенту то, что после постановки.
- Починка: найти причину, а не признак
Воспроизводить поломку четырьмя вопросами и сокращать воспроизведение, находить место делением пополам, отличать признак от причины и собирать починку в порядке «красный тест — минимальная правка — проверка руками — запись причины».
- Тесты: что проверять и чем
Понимать, чем тест окупается теперь, отбирать проверяемое по цене ошибки, а не по проценту покрытия, различать три вида проверок по цене прогона и не допускать тестов, чьи ожидания списаны с кода.
- Рефакторинг: менять, не ломая
Отделять переделку от правки поведения, решать по приходящим задачам, стоит ли переделывать, доказывать неизменность поведения одним из четырёх способов и вести работу мелкими шагами с прогоном после каждого.
- Ревью: чужое и своё
Отличать то, что ловит машина, от того, что видит только человек, читать правку снаружи внутрь по списку вопросов, знать типовые слабости правки от агента и держать размер правки в пределах, при которых чтение остаётся чтением.
- Чужой код и чужие решения
Оставлять минимальный след в чужом коде, различать три случая странного решения и не убирать странность без выясненной причины, работать рядом с наследием вместо переписывания и заранее ограничивать агента местными правилами.
- Рутина: что автоматизировать
Выбирать, что автоматизировать, по цене забытого шага, а не по скуке, видеть полный расход на скрипт, расставлять проверки по трём заслонам и обращаться со скриптом как с кодом, а не как с заметкой.
- Данные и миграции
Понимать, чем данные отличаются от кода, вести миграцию по шести шагам с подсчётом до и сверкой после, менять структуру переходом в два шага и не принимать миграцию от агента по виду.
- Совместимость: не сломать тех, кто уже пользуется
Находить всех зависящих, включая невидимых из кода, отличать ломающие изменения от совместимых, менять добавлением с объявленным сроком жизни старого и закрывать слепую зону агента, который не видит внешних вызывающих.
- Секреты, доступы и зависимости
Держать секреты вне кода и знать, что удаление строки их не отзывает, выдавать минимально нужные права и понимать, что агент работает вашими, взвешивать зависимости до подключения и не путать прочитанное содержимое с поручением.
- Выкладка
Выкладывать чаще и меньшими кусками, отделять выкладку от выпуска, держать порядок из семи шагов скриптом, готовить план отката до выкладки и не поручать новое в минуты наблюдения.
- После выкладки: наблюдение и разбор
Различать три источника знания о поломке и делать обращения последним из них, смотреть на четыре числа вместо сорока графиков, вести разбор по причинам, а не по виноватым, и поручать агенту факты, оставляя выводы себе.
- В команде: ветки, конфликты, договорённости
Держать ветки короткими и сливать чаще, разрешать конфликты пониманием обеих сторон, переводить важные договорённости из головы в запись и в проверку и видеть, что меняется, когда с агентом работают все.
- Маленький продукт целиком
Провести маленький продукт от постановки до второго месяца жизни, применив все пятнадцать видов работы по порядку, и свести курс к трём правилам, из которых выходит всё остальное.