механизация больше не разрешает удалять норму
- META-9 снят: удаление оставляло подписчика, пришедшего после, без нормы и без проверки, а «механизировано у всех» канону не проверить — списка подписчиков у него нет по построению - META-8 переписан в запрет: норма остаётся в правиле, чем бы её ни проверяли; линтер сообщает, что нарушено, но не что требуется (META-6) - МЕХАНИЗИРОВАНО объявлена свойством репозитория: в тексте конвенции отметки нет, её место — запись о механизации ниже маркера (META-7)
This commit is contained in:
+34
-30
@@ -69,8 +69,8 @@ version: 1
|
||||
- **Отступления.** «У нас не так» бесполезно, пока не сказано, что именно
|
||||
«не так». Со ссылкой на правило отступления становятся счётными: видно,
|
||||
сколько правил конвенции репозиторий реально не соблюдает.
|
||||
- **Промоут находки.** Путь «находка → конвенция → правило линтера →
|
||||
удаление прозы» требует ручки, за которую берут конкретное правило.
|
||||
- **Промоут находки.** Путь «находка → конвенция → правило линтера» требует
|
||||
ручки, за которую берут конкретное правило.
|
||||
|
||||
Общий знаменатель — **идентификатор**. Модальные слова и таблицы полезны,
|
||||
но вторичны.
|
||||
@@ -238,9 +238,10 @@ Directives, Part 2, по одной форме записи на ступень,
|
||||
| рекомендация против | НЕ СЛЕДУЕТ | SHOULD NOT |
|
||||
| разрешение | ДОПУСКАЕТСЯ | MAY |
|
||||
|
||||
**Метки правила.** Обязательности не задают, а размечают его части.
|
||||
Стандартом не даются ни в одном языке: в BCP 14 таких понятий нет, слова
|
||||
подбираются под язык так же, как остальные.
|
||||
**Метки.** Обязательности не задают, а размечают: ПОЧЕМУ — часть правила,
|
||||
МЕХАНИЗИРОВАНО — запись о проверке в копии. Стандартом не даются ни в одном
|
||||
языке: в BCP 14 таких понятий нет, слова подбираются под язык так же, как
|
||||
остальные.
|
||||
|
||||
| Метка | Русский | Английский |
|
||||
|---|---|---|
|
||||
@@ -304,33 +305,35 @@ Directives, Part 2, по одной форме записи на ступень,
|
||||
инструментов. Линтер сильнее чтения — он не забывает, ничего не стоит на
|
||||
каждом прогоне и краснеет до ревью, — поэтому механизация желательна везде,
|
||||
где проверка пишется (META-27), и остаётся концом пути «находка → конвенция →
|
||||
проверка → удаление прозы». Но обязательным условием высшей ступени она не
|
||||
является: иначе весь канон стоял бы в СЛЕДУЕТ до появления скриптов, которых
|
||||
пока нет ни одного.
|
||||
проверка». Но обязательным условием высшей ступени она не является: иначе весь
|
||||
канон стоял бы в СЛЕДУЕТ до появления скриптов, которых пока нет ни одного.
|
||||
|
||||
Когда правило механизировано у всех потребителей, его норма из канона
|
||||
удаляется, а модальность и обоснование остаются:
|
||||
**Механизация нормы не заменяет и не сокращает.** Норма остаётся в правиле
|
||||
навсегда — как и обоснование (META-8, META-10), — сколько бы проверок её ни
|
||||
подпирало. Причин три:
|
||||
|
||||
- **линтер сообщает, что нарушено, но не сообщает, что требуется.** Без нормы
|
||||
правило нечем исполнить и не с чем сверить вердикт проверки, а проверяющий
|
||||
по умолчанию читает именно норму;
|
||||
- **подписчики появляются позже.** Репозиторий, подключившийся через год,
|
||||
получил бы правило без нормы и без линтера — ни текста, ни проверки;
|
||||
- **«механизировано у всех» набору не проверить:** списка подписчиков у него
|
||||
нет по построению.
|
||||
|
||||
**Отметка — свойство репозитория, а не набора.** Механизирована норма или нет,
|
||||
зависит от того, чей это репозиторий, поэтому в тексте конвенции отметки нет:
|
||||
её место — запись о механизации в локальной части копии, со ссылкой на
|
||||
идентификатор правила (META-7).
|
||||
|
||||
```markdown
|
||||
### XMIG-6. Дефолтов времени в схеме БД нет
|
||||
<!-- conv:local -->
|
||||
|
||||
**ДОЛЖЕН. МЕХАНИЗИРОВАНО.** Проверяется общим правилом линтера;
|
||||
формулировка удалена, потому что дублировала работающую проверку.
|
||||
|
||||
**ПОЧЕМУ.** Дефолт превращает забытую вставку в тихо работающий код…
|
||||
XMIG-2, XMIG-4 — МЕХАНИЗИРОВАНО: `internal/archrules`, в новых миграциях.
|
||||
```
|
||||
|
||||
- Идентификатор и заголовок сохраняются: ссылки из репозиториев продолжают
|
||||
указывать на то же утверждение.
|
||||
- Модальность сохраняется, поэтому «все ли ДОЛЖЕН механизированы»
|
||||
остаётся вычислимым вопросом, а не предметом чтения всего канона.
|
||||
- Обоснование остаётся навсегда — линтер сообщает, что нарушено, но не
|
||||
сообщает, зачем правило существует, и без обоснования нельзя понять,
|
||||
когда проверку пора отменять.
|
||||
|
||||
Факт «механизировано у всех» устанавливается вручную: канон по построению
|
||||
не знает списка подписчиков, и обойти репозитории перед удалением нормы —
|
||||
часть работы, а не то, что можно проверить автоматически.
|
||||
Так у правила остаются оба атрибута сразу: обязательность — в норме, которая
|
||||
приезжает из набора и одинакова у всех, способ проверки — в записи, которая
|
||||
принадлежит репозиторию и у каждого своя.
|
||||
|
||||
## Таблицы решений
|
||||
|
||||
@@ -459,8 +462,7 @@ Directives, Part 2, по одной форме записи на ступень,
|
||||
```markdown
|
||||
<!-- conv:local -->
|
||||
|
||||
XMIG-2, XMIG-4 механизированы — `internal/archrules` (проверяются в новых
|
||||
миграциях).
|
||||
XMIG-2, XMIG-4 — МЕХАНИЗИРОВАНО: `internal/archrules`, в новых миграциях.
|
||||
|
||||
XMIG-6 не соблюдается в легаси-таблицах `show_history`, `queue`: составные
|
||||
ключи там появились до конвенции, переписывание требует миграции данных.
|
||||
@@ -489,8 +491,8 @@ XMIG-6 не соблюдается в легаси-таблицах `show_histor
|
||||
- заголовки правил файла используют только его собственный префикс;
|
||||
- номера уникальны внутри файла и не имеют пропусков вниз (новое правило
|
||||
берёт следующий свободный, а не первый освободившийся);
|
||||
- у каждого `### <ПРЕФИКС>-<n>` есть модальное слово и блок ПОЧЕМУ;
|
||||
отметка МЕХАНИЗИРОВАНО стоит рядом с модальностью, а не вместо неё;
|
||||
- у каждого `### <ПРЕФИКС>-<n>` есть модальное слово, норма и блок ПОЧЕМУ:
|
||||
ни норма, ни обоснование не удаляются никогда (META-8, META-10);
|
||||
- вводная проза содержит строку о версии языка;
|
||||
- ссылки вида `<ПРЕФИКС>-<n>` — хоть в тексте канона, хоть в локальной части
|
||||
копии — указывают на правила, которые ещё существуют;
|
||||
@@ -509,6 +511,8 @@ XMIG-6 не соблюдается в легаси-таблицах `show_histor
|
||||
- имя темы, названное в ссылке или в подписке потребителя, тоже разрешается по
|
||||
манифесту: ссылка на снятую тему не проходит молча;
|
||||
- префиксы локальных правил копии начинаются на `X`;
|
||||
- отметки МЕХАНИЗИРОВАНО в тексте конвенции нет: её место — запись о
|
||||
механизации в локальной части копии (META-7);
|
||||
- префикс **чужой темы** не встречается в абзаце с модальностью (META-20);
|
||||
префикс арх-слоя своей темы там допустим (META-24), префикс другого языка
|
||||
или стека — нет;
|
||||
|
||||
Reference in New Issue
Block a user