снятое правило остаётся заглушкой, нумерация сплошная
- META-31 и META-32: номера идут без пропусков, ссылка обязана разрешаться; обе проверки стали механическими — данных со стороны языка им хватает - заведена метка СНЯТО: заголовок и номер снятого правила сохраняются, норму с обоснованием заменяет блок с датой и причиной, отдельный реестр снятых номеров не нужен - META-9, META-16 и META-26 переписаны из таблицы «Освободившиеся номера» в заглушки; три висячие ссылки, тянувшиеся с утра, закрылись
This commit is contained in:
@@ -43,8 +43,8 @@ code in this repository.
|
||||
записи о механизации в локальной части копии (META-7).
|
||||
- META-8: норма не удаляется из канона никогда, чем бы её ни проверяли.
|
||||
Механизация её не заменяет и не сокращает.
|
||||
- Метки правила — **ПОЧЕМУ** и **МЕХАНИЗИРОВАНО** — тоже словарь набора и
|
||||
перечислены в строке о версии языка наравне с модальными словами.
|
||||
- Метки правила — **ПОЧЕМУ**, **МЕХАНИЗИРОВАНО** и **СНЯТО** — тоже словарь
|
||||
набора и перечислены в строке о версии языка наравне с модальными словами.
|
||||
- META-30: правка словаря или состава частей правила доходит до `READING.md` —
|
||||
документа, который едет к потребителю. Словари двух описаний совпадают.
|
||||
- Заглавные модальные слова не употребляются вне правил: ни в «Область
|
||||
@@ -79,8 +79,13 @@ code in this repository.
|
||||
с причиной и датой. Оно живёт в `origin:` копий и в подписках манифестов.
|
||||
- Формат `<ПРЕФИКС>-<номер>`, нумерация сквозная внутри файла. Порядок правил
|
||||
в файле — по читаемости: номер это идентификатор, а не позиция.
|
||||
- Идентификаторы не переиспользуются. Удалённое правило оставляет дыру, новое
|
||||
берёт следующий свободный номер, а не первый освободившийся.
|
||||
- Идентификаторы не переиспользуются: новое правило берёт номер, следующий за
|
||||
наибольшим.
|
||||
- META-31: нумерация в файле сплошная. Снятое правило не исчезает, а остаётся
|
||||
заглушкой: заголовок с номером плюс блок `**СНЯТО <дата>.**` с причиной
|
||||
вместо нормы и ПОЧЕМУ. Реестра снятых номеров нет — файл сам себе реестр.
|
||||
- META-32: ссылок на несуществующие правила нет; неразрешённый идентификатор —
|
||||
всегда ошибка, а не «правило, наверное, сняли».
|
||||
- Новый файл конвенции — новый префикс: четыре заглавные латинские буквы,
|
||||
уникальные по всему канону, выбираются под файл, а не выводятся по формуле.
|
||||
Объявляется в шапке (`prefix: KEYS`) и регистрируется в манифесте набора,
|
||||
|
||||
@@ -16,8 +16,8 @@ prefix: META
|
||||
же.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
## Область действия
|
||||
|
||||
@@ -112,6 +112,33 @@ prefix: META
|
||||
слова вводились, и молча. Проверить расхождение дёшево: словари в двух
|
||||
документах либо совпадают, либо нет.
|
||||
|
||||
### META-31. Нумерация правил в файле сплошная
|
||||
|
||||
**ДОЛЖЕН.** Номера идут от единицы до наибольшего без пропусков: снятое
|
||||
правило остаётся на месте заглушкой с меткой СНЯТО, а не исчезает.
|
||||
|
||||
**ПОЧЕМУ.** Дыра в нумерации неотличима от опечатки в номере и от правила,
|
||||
которое забыли дописать, — проверка, увидев пропуск, не может сказать, ошибка
|
||||
это или норма, поэтому либо молчит всегда, либо краснеет на живом файле.
|
||||
Заглушка отвечает на тот же вопрос текстом: номер занят, правило снято
|
||||
тогда-то и по такой-то причине. Переиспользовать номер по-прежнему нельзя —
|
||||
ссылка из чужого репозитория обязана указывать на то же утверждение, — но и
|
||||
отдельный
|
||||
реестр снятых номеров не нужен: он был бы вторым источником правды рядом с
|
||||
файлом, который и так всё сказал.
|
||||
|
||||
### META-32. Ссылка ведёт на правило, которое существует
|
||||
|
||||
**НЕ ДОЛЖЕН.** Идентификатор в тексте не указывает на правило, которого в
|
||||
наборе нет.
|
||||
|
||||
**ПОЧЕМУ.** Неразрешимая ссылка означает одно из двух: опечатку в номере или
|
||||
след переноса правила в другой файл. Читатель — тем более в чужом
|
||||
репозитории — не различит эти случаи и решит, что правила больше нет, хотя оно
|
||||
могло переехать. С заглушками (META-31) проверка становится однозначной:
|
||||
идентификатор либо ведёт к правилу, либо к объяснению, почему его сняли, а
|
||||
третьего исхода нет — и любой неразрешённый идентификатор точно ошибка.
|
||||
|
||||
### META-2. Конвенция заводится, когда решение принимается третий раз
|
||||
|
||||
**СЛЕДУЕТ.** Поводом служит одно и то же решение, принятое третий раз и
|
||||
@@ -390,14 +417,26 @@ prefix: META
|
||||
подробностями идут; перенос деталей туда же вернул бы задачу поддержки двух
|
||||
текстов.
|
||||
|
||||
## Освободившиеся номера
|
||||
## Снятые правила
|
||||
|
||||
Номер удалённого правила не переиспользуется, поэтому дыры в нумерации —
|
||||
норма. Здесь перечислено, что́ под ними было: без этого упоминание номера в
|
||||
прозе не отличить от ссылки на исчезнувшее правило.
|
||||
Снятое правило остаётся здесь заглушкой: номер занят навсегда, ссылка на него
|
||||
ведёт к объяснению, а нумерация в файле остаётся сплошной (META-31).
|
||||
|
||||
| Номер | Что было | Почему снято |
|
||||
|---|---|---|
|
||||
| META-16 | имя файла — kebab-case | вреда от нарушения нет (META-25); осталось прозой в «Оформлении» |
|
||||
| META-26 | запрет слов обязательства в обосновании | правило о заглавных уже делает строчное слово ненормативным, а форму обоснования рамками не ограничивают |
|
||||
| META-9 | общая механизация разрешала удалить норму из канона | снято 2026-07-26: удаление оставляло будущего подписчика без нормы и без проверки, а «механизировано у всех» канону не проверить (META-8) |
|
||||
### META-9. Общая механизация разрешала удалить норму из канона
|
||||
|
||||
**СНЯТО 2026-07-26.** Удаление нормы оставляло подписчика, пришедшего позже,
|
||||
без текста и без проверки, а условие «механизировано у всех» набору не
|
||||
проверить: списка подписчиков у него нет. Взамен — META-8, запрет удалять
|
||||
норму вообще.
|
||||
|
||||
### META-16. Имя файла — kebab-case
|
||||
|
||||
**СНЯТО 2026-07-26.** Вреда от нарушения нет, а значит нет и высшей
|
||||
модальности (META-25): сборка идёт по имени темы из шапки, а не по имени
|
||||
файла. Осталось прозой в разделе «Оформление».
|
||||
|
||||
### META-26. Запрет слов обязательства в обосновании
|
||||
|
||||
**СНЯТО 2026-07-26.** Правило о заглавных уже делает строчное «обязан»
|
||||
ненормативным, поэтому запрет ничего не добавлял, а форму обоснования рамками
|
||||
не ограничивают.
|
||||
|
||||
+25
-17
@@ -245,14 +245,15 @@ Directives, Part 2, по одной форме записи на ступень,
|
||||
| разрешение | ДОПУСКАЕТСЯ | MAY |
|
||||
|
||||
**Метки.** Обязательности не задают, а размечают: ПОЧЕМУ — часть правила,
|
||||
МЕХАНИЗИРОВАНО — запись о проверке в копии. Стандартом не даются ни в одном
|
||||
языке: в BCP 14 таких понятий нет, слова подбираются под язык так же, как
|
||||
остальные.
|
||||
МЕХАНИЗИРОВАНО — запись о проверке в копии, СНЯТО — заглушку на месте
|
||||
убранного правила. Стандартом не даются ни в одном языке: в BCP 14 таких
|
||||
понятий нет, слова подбираются под язык так же, как остальные.
|
||||
|
||||
| Метка | Русский | Английский |
|
||||
|---|---|---|
|
||||
| обоснование | ПОЧЕМУ | WHY |
|
||||
| способ проверки | МЕХАНИЗИРОВАНО | MECHANIZED |
|
||||
| снятое правило | СНЯТО | RETIRED |
|
||||
|
||||
**Служебные слова сценарного блока** — `КОГДА`, `ТОГДА`, `И`, `ИЛИ`; таблица
|
||||
и объяснение в разделе «Таблицы решений».
|
||||
@@ -279,14 +280,14 @@ Directives, Part 2, по одной форме записи на ступень,
|
||||
Каждая конвенция называет язык одной строкой во вводной прозе:
|
||||
|
||||
> Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
> ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
> тогда и только тогда, когда написаны заглавными.
|
||||
> ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
> версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
Слова в строке — из словаря того языка, на котором написан набор. Для
|
||||
англоязычного набора та же строка выглядит так:
|
||||
|
||||
> The key words MUST, MUST NOT, SHOULD, SHOULD NOT, MAY and the marks WHY
|
||||
> and MECHANIZED are to be interpreted as described in the conventions
|
||||
> The key words MUST, MUST NOT, SHOULD, SHOULD NOT, MAY and the marks WHY,
|
||||
> MECHANIZED and RETIRED are to be interpreted as described in the conventions
|
||||
> language, version 1, and only when written in capitals.
|
||||
|
||||
Форма скопирована у BCP 14, где та же задача решается тем же способом:
|
||||
@@ -409,10 +410,15 @@ XMIG-2, XMIG-4 — МЕХАНИЗИРОВАНО: `internal/archrules`, в нов
|
||||
файла, из соседней конвенции и из чужого репозитория. В собранной копии
|
||||
слои разных осей лежат в одном документе, так что ссылка на базовый слой
|
||||
из языкового вообще никуда не ведёт — правило рядом.
|
||||
- **Идентификаторы стабильны и не переиспользуются.** Удалённое правило
|
||||
оставляет дыру в нумерации; занимать её новым нельзя — иначе ссылка из
|
||||
чужого репозитория начнёт указывать на другое утверждение. То же
|
||||
относится к префиксам: выбывшие хранит манифест набора.
|
||||
- **Идентификаторы стабильны и не переиспользуются.** Занять номер снятого
|
||||
правила новым нельзя — иначе ссылка из чужого репозитория начнёт указывать
|
||||
на другое утверждение. То же относится к префиксам: выбывшие хранит манифест
|
||||
набора.
|
||||
- **Снятое правило остаётся заглушкой.** Заголовок и номер сохраняются, норму
|
||||
с обоснованием заменяет блок СНЯТО с датой и причиной. Поэтому нумерация в
|
||||
файле сплошная, а любая ссылка разрешается — либо в правило, либо в
|
||||
объяснение, почему его сняли (META-31, META-32). Отдельного реестра снятых
|
||||
номеров нет: он был бы вторым источником правды рядом с файлом.
|
||||
- Префикс **выбирается под файл, а не выводится по формуле**: он нужен,
|
||||
чтобы по нему искать, а не чтобы его разбирать. Выводимый префикс вдобавок
|
||||
привязал бы идентификатор к таксономии, которую канон перестраивает, и
|
||||
@@ -495,13 +501,15 @@ XMIG-6 не соблюдается в легаси-таблицах `show_histor
|
||||
заглавных латинских букв, не начинается на `X` и не значится в списке
|
||||
выбывших;
|
||||
- заголовки правил файла используют только его собственный префикс;
|
||||
- номера уникальны внутри файла и не имеют пропусков вниз (новое правило
|
||||
берёт следующий свободный, а не первый освободившийся);
|
||||
- у каждого `### <ПРЕФИКС>-<n>` есть модальное слово, норма и блок ПОЧЕМУ:
|
||||
ни норма, ни обоснование не удаляются никогда (META-8, META-10);
|
||||
- нумерация внутри файла сплошная: от единицы до наибольшего номера без
|
||||
пропусков, номера не повторяются, новое правило берёт следующий за
|
||||
наибольшим (META-31);
|
||||
- у каждого `### <ПРЕФИКС>-<n>` есть либо модальное слово с нормой и блок
|
||||
ПОЧЕМУ — ни норма, ни обоснование не удаляются никогда (META-8, META-10), —
|
||||
либо блок СНЯТО с датой и причиной;
|
||||
- вводная проза содержит строку о версии языка;
|
||||
- ссылки вида `<ПРЕФИКС>-<n>` — хоть в тексте канона, хоть в локальной части
|
||||
копии — указывают на правила, которые ещё существуют;
|
||||
- ссылки вида `<ПРЕФИКС>-<n>` — хоть в тексте набора, хоть в локальной части
|
||||
копии — разрешаются: неразрешённый идентификатор всегда ошибка (META-32);
|
||||
- заглавные модальные слова не встречаются вне областей правил (область —
|
||||
от заголовка правила до следующего заголовка) — кроме строки о версии
|
||||
языка, которая их перечисляет по назначению;
|
||||
|
||||
+13
-2
@@ -34,9 +34,20 @@ version: 1
|
||||
между ДОЛЖЕН и СЛЕДУЕТ — в том, чем платят за отклонение, а не в том,
|
||||
возможно ли оно.
|
||||
|
||||
Ещё две метки заглавными: **ПОЧЕМУ** открывает обоснование правила,
|
||||
Ещё три метки заглавными: **ПОЧЕМУ** открывает обоснование правила,
|
||||
**МЕХАНИЗИРОВАНО** стоит при записи о том, что правило проверяет линтер или
|
||||
скрипт.
|
||||
скрипт, **СНЯТО** — на месте правила, которое убрали.
|
||||
|
||||
Заглушка со СНЯТО занимает место убранного правила вместе с его номером:
|
||||
так нумерация остаётся сплошной, а ссылка на снятое правило приводит к
|
||||
объяснению, а не в пустоту. Требований в такой заглушке нет.
|
||||
|
||||
```markdown
|
||||
### XLOG-4. Уровень записи выбирался по громкости отказа
|
||||
|
||||
**СНЯТО 2026-05-14.** Заменено на XLOG-8: громкость каждый оценивал
|
||||
по-своему, и шкала расползалась.
|
||||
```
|
||||
|
||||
**Нормативно только заглавное написание.** Строчное «должен» в прозе — обычная
|
||||
речь, а не норма; спорить с ней как с правилом не нужно.
|
||||
|
||||
@@ -4,29 +4,12 @@
|
||||
решения. Закрытый вопрос отсюда удаляется — принятое решение живёт в
|
||||
`README.md`, `GUIDE.md` или `LANGUAGE.md`, а не в этом файле.
|
||||
|
||||
Две секции: сначала язык и подход, потом канон с тулингом. Пункты 1–2
|
||||
пришли из внешнего ревью описания языка и проверены по файлам на месте.
|
||||
Две секции: сначала язык и подход, потом канон с тулингом. Пункт 1 пришёл
|
||||
из внешнего ревью описания языка и проверен по файлам на месте.
|
||||
|
||||
# Язык и подход
|
||||
|
||||
## 1. Две «механические» проверки без источника данных
|
||||
|
||||
В списке «разбором текста» стоят два пункта, которые без дополнительного
|
||||
реестра нерешаемы:
|
||||
|
||||
- **«номера не имеют пропусков вниз»** — дыры в нумерации нормальны по
|
||||
построению, и статическая проверка не отличит дыру от удалённого правила
|
||||
от опечатки в номере;
|
||||
- **«ссылки указывают на правила, которые ещё существуют»** — упоминание
|
||||
снятого номера в прозе выглядит как висячая ссылка.
|
||||
|
||||
`GUIDE.md` завёл для себя раздел «Освободившиеся номера» — и, поскольку он
|
||||
теперь проверяется как конвенция, это единственный живой пример такого
|
||||
реестра. Языком он всё равно не объявлен: от конвенций такой таблицы не
|
||||
требуют, а манифест набора хранит только темы и префиксы. Пока реестр снятых
|
||||
номеров не объявлен частью языка, оба пункта принадлежат списку «чтением».
|
||||
|
||||
## 2. Натяжки в опоре на стандарты
|
||||
## 1. Натяжки в опоре на стандарты
|
||||
|
||||
Три места, где источнику приписано чуть больше, чем в нём есть:
|
||||
|
||||
@@ -45,7 +28,7 @@
|
||||
Остальное в таблице проверку выдержало, включая вторую половину `MAY` из
|
||||
BCP 14 и списки эквивалентных словесных форм ISO Directives.
|
||||
|
||||
## 3. Одиннадцать таблиц не прочитаны на взаимоисключительность
|
||||
## 2. Одиннадцать таблиц не прочитаны на взаимоисключительность
|
||||
|
||||
`LANGUAGE.md` объявил, что строки таблицы решений взаимоисключающи по
|
||||
умолчанию, а иной порядок объявляется явно. Объявление не делает таблицы
|
||||
@@ -60,7 +43,7 @@ BCP 14 и списки эквивалентных словесных форм IS
|
||||
Работа читательская, машине не даётся; в список проверок она уже записана в
|
||||
разделе «Чтением, потому что машине не даётся».
|
||||
|
||||
## 4. Описание языка отдельно от набора конвенций
|
||||
## 3. Описание языка отдельно от набора конвенций
|
||||
|
||||
`LANGUAGE.md` и `GUIDE.md` описывают, **как** пишутся конвенции;
|
||||
`conventions/` — **один конкретный** набор. Сейчас они склеены в одном
|
||||
@@ -85,7 +68,7 @@ BCP 14 и списки эквивалентных словесных форм IS
|
||||
|
||||
# Канон, тулинг, подключение
|
||||
|
||||
## 5. Тулинг: две разные задачи в одном `conv`
|
||||
## 4. Тулинг: две разные задачи в одном `conv`
|
||||
|
||||
Сейчас в `conv` смешаны две категории работы, и они расходятся по всему —
|
||||
по частоте запуска, по тому, кто запускает, и по тому, что считается
|
||||
@@ -117,15 +100,16 @@ BCP 14 и списки эквивалентных словесных форм IS
|
||||
ссылках: это установка, а не целостность, но список подписок ему нужен из
|
||||
манифеста.
|
||||
|
||||
Часть проверок из этого списка сейчас нереализуема по причине из вопроса 1,
|
||||
так что порядок такой: сначала язык, потом чекер.
|
||||
Список проверок теперь реализуем целиком: граница правила определена,
|
||||
нумерация сплошная, снятое правило остаётся заглушкой — данных со стороны
|
||||
языка проверке хватает.
|
||||
|
||||
Перед тем как переписывать, стоит посмотреть на два готовых прототипа:
|
||||
дистрибуцию пакетов Vale (`.vale.ini` → `vale sync` → `styles/`) как образец
|
||||
манифеста и `vendir.yml` — как пример того, где проходит граница между «чего
|
||||
хочу» и «что получил».
|
||||
|
||||
## 6. Пары слоёв и темы без базы
|
||||
## 5. Пары слоёв и темы без базы
|
||||
|
||||
Отложено сознательно, но список стоит держать перед глазами:
|
||||
|
||||
@@ -146,7 +130,7 @@ BCP 14 и списки эквивалентных словесных форм IS
|
||||
- Вынос арх-ядра из `errors` и `logging` закроет две хрупкие ссылки из
|
||||
`web-ui` (стек) в go-слой — единственные ссылки стек → язык в каноне.
|
||||
|
||||
## 7. Подключение к репозиториям
|
||||
## 6. Подключение к репозиториям
|
||||
|
||||
Ничего ещё не подключено. Кандидаты — jellybit и pet-project-server.
|
||||
Понадобится: заполнить локальную часть копий тем, что сейчас в этих
|
||||
@@ -155,7 +139,7 @@ BCP 14 и списки эквивалентных словесных форм IS
|
||||
строка в `AGENTS.md` каждого потребителя про то, что файлы в
|
||||
`docs/conventions/` — копии.
|
||||
|
||||
## 8. Тулинг на Go, живущий независимо
|
||||
## 7. Тулинг на Go, живущий независимо
|
||||
|
||||
Сейчас `conv` — питоновский скрипт внутри канона, то есть тулинг и данные в
|
||||
одном репозитории и правятся одним движением. Мысль: вынести в отдельный
|
||||
@@ -164,10 +148,10 @@ Go-бинарь со своим релизным циклом, ставить ч
|
||||
|
||||
Что за этим стоит помимо вкуса: независимый бинарь физически не даёт править
|
||||
инструмент «заодно» с правкой конвенции, работает против **любого** канона и
|
||||
любого потребителя — что прямо требуется вопросом 4, — и снимает питон из
|
||||
любого потребителя — что прямо требуется вопросом 3, — и снимает питон из
|
||||
зависимостей репозиториев-потребителей.
|
||||
|
||||
Порядок обратный ожидаемому: пока вопрос 4 не сделан, инструмент всё равно
|
||||
Порядок обратный ожидаемому: пока вопрос 3 не сделан, инструмент всё равно
|
||||
работает против одного конкретного канона, и независимый релизный цикл ему
|
||||
нечего обслуживать. Сначала 4, потом 8. Разделение из вопроса 5 при этом
|
||||
нечего обслуживать. Сначала 3, потом 7. Разделение из вопроса 4 при этом
|
||||
дешевле заложить сразу, чем отпиливать потом.
|
||||
|
||||
@@ -12,8 +12,8 @@ prefix: DIRS
|
||||
механически выводится состав бэкапа.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
## Область действия
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ prefix: CONF
|
||||
секретами и когда падает.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
## Область действия
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ prefix: KEYS
|
||||
Как выбираются и как выглядят первичные ключи сущностей.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
## Область действия
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ prefix: TIME
|
||||
берётся значение и где появляется не-UTC.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
## Область действия
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ extends: arch/config.md
|
||||
запрета на окружение.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
Секретов Go-специфика не касается: они приходят из деплоя уже в файле, а
|
||||
проверка их непустоты идёт вместе с остальной валидацией — как описано в
|
||||
|
||||
@@ -9,8 +9,8 @@ extends: arch/db-identifiers.md
|
||||
Как базовый слой выглядит в Go-приложении.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
Единая точка из `KEYS-3` — пакет `internal/ident`: он
|
||||
порождает идентификаторы (`NewID`, `NewIDAt`) и он же их разбирает
|
||||
|
||||
@@ -9,8 +9,8 @@ prefix: MIGR
|
||||
Go-приложении.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
## Область действия
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ prefix: GERR
|
||||
границе).
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
Две границы, о которых говорят правила ниже:
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ extends: arch/time.md
|
||||
функциональности, живут в спеках.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
Лог читают инструментами, а не глазами: повседневно — `jq`
|
||||
(`jq 'select(.download_id=="a1b2")' app.jsonl`), тяжёлое (агрегации, JOIN) —
|
||||
|
||||
@@ -10,8 +10,8 @@ extends: arch/time.md
|
||||
в каком виде время попадает в базу и в логи, что делать с зонами.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
## Правила
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ extends: arch/app-directories.md
|
||||
Как категории из базового слоя раскладываются на сервере плейбуком.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
## Область действия
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ prefix: HTMX
|
||||
какие действия поддерживает — в спеках, не здесь.
|
||||
|
||||
Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки
|
||||
ПОЧЕМУ и МЕХАНИЗИРОВАНО толкуются как описано в языке конвенций версии 1 —
|
||||
тогда и только тогда, когда написаны заглавными.
|
||||
ПОЧЕМУ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке конвенций
|
||||
версии 1 — тогда и только тогда, когда написаны заглавными.
|
||||
|
||||
Логирование запросов — конвенция `logging` (HTTP-поля, рутинно-частое на
|
||||
`DEBUG`). Трансляция доменных ошибок наружу — конвенция `errors`
|
||||
|
||||
Reference in New Issue
Block a user