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 через GrepGrep ищет по содержимому, а не по именамGlob с шаблоном /*.test.tsx
Искать «кто импортирует React» через GlobGlob сопоставляет пути, а не содержимое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. Какой инструмент и подход верно найдёт все файлы?

  • A Grep с шаблоном .test.tsx по всей базе
  • B Glob с шаблоном /*.test.tsx — совпадение по всем тест-файлам независимо от папки
  • C Read листинга корня и рекурсивный Read каждой подпапки вручную
  • D Bash find . -name "*.test.tsx" — то же, что Glob, но явнее

Продуктивность разработчика с Claude

Через Edit чините баг в утилите. Инструмент вернул: «Anchor text is not unique — found 4 matches». Верный следующий шаг?

  • A Повторить Edit с более длинным якорем, добавив окружающий контекст
  • B Read загрузить файл целиком, выбрать нужное вхождение по контексту, затем Write сохранить изменённый файл
  • C Grep найти номер строки нужного вхождения и передать его в Edit как доп. контекст
  • D Bash с sed сделать замену по номеру строки

Продуктивность разработчика с Claude

Нужно обновить 47 TypeScript-файлов под новый интерфейс API-клиента. Правки механические, но не идентичные — каждый файл использует старый интерфейс чуть иначе. Claude Code делает 12 правок верно, затем контекст исчерпан. Лучший подход к оставшимся 35?

  • A Перезапустить с моделью побольше и заново отправить задачу с начала
  • B Edit в цикле: для каждого файла читать, вычислять правку, писать — 35 последовательных операций
  • C Glob найти 35 оставшихся файлов; обрабатывать пачками по 8–10 за сессию с точным описанием задачи; каждая пачка самодостаточна, без истории прошлых сессий
  • D Написать Bash-скрипт с sed, раз правки «механические»