Презентации лучше смотреть с десктопа
Слайды рассчитаны на широкий экран, клавиатуру и формат 16:9. Откройте эту страницу на ноутбуке или компьютере.
Вернуться на сайтAI-кодинг:
старт проекта
и базовые режимы работы
Как перестать ждать магии от модели и начать строить повторяемый процесс
Эдгар Сипки//Founder EasyP && SIPKI Tech//7 мая
Сегодня не будет
- обзора фич IDE и плагинов
- списка «топ-10 промптов»
- хайпа про «AI заменит разработчиков»
- демки ради демки
Вместо этого — рабочая модель мышления и процесс, который можно повторить завтра.
Эдгар Сипки
- В Go 8 лет
- Евангелист gRPC и OpenSource
- Консультирую по корпоративному обучению
- Помогаю стартапам с ранним выходом на рынок
Реальный опыт, не реклама
- Работаю с AI-инструментами в продакшен-задачах каждый день
- Прошёл фазу «волшебной таблетки» и фазу разочарования
- Видел, где AI экономит часы, и где — съедает дни
- Курс — не про инструменты, а про процесс
ai-кодинг ускоряет не тех,
кто больше просит код,
а тех, кто лучше управляет процессом.
// постановка задачи + выбор режима + контроль результата
Что курс не делает
- обзор фич IDE
- промпт-инжиниринг как магию
- хайп вокруг моделей
- разовые удачные сессии
- инженерный процесс работы с AI
- операционную модель Ask / Plan / Agent
- повторяемый результат
- артефакты, живущие рядом с кодом
Куда мы идём за 5 недель
- 01 · 7 маяСтарт проекта и базовые режимы (сегодня)
- 1.5Бонус: обзор IDE — 12 мая
- 02Внешние интеграции через MCP
- 03Переиспользуемые инструкции: Skills, Rules, Memory
- 04Spec-driven разработка (SDD)
- 05Безопасный AI-процесс
Что останется после курса
project/ ├── src/ ├── .ai/ │ ├── skills/ # переиспользуемые навыки │ ├── workflows/ # пайплайны работы │ ├── rules/ # правила и ограничения │ └── context.md # ключевой контекст ├── specs/ # спецификации фич ├── docs/ │ └── ai-development.md └── README.md
Не воспоминание о курсе, а инструмент, с которым можно работать дальше.
Карта лекции
- 01 · Почему AI часто не ускоряет
- 02 · Рамка курса и финальный артефакт
- 03 · Сквозной проект и нарезка задачи
- 04 · Ask / Plan / Agent — ядро процесса
- 05 · Tab и inline-генерация
- 06 · Типичные провалы первого дня
- 07 · Минимум безопасности
- 08 · Домашнее задание
- 09 · Q&A
ПОЧЕМУ AI
ЧАСТО НЕ
УСКОРЯЕТ
Карта лекции
- 01 · Почему AI часто не ускоряет
- 02 · Рамка курса и финальный артефакт
- 03 · Сквозной проект и нарезка задачи
- 04 · Ask / Plan / Agent — ядро процесса
- 05 · Tab и inline-генерация
- 06 · Типичные провалы первого дня
- 07 · Минимум безопасности
- 08 · Домашнее задание
- 09 · Q&A
Обещание маркетинга
ускорение разработки
разработчиков уже используют AI
продуктивность инженера
Цифры из вендорской рекламы. Звучит вдохновляюще.
Реальность первого месяца
не доверяют результатам AI
- код «вроде работает», но непонятен
- результат случайный
- нужно перепроверять каждую строку
- непонятно, как встроить в процесс
METR: кто и как
- Опытные open-source разработчики
- Реальные задачи в их собственных репозиториях
- Сравнение: с AI-инструментами и без
- Замеряли: фактическое время + субъективное ощущение
Одно из самых отрезвляющих исследований в индустрии.
Результат, который
ломает интуицию
фактическое замедление
субъективное ощущение ускорения
Почему такой разрыв
- Удобство ≠ скорость. Меньше моторного труда воспринимается как ускорение.
- Скрытое время. Перепроверка, отладка, переписывание — не считаются.
- Контекст-свитчинг. Чтение чужого diff дороже, чем кажется.
- Выигрышные моменты ярче. Помним удачные сессии, забываем провалы.
Где AI реально помогает
Scaffold и boilerplate
Шаблоны, типовые конфиги, повторяющиеся структуры.
POC и эксперименты
Когда цена ошибки минимальна, а скорость идеи важнее качества.
Незнакомый стек
Изучение нового API, синтаксиса, паттернов с проводником.
Локальные правки
Тесты, рефакторинг участка, преобразования с малым радиусом.
Где AI вреден
- Vibe-coding: «давай попробуем» без плана и критериев
- Принятие кода без понимания, что он делает
- 2.74× больше уязвимостей в AI-сгенерированном коде
- Сложная бизнес-логика с нюансами домена
- Архитектурные решения без явных границ
Проблема не в инструменте.
Проблема — в процессе.
С чем приходите вы
Контекст теряется
Модель забывает, что мы делали 10 минут назад.
Большой проект
На малом репо работает, на большом разваливается.
Нет спецификаций
«Сделай хорошо» → получаешь что-то.
Нестабильность
Сегодня — работает, завтра — другое поведение.
РАМКА
КУРСА
Карта лекции
- 01 · Почему AI часто не ускоряет
- 02 · Рамка курса и финальный артефакт
- 03 · Сквозной проект и нарезка задачи
- 04 · Ask / Plan / Agent — ядро процесса
- 05 · Tab и inline-генерация
- 06 · Типичные провалы первого дня
- 07 · Минимум безопасности
- 08 · Домашнее задание
- 09 · Q&A
Линейка зрелости процесса
- →разовая сессия с моделью
- →рабочий проект (сегодня)
- →интеграции с внешним миром
- →переиспользуемые инструкции
- →spec-driven пайплайн
- →безопасный командный процесс
Инструменты и среда
Базовая операционная модель: как формулировать задачу, выбирать режим, контролировать результат. Сегодня закладываем этот слой.
Без этого слоя следующие — бесполезны.
Интеграции через MCP
AI начинает работать с внешним миром: базы, API, файловые системы, инструменты разработчика. Не «модель отвечает», а «модель действует».
Переиспользуемые инструкции
- Skills — навыки, которые модель применяет повторно
- Rules — границы, которые нельзя нарушать
- Memory — контекст, переживающий сессию
Spec-driven разработка
Задача → спецификация → код. Не «попроси и надейся», а воспроизводимый пайплайн от описания фичи до её реализации с проверкой.
Безопасность
Использовать AI без наивности: утечки данных, чужой код в репозитории, ревью AI-изменений, границы доверия в команде.
Дерево проекта в конце курса
project/ ├── src/ # код проекта ├── .ai/ │ ├── skills/ # навыки (созвон 03) │ ├── workflows/ # пайплайны (созвон 02) │ ├── rules/ # правила (созвон 03) │ ├── context.md # ключевой контекст (сегодня) │ ├── tasks/ # формулировки задач (сегодня) │ ├── notes/ # заметки сессий (сегодня) │ └── checklists/ # чек-листы (сегодня) ├── specs/ # спецификации (созвон 04) ├── docs/ │ └── ai-development.md # как мы работаем └── README.md
Не воспоминание о курсе,
а инструмент, с которым
можно работать дальше.
СКВОЗНОЙ
ПРОЕКТ
Карта лекции
- 01 · Почему AI часто не ускоряет
- 02 · Рамка курса и финальный артефакт
- 03 · Сквозной проект и нарезка задачи
- 04 · Ask / Plan / Agent — ядро процесса
- 05 · Tab и inline-генерация
- 06 · Типичные провалы первого дня
- 07 · Минимум безопасности
- 08 · Домашнее задание
- 09 · Q&A
Почему один сквозной проект
- Без общего объекта нет общей практики
- На разных задачах нельзя сравнивать подходы
- Один проект растёт вместе с курсом
- К нему естественно достраиваются MCP, Skills, SDD, безопасность
mini-SaaS для задач и заметок
- Backend API (готовый/полу-готовый)
- 4–5 сущностей: задачи, пользователи, теги
- Простой UI-слой
- Понятный домен — без бизнес-эзотерики
- Сегодня: один вертикальный срез
- Лекция 02: интеграции через MCP
- Лекция 03: переиспользуемые Skills
- Лекция 04: spec-driven фича
- Лекция 05: безопасный ревью-процесс
Архитектура
┌──────────────┐ HTTP/JSON ┌──────────────┐
│ UI слой │ ◄───────────────► │ Backend API │
│ (React/...) │ │ (REST/Go) │
└──────────────┘ └──────┬───────┘
│
┌──────▼───────┐
│ SQLite │
└──────────────┘Минимум магии. Запускается локально за 30 секунд.
Что делаем сегодня
- Один экран: список задач с фильтрами
- Одно действие: создание новой задачи
- Один endpoint: `POST /tasks`
- Один клиентский слой: вызов API из UI
Не «сделай весь сервис», а вертикальный срез.
Правильно резать задачу — навык №1
- Срез проходит сквозь все слои: UI → API → БД
- Видны и польза, и ограничения AI-подхода
- Можно реалистично проверить результат
- Размер влезает в одну сессию работы
Антипример: «сделай весь сервис»
- «Сделай SaaS для задач»
- «Реализуй CRUD по сущностям»
- «Добавь все фичи из ТЗ»
- 500 строк сгенерированного кода
- Половина не запускается
- Стек выбран случайно
- Радиус правок = весь проект
Правильный формат задачи
ЧТО: добавить endpoint POST /tasks
ГДЕ: внутри src/api/handlers/tasks.go
ОГРАНИЧЕНИЯ: использовать существующий TaskRepository
не трогать routes/, не менять схему БД
ГОТОВО когда: тест POST /tasks возвращает 201
и созданная задача видна в GET /tasksЧто · Где · Ограничения · Критерий готовности.
Готов ли я начать
- Среда — IDE открыта, AI-инструмент включён
- Проект — клонирован и запускается локально
- Контекст — модель видит нужные файлы
- Задача — сформулирована в формате что/где/ограничения/критерий
- Границы — понятно, чего нельзя трогать
Что сейчас делаем у себя
- Клонируем учебный репозиторий
- Запускаем backend локально (`make run` или `docker compose up`)
- Проверяем, что AI-инструмент видит проект
- Создаём папку `.ai/` в корне
- Пишем первый файл `.ai/context.md` — 10 строк про проект
Структура папки .ai/
.ai/ ├── context.md # ключевой контекст проекта ├── tasks/ # формулировки задач ├── notes/ # заметки сессий └── checklists/ # чек-листы для повторяемых действий
Отделить случайный чат
от материалов проекта,
которые живут рядом с кодом.
ASK
PLAN
AGENT
Карта лекции
- 01 · Почему AI часто не ускоряет
- 02 · Рамка курса и финальный артефакт
- 03 · Сквозной проект и нарезка задачи
- 04 · Ask / Plan / Agent — ядро процесса
- 05 · Tab и inline-генерация
- 06 · Типичные провалы первого дня
- 07 · Минимум безопасности
- 08 · Домашнее задание
- 09 · Q&A
Три режима — три разных контракта
Думать
Декомпозиция, уточнения, поиск слепых зон. Кода ещё нет.
Спроектировать
План шагов, файлов, изменений до выполнения. Без побочных эффектов.
Сделать
Серия действий в проекте. Файлы, команды, проверки.
Три роли в стройке
Архитектор
ASK. Что вообще строим, какие риски.
Прораб
PLAN. Какой порядок работ, какие материалы.
Бригада
AGENT. Кто фактически делает работу.
Бригаду без архитектора и прораба — не зовут.
ask — режим мышления, не вопросов
ASK — это не «спросить у бота», а способ думать в паре с моделью. Кода нет, цена ошибки минимальна.
Когда ASK уместен
- Декомпозиция большой задачи на куски
- Поиск слепых зон в собственном понимании
- Уточняющие вопросы до того, как писать код
- Сравнение нескольких подходов
- Проверка плана до генерации
Где ASK ломается
- Человек ждёт сразу код, а не размышление
- Слишком широкий вопрос: «как мне сделать SaaS»
- Результат остаётся в чате, а не в репо
- Не просим у модели уточняющих вопросов
Правильный вход в задачу
Сделай мне endpoint для создания задачи
Я хочу добавить POST /tasks. Прежде чем писать код: 1. задай 3 уточняющих вопроса 2. предложи декомпозицию 3. укажи риски Контекст: src/api/handlers/
plan — проект до выполнения
PLAN — режим, в котором модель проектирует последовательность шагов, файлов и изменений, но ничего не выполняет. Это «черновик действий», который человек читает, правит и только потом отдаёт в работу.
Когда PLAN уместен
- Многосоставная задача с несколькими файлами
- Когда нужно увидеть весь diff до того, как он применится
- Когда хочется проверить, что модель правильно поняла задачу
- Перед запуском Agent на серьёзную работу
- Когда цена ошибки выше, чем стоимость лишней итерации планирования
Где PLAN ломается
- План не читают — сразу нажимают «выполнить»
- Нет границ: модель планирует на 20 файлов вперёд
- План формальный: «изменим x, изменим y» без сути
- План пишут, но критерии готовности не проверяют
Правильный вход в PLAN
Цель: добавить POST /tasks. Составь план изменений: - список файлов, которые тронем - список файлов, которые НЕ тронем - порядок шагов - критерий готовности (тест/команда) Не выполняй пока. Я сначала посмотрю.
PLAN — это контракт на радиус и порядок работ.
agent — оркестрация действий
AGENT — это не «улучшенный PLAN». Это режим, в котором модель читает проект, выполняет серию шагов, запускает команды, проверяет результат. Максимум силы и максимум риска.
Когда AGENT уместен
- Задача уже хорошо очерчена (ASK + PLAN пройдены)
- Есть понятный контекст проекта
- Есть критерии success/fail (тест, команда, проверка)
- Допустима серия действий, а не одна правка
- Готовы откатить целиком, если пошло не туда
Где AGENT ломается
- Размытая задача: «сделай как лучше»
- Слишком широкий доступ к проекту
- Нет checkpoints — узнаёшь о проблеме на 15-м шаге
- Человек не понимает, что агент уже успел сделать
- Тесты не настроены — критерия готовности нет
Правильный вход в AGENT
Реализуй план из .ai/tasks/post-tasks.md. Ограничения: - работай только в src/api/handlers/ - не меняй схему БД - после каждого файла — пауза для проверки Готово когда: - go test ./... зелёный - POST /tasks возвращает 201
Явные ограничения, явные критерии, явные checkpoints.
Сравнение трёх режимов
| ASK | PLAN | AGENT | |
|---|---|---|---|
| автономия | нулевая | нулевая | высокая |
| побочные эффекты | нет | нет | есть (файлы, команды) |
| цена ошибки | минимальная | низкая | высокая |
| нужен контекст | минимум | средне | максимум |
| нужны критерии | нет | желательно | обязательно |
Один кейс — три прохода
Возьмём ОДНУ задачу — добавить эндпоинт `POST /tasks` — и пройдём её три раза:
- ASK — понять задачу, задать вопросы, получить декомпозицию
- PLAN — увидеть точный план изменений до выполнения
- AGENT — выполнить план под контролем
DEMO: ASK
Входим в задачу через план, просим уточняющие вопросы.
На что обращаем внимание
- Что модель поняла из контекста
- Какие задаёт уточняющие вопросы
- Что она не видит (и не скажет, что не видит)
- Какие альтернативы предлагает
- Где её декомпозиция расходится с нашим пониманием
DEMO: PLAN
Берём результат ASK, превращаем в чёткий план изменений.
На что обращаем внимание
- Какие файлы план собирается тронуть
- Какие файлы НЕ должны попасть в радиус
- Есть ли явные критерии готовности
- Можно ли план переписать руками — это и есть фиксация контракта
- Что план не учёл (всегда что-то есть)
DEMO: AGENT
Запускаем план под контролем. Смотрим, где нужны checkpoints.
На что обращаем внимание
- Где остановить, чтобы проверить промежуточный результат
- Что агент сделал «по пути», без явного запроса
- Запустил ли тесты сам или это надо потребовать
- Как выглядит итоговый diff целиком
- Что могло бы пойти не так без нашего контроля
Что увидели
- Одна задача в трёх режимах — три разных результата
- ASK ловит непонимание дёшево
- PLAN превращает мысль в контракт
- AGENT работает только когда первые два пройдены
- Перепрыгивать прямо в AGENT — самый дорогой способ
Как выбирать режим
задача ясна?
├── нет ──────────────────────► ASK
└── да
│
нужно увидеть весь радиус?
├── да ─────────────────► PLAN → AGENT
└── нет (1–2 файла)
│
задача многосоставна?
├── да ─────────────► PLAN → AGENT
└── нет ────────────► AGENT (с осторожностью)Не ясно =
рано идти в AGENT.
TAB И
INLINE
Карта лекции
- 01 · Почему AI часто не ускоряет
- 02 · Рамка курса и финальный артефакт
- 03 · Сквозной проект и нарезка задачи
- 04 · Ask / Plan / Agent — ядро процесса
- 05 · Tab и inline-генерация
- 06 · Типичные провалы первого дня
- 07 · Минимум безопасности
- 08 · Домашнее задание
- 09 · Q&A
Что это и где живёт
- Tab-autocomplete — подсказка прямо в коде, принимается одной клавишей
- Inline generation — короткая команда «допиши тут», результат вставляется в файл
- Не имеет своего «окна разговора» — живёт внутри редактора
- Контекст ограничен соседними строками и файлом
Где tab реально помогает
Boilerplate
Конструкторы, геттеры, типовые структуры.
Типовые тесты
Когда есть один пример — остальное по шаблону.
Очевидные сигнатуры
Импорты, вызовы из той же библиотеки рядом.
Повторяемые паттерны
Когда в проекте уже есть 5 похожих мест.
Где tab опасен
- Незнакомый код — глаз не увидит подвох
- Безопасность — модель додумает «правдоподобную» проверку
- Бизнес-логика с нюансами — упростит до неправильного
- Большой diff «по табу» — несколько правок подряд без чтения
- Чужая кодовая база — берётся стиль из обучения, не из проекта
Tab ускоряет моторику,
а не решения.
Удерживайте эту разницу руками.
ТИПИЧНЫЕ
ПРОВАЛЫ
Карта лекции
- 01 · Почему AI часто не ускоряет
- 02 · Рамка курса и финальный артефакт
- 03 · Сквозной проект и нарезка задачи
- 04 · Ask / Plan / Agent — ядро процесса
- 05 · Tab и inline-генерация
- 06 · Типичные провалы первого дня
- 07 · Минимум безопасности
- 08 · Домашнее задание
- 09 · Q&A
провал 1. бесконечный контекст
«Закину все файлы, чтобы модель точно поняла». Чем больше бессистемного контекста — тем хуже модель различает главное.
Как это выглядит изнутри
- «На всякий случай» добавляю ещё один файл
- Потом ещё один. И ещё.
- Модель отвечает всё более общими словами
- Конкретика теряется в шуме
- Лечение: явный список «что в контексте» + причины
провал 2. «починил одно — сломал другое»
Радиус правок не задан. Модель оптимизирует то, что видит, а не то, что просили. Каскад правок не виден в одном diff целиком.
Как избежать
- Явно перечислить файлы и функции, которые можно трогать
- Запретить «улучшения по пути» в инструкции
- Запускать тесты после каждого этапа
- Если diff больше ожидаемого — откатывать целиком
провал 3. агент ушёл не туда
Модель делает не откровенную ерунду, а что-то «в целом логичное» — но не вашу задачу. Самый коварный провал, потому что результат выглядит правдоподобно.
Как избежать
- PLAN до старта: фиксируем понимание задачи письменно
- Промежуточный review плана перед AGENT
- Checkpoint до каждого этапа: «продолжить или остановиться»
- Критерии готовности заданы как тест, а не как «выглядит хорошо»
провал 4. иллюзия качества
Принят код, который человек не понимает. «Тесты зелёные, наверное, ок». Это не ускорение, а отложенный инцидент.
Почему это особенно опасно
- Команда: код становится «ничьим»
- Безопасность: незаметные дыры в проверках
- Сопровождение: править будет тот, кто и не писал
- Долг: чем дальше — тем дороже разобраться
- Правило: если не понимаешь diff — не мержи
У каждой проблемы — следующий слой
Skills / Rules
созвон 03
MCP / Workflows
созвон 02
SDD
созвон 04
Безопасность
созвон 05
МИНИМУМ
БЕЗОПАСНОСТИ
До отдельной лекции — базовая гигиена
Полноценный блок безопасности — на пятой лекции. Но отпускать в практику без минимальных правил нельзя. Есть три вещи, которые просто нельзя делать уже сегодня.
Три красные линии
Никаких секретов
`.env`, ключи, токены, пароли — никогда в чат и контекст.
Никаких клиентских данных
ПД, бизнес-данные клиентов, внутренние документы — нет.
Никаких слепых разрешений
Не запускать AGENT всё подряд, не понимая, что он делает.
Кейс Samsung — три утечки за 20 дней
- Инженер вставил исходный код в ChatGPT, чтобы дебажить
- Другой — конфиденциальные тесты железа
- Третий — стенограмму внутреннего совещания
- Через 20 дней — корпоративный запрет на публичные LLM
- Главный урок: «никто не собирался утекать», но утекло
Если данные нельзя
безопасно показать на сцене,
их нельзя отправлять
во внешний AI-инструмент.
ДОМАШНЕЕ
ЗАДАНИЕ
Карта лекции
- 01 · Почему AI часто не ускоряет
- 02 · Рамка курса и финальный артефакт
- 03 · Сквозной проект и нарезка задачи
- 04 · Ask / Plan / Agent — ядро процесса
- 05 · Tab и inline-генерация
- 06 · Типичные провалы первого дня
- 07 · Минимум безопасности
- 08 · Домашнее задание
- 09 · Q&A
ДЗ 1: один цикл осознанно
- Сформулируйте задачу в формате что/где/ограничения/критерий
- Получите план через ASK — с уточняющими вопросами
- Уточните и зафиксируйте план
- Сделайте PLAN-проход — точный список изменений
- Реализуйте через AGENT (или вручную)
- Проверьте результат по критериям
- Опишите, что сработало, а что нет
Не впечатлить кодом.
А один раз осознанно
пройти правильный цикл.
Что нужно сдать
- Краткое описание задачи (что/где/ограничения/критерий)
- Исходный запрос или структура взаимодействия с моделью
- План до кодинга (из ASK / PLAN)
- Итоговый результат (diff или ссылка на коммит)
- Как проверялось качество
- Что сломалось или удивило
Критерии оценки
- Был ли план до генерации кода?
- Была ли декомпозиция?
- Был ли правильно выбран режим (ASK / PLAN / AGENT)?
- Были ли явные ограничения и контекст?
- Понимаете ли вы, что именно получилось?
- Была ли проверка результата по критериям?
Оцениваем процесс, а не красоту демки.
Дедлайн и куда сдавать
- Дедлайн: до начала следующей лекции
- Куда: Telegram-чат курса, тред #дз-01
- Формат: markdown-файл или ссылка на репозиторий
- Размер: компактно, важна структура процесса
Q&A
Как пройдёт Q&A
Заранее собранные вопросы
Закрываем типовые тревоги группы.
Живые вопросы
Открытое обсуждение из чата и зала.
Вопрос 1.
Как не терять контекст
на большом проекте?
Из частых болей опроса.
Вопрос 2.
Как сделать процесс
повторяемым, а не случайным?
Вопрос 3.
Когда можно использовать
внешний AI в компании?
Ваши вопросы.
Чат курса и зал.
Спасибо.
До следующей лекции.
Лекция 02 — внешние интеграции через MCP
Эдгар Сипки//@zergslaw