Внесение изменений — Тёмная тема — Презентация
Продолжительность: ~8 минут Цель: Объяснить, как Claude редактирует файлы (инструменты Edit vs Write), как работает интеграция с git и как итеративное уточнение позволяет доводить изменения до совершенства в разговорном режиме.
Вступительный крючок (1 мин)
Скажите что-то вроде:
“Вы когда-нибудь смотрели, как кто-то делает Find and Replace по всей кодовой базе, и думали ‘это плохо кончится’? Да. Массовый find-and-replace — это бензопила. Инструмент Edit у Claude — это скальпель.
В прошлом блоке мы спланировали тёмную тему. У нас есть ADR, есть диаграммы, есть чёткий список файлов для изменения. Теперь выполняем — и вы увидите то, что фундаментально изменило мой рабочий процесс. Вы описываете, что хотите, на обычном языке, а Claude вносит точные правки в нужные файлы, ничего не ломая вокруг них.”
Ключевой тезис: Этот блок — там, где план встречается с реальностью. Студенты увидят первое многофайловое изменение кода, полностью управляемое через разговор.
Как Claude редактирует файлы (3 мин)
Инструмент Edit — Хирургические замены
- Основной способ Claude модифицировать существующие файлы
- Работает через указание точной строки для поиска и точной строки для замены
- Думайте об этом как о
sed, но Claude понимает контекст того, что заменяет — он не занимается слепым сопоставлением паттернов
Пример на экране:
Edit tool call:
file: src/styles/globals.css
old_string: "--background: #ffffff;"
new_string: "--background: #0a0a0a;"
- Строка должна быть уникальной в файле — если она встречается дважды, Claude должен включить больше окружающего контекста для однозначности
- Это сделано намеренно: предотвращает случайные изменения в неправильном месте
Почему это важно для DevOps/SRE:
“Когда вы редактируете Kubernetes-манифесты или Terraform-файлы, вы точно не хотите, чтобы AI-инструмент вносил приблизительные изменения. Вы хотите, чтобы он менял ровно ту строку, которую имеет в виду. Инструмент Edit это обеспечивает.”
Инструмент Write — Создание файлов целиком
- Используется при создании новых файлов или полной перезаписи существующего файла
- Claude генерирует всё содержимое файла с нуля
- Лучше всего для: новых компонентов, новых конфигурационных файлов, новых скриптов
- Не идеален для: подправки одной строки в файле на 200 строк (для этого используйте Edit)
Правило:
- Меняете несколько строк? Инструмент Edit.
- Создаёте что-то новое? Инструмент Write.
- Переписываете большую часть файла? Инструмент Write.
Как это выглядит на практике:
“Когда Claude будет реализовывать тёмную тему, вы увидите, как он использует инструмент Edit примерно 8-10 раз — по одному на каждое целевое изменение. Он обновит CSS-переменные, модифицирует конфигурацию Tailwind, подправит классы компонентов. Каждая правка — маленькое, ревьюируемое изменение. Вы можете следить за каждым и говорить ‘да, выглядит правильно’ или ‘нет, давайте попробуем другой цвет.’”
Интеграция с Git (2 мин)
Claude может управлять всем вашим git-процессом
- Подготовка файлов: Claude вызывает
git addна конкретных файлах, которые он изменил - Создание коммитов: Claude пишет сообщение коммита на основе того, что он фактически сделал (не того, что вы просили — того, что он сделал)
- Показ диффов: В любой момент можно попросить “покажи дифф”, и Claude выполнит
git diff - Просмотр истории: “Покажи git log” работает ровно так, как ожидаешь
Коммит-сообщения, которые не бесят
“Вот смелое утверждение: Claude пишет коммит-сообщения лучше, чем большинство разработчиков. Не потому что разработчики ленивы — мы ленивы, но не в этом суть — а потому что Claude имеет полный контекст каждого сделанного изменения и естественно их суммирует.
Вместо ‘update styles’ вы получаете что-то вроде ‘feat: add dark theme with CSS custom properties and ThemeProvider integration.’ Включено, что изменилось и почему. Каждый раз.”
Рабочий процесс:
- Claude вносит правки
- Вы проверяете (в браузере в реальном времени, или попросите Claude показать дифф)
- Вы говорите “закоммить это”
- Claude добавляет нужные файлы, пишет осмысленное сообщение, создаёт коммит
- Вы проверяете
git log— чистая история
Ключевой тезис: Claude не делает просто git add ., закидывая всё подряд. Он добавляет именно те файлы, которые изменил.
Итеративное уточнение (1,5 мин)
Настоящая сила: дизайн через разговор
“Вот где Claude Code становится чем-то отличным от любого другого инструмента. Вы запускаете
npm run dev, смотрите тёмную тему в браузере и говорите ‘боковая панель слишком светлая.’ Claude открывает нужный файл, находит CSS-переменную фона боковой панели и затемняет её. Вы говорите ‘графикам нужно больше контраста.’ Claude подправляет цветовую палитру Recharts. Вы говорите ‘акцентный цвет должен быть более синим, менее фиолетовым.’ Готово.Вы ведёте дизайн-разговор с агентом, который может мгновенно реализовать то, что вы описываете. Без переключения между Figma и редактором. Без гугления hex-кодов. Просто разговор.”
Советы по эффективной итерации:
- Будьте конкретны: “Сделай темнее” работает. “Поменяй фон боковой панели с gray-800 на gray-900” работает лучше.
- Ссылайтесь на то, что видите: “Текст на карточках плохо читается” — Claude разберётся, какая CSS-переменная за это отвечает.
- Итерируйте небольшими шагами: Три маленьких уточнения лучше одного гигантского промпта. На каждом шаге вы проверяете результат.
Краткий справочник по системе тем (30 сек)
Быстрая сводка для студентов, которые, возможно, не работали с CSS-переменными + Tailwind:
| Слой | Что делает |
|---|---|
CSS-переменные (:root) |
Определяют реальные значения цветов |
[data-theme="dark"] |
Переопределяют эти значения для тёмного режима |
| Конфигурация Tailwind | Маппит CSS-переменные на утилитарные классы Tailwind |
| ThemeProvider | React-контекст, переключающий атрибут data-theme |
switch-theme.sh |
CLI-ярлык для переключения темы |
“Красота этой архитектуры в том, что Claude нужно только определить тёмные значения цветов и убедиться, что ThemeProvider переключает правильный атрибут. Компоненты уже используют CSS-переменные — они подхватят новые цвета автоматически.”
Заключение (30 сек)
“Это блок, где всё становится реальным. Вы перейдёте от плана к работающей тёмной теме примерно за 25 минут. Будете вносить правки, просматривать их, итерировать, запускать тесты и коммитить — всё через разговор. К концу у вас будет первая настоящая фича, построенная с Claude Code. Поехали.”
Частые вопросы студентов
В: Что если Claude внесёт правку, которая мне не нравится?
О: Всегда можно откатить. Claude уважает ваш git-процесс — если что-то выглядит неправильно, git checkout -- <file> или просто скажите Claude “отмени последнее изменение”. Вы всегда контролируете процесс.
В: Claude запускает dev-сервер за меня?
О: Claude может запустить npm run dev, но результат нужно смотреть в своём браузере. Claude не видит ваш экран — вы являетесь визуальной обратной связью. Рассказывайте ему, что видите, и он корректирует.
В: Что если тесты упадут после изменения темы? О: На самом деле это отличный обучающий момент. Claude прочитает вывод тестов, разберётся, что сломалось (вероятно, snapshot-тест или проверка цвета), и исправит. Именно такой рабочий процесс обработки ошибок вы будете использовать постоянно.
В: Может ли Claude обрабатывать конфликты слияния? О: Да, но это не в рамках данного блока. Мы работаем на чистой ветке. Разрешение конфликтов слияния появится естественным образом в более поздних блоках.
Готовы проверить себя?
Пройти квиз →