ссылки между конвенциями переписаны на темы и идентификаторы
- 41 ссылка вида `lang/go/logging.md` заменена на «конвенция `logging`», идентификатор правила или «базовый слой» для своей же темы - MIGR-8 больше не отсылает за форматом меток времени, а называет его; MIGR-11 перенёс ссылку на KEYS-1/KEYS-2 из нормы в «Почему»
This commit is contained in:
@@ -44,7 +44,7 @@ dev-выводом перестаёшь ежедневно гонять собс
|
||||
### SLOG-3. Время записи — UTC
|
||||
|
||||
**ДОЛЖЕН.** `time` приводится к UTC через `ReplaceAttr` по `slog.TimeKey`
|
||||
(см. `lang/go/time.md`).
|
||||
(см. конвенцию `time`).
|
||||
|
||||
**Почему.** По умолчанию UTC не получится: встроенные хендлеры пишут время
|
||||
в зоне самого `time.Time`, то есть в локальной зоне процесса. Записи одного
|
||||
@@ -54,8 +54,8 @@ dev-выводом перестаёшь ежедневно гонять собс
|
||||
событий.
|
||||
|
||||
Точность `JSONHandler` — миллисекунды фиксированной ширины; это другая
|
||||
точность, чем в БД, и по `arch/time.md` так и должно быть: ширина
|
||||
фиксируется на носитель.
|
||||
точность, чем в БД, и по `TIME-2` так и должно быть: ширина фиксируется
|
||||
на носитель.
|
||||
|
||||
## Сообщение
|
||||
|
||||
@@ -243,7 +243,7 @@ dev-выводом перестаёшь ежедневно гонять собс
|
||||
|
||||
**НЕ СЛЕДУЕТ.** Отдельный случайный `trace_id` не заводится, если у
|
||||
сущностей есть стабильные уникальные идентификаторы. (Как их выбирают —
|
||||
`arch/db-identifiers.md`, если конвенция взята.)
|
||||
конвенция `db-identifiers`, если взята.)
|
||||
|
||||
**Почему.** Идентификатор сущности уже существует, стабилен между
|
||||
процессами и во времени — по нему собираются записи не одного прохода, а
|
||||
@@ -347,7 +347,7 @@ ctx = logctx.With(ctx, log) // достаём логгер из ctx в кажд
|
||||
|
||||
Нарушение инварианта в собственном коде — паника, недостижимая ветка — в
|
||||
таблицу не входит: это не доменный отказ, и логирует его recover-граница
|
||||
вместе со стеком (`lang/go/errors.md`). Искать его класс здесь не нужно.
|
||||
вместе со стеком (конвенция `errors`). Искать его класс здесь не нужно.
|
||||
|
||||
Мимо таблицы идёт и доменная ошибка, которой нет в маппинге: класса у неё
|
||||
нет, потому что её просто забыли завести. Она логируется `ERROR` с
|
||||
@@ -505,7 +505,7 @@ API-ключи и токены, `Authorization`-заголовки, аутент
|
||||
### SLOG-37. `*url.Error` санитизируется на границе клиента
|
||||
|
||||
**ДОЛЖЕН.** Ошибка разворачивается в первопричину **до** лога и до
|
||||
обёртки — раньше трансляции в доменную (`lang/go/errors.md`).
|
||||
обёртки — раньше трансляции в доменную (конвенция `errors`).
|
||||
|
||||
**Почему.** `*url.Error` встраивает полный URL запроса, а секрет живёт
|
||||
прямо в нём: токен в пути, `api_key` в query. Go редактирует только пароль
|
||||
@@ -553,11 +553,11 @@ API-ключи и токены, `Authorization`-заголовки, аутент
|
||||
|
||||
## Связано
|
||||
|
||||
- `arch/time.md` — точность и зона меток времени фиксируются на носитель.
|
||||
- `lang/go/time.md` — как ставится UTC в `ReplaceAttr` (SLOG-3).
|
||||
- `lang/go/errors.md` — трансляция ошибки в доменную, порядок относительно
|
||||
- конвенция `time` — точность и зона меток времени фиксируются на носитель;
|
||||
как ставится UTC в `ReplaceAttr` (SLOG-3).
|
||||
- конвенция `errors` — трансляция ошибки в доменную, порядок относительно
|
||||
санитизации (SLOG-37).
|
||||
- `arch/db-identifiers.md` — откуда берутся стабильные идентификаторы,
|
||||
- конвенция `db-identifiers` — откуда берутся стабильные идентификаторы,
|
||||
на которых держится корреляция (SLOG-18).
|
||||
|
||||
<!-- local:механизировано -->
|
||||
|
||||
Reference in New Issue
Block a user