40 lines
5.0 KiB
Markdown
40 lines
5.0 KiB
Markdown
# Редакторское ревью: октябрь 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 выполнена после общего рендера; текстовые блоки не обрезаны.
|