Files
progcode/editorial/reviews/2027-10-draft.md
T
2026-07-31 22:26:56 +03:00

40 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Редакторское ревью: октябрь 2027
Пакет переписан как три технические статьи о границах HTTP-соединения: deadline, TLS-сертификат и Trace Context. Исторические slug сохранены; внутренние редакционные статусы из body удалены.
## Три содержательных прохода
### `editorial-2027-10-practice-long-form-interview`
1. Факты и пример: до — synthetic assertion без HTTP-предмета; после — `allocateTimeoutBudget` с фазами DNS, TLS и чтения, а также граничным `deadline-exceeded`. Причина: runnable-код должен показывать абсолютный бюджет, не изображать интервью или процесс.
2. Структура и голос: до — рассуждение о сборе evidence; после — symptom и цена retry в начале, таблица фаз, объяснение идемпотентности, ordered diagnostic route и ограничения. Причина: общий timeout нужно разложить до выбора действия.
3. Визуал и доступность: до — claim/evidence map; после — схема deadline и фаз с русскими title/desc, alt/caption. Причина: на 375 px видно, что новая фаза получает только остаток.
### `editorial-2027-10-mechanism-long-form-interview`
1. Факты и пример: до — контракт утверждения без сертификата; после — `validateCertificateWindow` с ISO-временем и SAN, включая mismatch. Причина: «curl работает» нужно разбирать через предметные проверки TLS.
2. Структура и голос: до — boundary matrix для скрытого источника; после — цепочка trust, срок, hostname и алгоритм, затем безопасный маршрут диагностики без `insecure`. Причина: причина ошибки должна быть отделена от обхода проверки.
3. Визуал и доступность: до — evidence matrix; после — таблица слоёв срока, SAN, цепочки и policy с ясной красной границей. Причина: рисунок объясняет, что шифрование не равно доверию.
### `editorial-2027-10-field-long-form-interview`
1. Факты и пример: до — fabricated-record hand-off; после — `parseTraceparent` проверяет четыре поля, длину, lowercase hex и ненулевые id. Причина: пример должен валидировать Trace Context на HTTP-входе.
2. Структура и голос: до — заметка о speaker/transcript; после — symptom потерянного запроса, proxy boundary, structured logs, ordered diagnostic route и ограничение доверия. Причина: читатель получает способ найти потерянный контекст.
3. Визуал и доступность: до — editorial hand-off loop; после — `Клиент → Gateway → Service` и controlled fallback для плохого header. Причина: связь через proxy стала предметно проверяемой и читаемой на мобильной ширине.
## Источники и границы применения
- [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html), июнь 2022 года: HTTP-обмен; не измеряет фазы конкретной библиотеки.
- [RFC 8446](https://www.rfc-editor.org/rfc/rfc8446.html), август 2018 года: TLS 1.3 handshake; не задаёт local timeout policy.
- [RFC 5280](https://www.rfc-editor.org/rfc/rfc5280.html), май 2008 года: X.509/PKIX path validation; не заменяет trust store ОС.
- [W3C Trace Context Level 1](https://www.w3.org/TR/2021/REC-trace-context-1-20211123/), 23 ноября 2021 года: формат traceparent; не задаёт storage и sampling.
## Проверки
- `node --check scripts/upgrade-2027-10.mjs` — PASS.
- `node scripts/upgrade-2027-10.mjs --verify-fixture` — PASS, 9/9.
- `npm run audit:draft -- scripts/upgrade-2027-10.mjs` — PASS, 5804 / 5532 / 5645 body chars.
- `npm run audit:articles -- editorial-2027-10-practice-long-form-interview editorial-2027-10-mechanism-long-form-interview editorial-2027-10-field-long-form-interview` — PASS.
- `xmllint --noout` и SVG safety scan — PASS для трёх существующих assets.
- Ручная проверка Sharp 375 px выполнена после общего рендера; текстовые блоки не обрезаны.