Однострочное описание намерения функции. Код говорит, ЧТО он делает. ib говорит, ЗАЧЕМ он это делает.
Контекст для будущего тебя и для ИИ-ассистентов
Intention Block (ib) — это однострочный комментарий в начале тела функции,
который описывает намерение, а не реализацию. Переменная ib никогда
не используется в коде — это чистый комментарий в форме присваивания.
Расположение строго определено:
Четыре причины использовать Intention Block
Claude/GPT понимают контекст и дают лучшие подсказки. ИИ видит не только код, но и намерение автора.
Ревьюер сразу видит, что хотел автор. Проще найти расхождение между целью и реализацией.
Через полгода вспомнишь, зачем писал этот код. ib — это записка самому себе в будущее.
Если ib не совпадает с поведением кода — баг найден. Либо код неверен, либо ib устарел.
Как писать хорошие Intention Block
Максимум 100 символов. Если не влезает — упрости мысль. Краткость — сестра таланта.
Пиши на языке предметной области, не на языке кода. "Применяем скидку клиента", а не "Умножаем на коэффициент".
Описывай цель, а не шаги реализации. Код уже говорит, что он делает — ib объясняет, зачем.
Начинай с действия: Обеспечиваем, Гарантируем, Вычисляем, Проверяем, Избегаем, Фиксируем...
Вдохновляйся и копируй
Обеспечиваем — гарантия
Проверяем — валидация
Применяем — трансформация
Избегаем — оптимизация
Фиксируем — логирование
Подготавливаем — инициализация
Собираем — агрегация
Типичные ошибки и как их избежать
ib должен дополнять XML-doc, а не дублировать его. Summary говорит "Что", ib говорит "Зачем".
"Итерируем по коллекции" — это не намерение. Пиши на языке бизнеса, а не алгоритмов.
"Возвращаем результат" — это и так видно из кода. ib должен добавлять ценность.
Если не влезает в строку — упрости мысль. Длинное объяснение = непонятная функция.
Разные инструменты для разных целей
| XML-doc Summary ✦ | Intention Block (ib) | |
|---|---|---|
| Где | Перед функцией | Внутри функции |
| Для кого | Для пользователя API | Для разработчика/ревьюера |
| Отвечает на | "Что делает?" | "Зачем делает?" |
| Стиль | Формальный | Разговорный |
XML-doc Summary:
• Описание для IDE и автодополнения
• Документация публичного API
• Формальное описание контракта
Intention Block:
• Объяснение замысла для ревью
• Контекст для ИИ-ассистентов
• Напоминание себе через полгода