верхняя ступень ревью задана тестом, а не списком
«Идентичность, слияние, разбор» пришли из одного проекта, и в общем виде формулировка не читалась: вопрос «как применить это к моему проекту» не имел ответа в тексте. Теперь класс задан тремя условиями, не зависящими ни от домена, ни от языка: вариантов несколько и оба защитимы; спека между ними не выбирает; неверный выбор не падает, а даёт правдоподобный результат и молча меняет смысл данных. Отрицательный тест сильнее трёх положительных: то, что красит гейт, роняет запрос или ломает тест, в класс не входит — это ловят проходы дешевле. Отсюда же и причина, по которой класс достался самому дорогому проходу: независимая реализация выберет другой вариант, и дифф между вариантами и есть находка; там, где вариант один, она совпадёт с существующей. Три слова остались как три места, где такие правила водятся — граница, где данные входят или встречаются: состав ключа и нормализация перед сравнением; победитель конфликта и тай-брейк при равенстве; границы токенов и неоднозначный вход. Проект перечисляет свои места в docs/review.md, и перечень производен от теста, а не заменяет его. Две оговорки, без которых правило вырождается: - триггер — новое или изменённое по существу правило, а не код рядом с ним; иначе проект, чей домен и состоит из таких правил, всегда в deep; - проект, где такого класса нет вовсе, deep не запускает никогда, и это законное состояние, а не недонастройка. review-reimpl получил тот же тест и право сказать первой строкой, что позвали не на его класс, — строкой в границы покрытия, а не отказом работать. DECISIONS 18, XXX и следствия 76–77. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1310,6 +1310,22 @@ SSS: рубрика на узел без нового понятия порож
|
||||
ступени, делает ревью **дороже**: тот же объём тем же составом, но костяк оплачен
|
||||
дважды. Резать — когда разрез снимает дорогой проход с большей части диффа.
|
||||
|
||||
**XXX. Верхняя ступень задана тестом, а не списком.** «Идентичность, слияние,
|
||||
разбор» — формулировка, пришедшая из одного проекта, и в общем виде она не
|
||||
читалась: вопрос «как это применить к моему проекту» не имел ответа в тексте.
|
||||
Теперь класс задан тремя условиями, независимыми от домена и языка: вариантов
|
||||
несколько и оба защитимы; спека между ними не выбирает; неверный выбор не падает,
|
||||
а молча меняет смысл данных. Отрицательный тест сильнее положительных — то, что
|
||||
красит гейт или роняет запрос, в класс не входит. Три слова остались как **три
|
||||
места**, где такие правила водятся (граница входа данных и место их встречи), а
|
||||
проект перечисляет свои места в `docs/review.md` — перечень производен от теста и
|
||||
не расширяет класс.
|
||||
|
||||
Оговорка, без которой правило вырождается: триггер — **новое или изменённое по
|
||||
существу правило**, а не код рядом с ним. Проект, чей домен и состоит из таких
|
||||
правил, иначе оказывался бы в `deep` всегда — та же болезнь, от которой лечилась
|
||||
ступень `wide`.
|
||||
|
||||
### Что из этого следует
|
||||
|
||||
72. **Порога в числе границ не заводится.** Тот же принцип, что в теме 16 (CCC):
|
||||
@@ -1323,3 +1339,12 @@ SSS: рубрика на узел без нового понятия порож
|
||||
75. **Замер остаётся за обкаткой.** Правило выведено из состава проходов, а не из
|
||||
статистики прогонов: считать, какая доля задач попадает в каждую ступень,
|
||||
можно только на спринтах нового процесса (TODO шаг 4).
|
||||
76. **Отсутствие верхней ступени — законное состояние проекта.** Бывают проекты,
|
||||
где данные приходят нормализованными, ничего ни с чем не сливается, а внешних
|
||||
форматов нет: `deep` там не срабатывает никогда, и придумывать ему повод не
|
||||
надо. Раньше это читалось как недонастройка.
|
||||
77. **Ступень определяет класс правила, а не вид работы.** Миграция схемы —
|
||||
`standard`, но миграция, переносящая данные по правилу («сложить дубли»,
|
||||
«привести к одному виду перед сравнением»), несёт правило идентичности и
|
||||
потому `deep`. Одно слово в описании задачи попадает в разные ступени — это не
|
||||
противоречие, смотрят не на слово.
|
||||
|
||||
Reference in New Issue
Block a user