время: приём чужого офсета и регистрация исключений линтера

- arch R13: валидное по RFC 3339 значение с чужим офсетом нормализуется при
  разборе; канонический вид — обязательство писателя, не контракт с партнёром
- go R13: исключение регистрируется директивой //nolint на месте вызова, а не
  exclude-записью в конфиге, которая адресует путём и отвязывается
This commit is contained in:
av
2026-07-25 20:15:36 +03:00
parent f073a68f75
commit 972627f641
2 changed files with 36 additions and 3 deletions
+15
View File
@@ -60,6 +60,21 @@
разберёт час перехода на зимнее время: этот час идёт дважды, две записи
получают одинаковую метку, и порядок между ними не восстанавливается ничем.
### R13. Чужой вход нормализуется при разборе, а не отклоняется
**ДОЛЖЕН.** Валидное по RFC 3339 значение с офсетом, отличным от `Z`, или с
долями секунды принимается от внешней системы и приводится к каноническому
виду (R1) в точке разбора (R5).
**Почему.** Канонический вид — обязательство нашего писателя, а не
контракт, наложенный на внешние системы: `…14:23:45+03:00` называет тот же
момент, что `…11:23:45Z`, и отклонять его — значит ломать интеграцию со
стороной, которая стандарт соблюла. Пропущенное же как есть, такое значение
нарушает форму и ширину носителя (R1, R2) и портит сортировку выборочно —
только на записях, пришедших извне, и далеко от места разбора. Нормализация
в единой точке разбора оставляет ровно одно место, где неканонический вид
существует, — по ту сторону границы его уже нет.
### R5. Единая точка получения «сейчас», форматирования и разбора
**ДОЛЖЕН.** Один модуль отдаёт текущий момент, он же форматирует и разбирает