Mnemonic Intent-Layered Assignment
1. Проблема
ИИ сделал реализацию дешёвой, но понимание не стало автоматическим.
Код может выглядеть убедительно и оставаться непонятым:
- неизвестно, зачем существует решение;
- неясны допустимые состояния;
- забыта точная граница;
- выбран неверный оператор;
- отсутствует тест, отличающий корректное поведение от ошибочного.
MILA сохраняет в коде не только вычисление, но и модель решения.
2. Формула
WHAT
[TYPE]
WHY
EDGE
HOW
EDGE → TEST- WHAT — какое предметное понятие вводится;
- TYPE — какие ограничения не выражены самим языком;
- WHY — зачем решение существует;
- EDGE — где меняется поведение;
- HOW — как решение реализовано;
- TEST — чем доказана заявленная граница.
TYPE опционален. TEST является проверяемым следствием EDGE.
3. Пять принципов
- Имя вводит понятие. Переменная обозначает предметный результат, а не случайное хранилище.
- TYPE дополняет язык. Он нужен только для невыраженных ограничений: диапазона, отсутствия, точности и допустимых состояний.
- WHY сохраняет причину. Комментарий объясняет основание решения, а не пересказывает выражение.
- EDGE называет изменение поведения. Важны равенство, ноль, отсутствие, пустота, дата и последняя попытка.
- HOW соответствует модели. Критический EDGE подтверждается тестом.
4. Пример
Без MILA:
МожноОтгружать = ТекущийДолг + СуммаЗаказа <= Лимит;С MILA:
ЗадолженностьПослеОтгрузки
// WHY: решение принимается по прогнозному состоянию после заказа
= ТекущийДолг + СуммаЗаказа;
ОтгрузкаРазрешена
// WHY: заказ блокируется только при фактическом выходе за лимит
// EDGE: точное равенство лимиту разрешено
= ЗадолженностьПослеОтгрузки <= КредитныйЛимит;Проверка:
ниже лимита
точно лимит
выше лимита5. Где применять
MILA особенно полезна для бизнес-правил, денег, порогов, дат, отсутствующих значений, внешних данных, условных выражений и AI-сгенерированного кода.
Она обычно не нужна для счётчиков, очевидных констант, прямого копирования полей, шаблонного кода и комментариев, повторяющих синтаксис.
6. Итог
ИИ может предложить HOW. Разработчик отвечает за WHAT, WHY и EDGE. TYPE уточняет допустимые состояния, когда языка недостаточно. TEST доказывает границу.
MILA — компактная дисциплина сохранения смысла, границ и доказательства в исполняемом коде.