Claude Certified Architect · Модуль 2 · Урок 2.5
Эффективное применение встроенных инструментов (Read, Write, Edit, Bash, Grep, Glob)
Суть
Grep ищет по содержимому файлов; Glob сопоставляет пути файлов по имени/расширению — самая частая путаница. Правило: текст внутри файлов → Grep; имена/пути файлов → Glob.
Edit и инкрементальное понимание
Edit падает, если якорный текст не уникален; документированный запасной путь — Read (загрузить файл целиком) → изменить → Write (сохранить целиком). Понимание базы наращивают инкрементально: Grep находит точки входа, Read выборочно идёт по импортам; не читать все файлы заранее — это исчерпывает контекст.
Grep — поиск по содержимому файлов (вызовы функции, сообщения об ошибках)
Glob — сопоставление путей файлов (все *.test.tsx, конфиги, .ts-файлы)
Read — загрузка файла целиком (понять модуль; 1-й шаг запасного пути Edit)
Write — запись файла целиком (новые файлы; 2-й шаг запасного пути Edit)
Edit — точечная правка (падает, если якорь встречается >1 раза)
Bash — выполнение shell-команд (тесты, скрипты, git, установки)Anti-patterns
| Ловушка | Почему не работает | Верный паттерн |
|---|---|---|
Искать *.test.tsx через Grep | Grep ищет по содержимому, а не по именам | Glob с шаблоном /*.test.tsx |
| Искать «кто импортирует React» через Glob | Glob сопоставляет пути, а не содержимое | Grep с шаблоном import.*React |
| Повторять Edit после «anchor not unique» | Якорь не станет уникальным от повтора — структурная проблема | Сразу запасной путь: Read → изменить → Write |
| Прочитать все файлы большой базы заранее | Забивает контекст нерелевантным; деградация контекста | Grep к точкам входа → Read выборочно по импортам |
Exam traps
| Ловушка | Почему не работает | Верный паттерн |
|---|---|---|
| Путать Grep (содержимое) и Glob (пути) | Это разные области — содержимое vs имена | Текст внутри файлов → Grep; пути/имена → Glob |
| Упорствовать с Edit при неуникальном якоре | Удлинение якоря иногда срабатывает, но ненадёжно | Read + Write — документированный надёжный запасной путь |
| Грузить всю большую базу заранее | Исчерпание контекста на нерелевантных файлах | Наращивать понимание инкрементально от точек входа |
Практическое задание (T5)
- Найти все тест-файлы — верным инструментом (Glob) и написать glob-шаблон.
- Найти все файлы, импортирующие конкретную утилиту — верным инструментом (Grep) и написать шаблон.
- Сделать точечную правку уникальной строки через Edit; намеренно вызвать сбой по неуникальному якорю и применить запасной путь Read + Write.
- Проследить всё использование экспортируемой функции: найти экспорты → grep каждого по базе → задокументировать граф зависимостей.
- Понять незнакомый модуль инкрементально: один Grep, выделить 3 релевантных файла, Read только их.
Проверка знаний
Продуктивность разработчика с Claude
Нужно применить единое тестовое соглашение ко всем тест-файлам во всех папках, имена *.test.tsx. Какой инструмент и подход верно найдёт все файлы?
Верный ответ: B
B верно. Glob — инструмент для сопоставления путей по имени/расширению в иерархии папок. A — Grep ищет по содержимому, а не по именам. C — ручная рекурсия неэффективна и забивает контекст. D сработает, но Bash — низкоуровневый запасной путь; когда есть профильный инструмент (Glob), берут его.
Продуктивность разработчика с Claude
Через Edit чините баг в утилите. Инструмент вернул: «Anchor text is not unique — found 4 matches». Верный следующий шаг?
Верный ответ: B
B верно. При сбое Edit по неуникальному якорю документированный путь — Read целиком, затем Write полного изменённого файла. A иногда поможет, но надёжный путь — Read + Write, не упорствовать с Edit. C — Edit не принимает номера строк. D сработает, но это не документированный для этого случая путь.
Продуктивность разработчика с Claude
Нужно обновить 47 TypeScript-файлов под новый интерфейс API-клиента. Правки механические, но не идентичные — каждый файл использует старый интерфейс чуть иначе. Claude Code делает 12 правок верно, затем контекст исчерпан. Лучший подход к оставшимся 35?
Верный ответ: C
C верно. Ограниченные пачки держат каждую сессию в пределах контекста; точное самодостаточное описание делает пачку независимой; Glob даёт точный список — ничего не пропущено и не задвоено. A упрётся в тот же предел. B технически возможно, но «не идентичные» правки требуют суждения модели. D — sed не справится с семантической вариативностью.