Files
2026-07-31 22:26:56 +03:00

40 lines
5.2 KiB
Markdown
Raw Permalink 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
Пакет переписан как три самостоятельных материала о надёжности: совместимая миграция схемы, retry/idempotency и incident runbook. Исторические slug и имена assets сохранены, технические title/desc/alt/caption обновлены.
## Три содержательных прохода
### `editorial-2027-11-practice-mistakes-revisions`
1. Факты и пример: до — вопрос о пересмотре совета без базы; после — `classifyMigrationStep` с unsafe/expand/switch/contract и совместимостью reader/writer. Причина: миграция должна иметь проверяемую матрицу, а не обещание безопасного перехода.
2. Структура и голос: до — временная линия без реальной DDL-логики; после — symptom блокировки, expand/dual write/switch/contract, таблица и порядок rollback. Причина: reader должен увидеть, где остановиться до удаления колонки.
3. Визуал и доступность: до — timeline будущей коррекции; после — техническая timeline четырёх фаз с контрольной точкой проверки данных. Причина: схема связывает время и совместимость без мета-сюжета.
### `editorial-2027-11-mechanism-mistakes-revisions`
1. Факты и пример: до — condition/correction evaluator; после — `calculateRetryDelay` с exponential cap и фиксированным jitter, включая invalid input. Причина: пример должен показывать реальный механизм backoff.
2. Структура и голос: до — абстрактная передача вопроса; после — право на retry, таблица статусов 429/503/timeout, idempotency key, deadline и порядок настройки. Причина: backoff нельзя обсуждать без семантики операции.
3. Визуал и доступность: до — матрица неизвестных полей; после — матрица сигнала, решения, задержки и риска с отдельной строкой POST timeout. Причина: визуал предотвращает чтение retry как универсального исправления.
### `editorial-2027-11-field-mistakes-revisions`
1. Факты и пример: до — hand-off вопроса о correction; после — `classifyIncidentSignal` с приоритетом 5xx/error rate над latency и отдельной проверкой. Причина: runbook требует наблюдаемого входа и порога.
2. Структура и голос: до — текст о будущей истории исправления; после — symptom, scope, hypothesis, одно обратимое действие, recovery criteria и ordered incident route. Причина: оператор должен получить следующий безопасный шаг.
3. Визуал и доступность: до — evidence hand-off loop; после — петля `Симптом → Гипотеза → Действие → Проверка` и остановка без verification. Причина: рисунок показывает закрытие цикла по метрике.
## Источники и границы применения
- [PostgreSQL 16 Documentation, Modifying Tables](https://www.postgresql.org/docs/16/ddl-alter.html), версия 16: DDL и ограничения операций; не заменяет проверку конкретного кластера.
- [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html), июнь 2022 года: HTTP semantics и идемпотентность методов; не задаёт retry policy.
- [RFC 6585](https://www.rfc-editor.org/rfc/rfc6585.html), апрель 2012 года: 429 Too Many Requests; не выбирает задержку.
- [NIST SP 800-61r2](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-61r2.pdf), revision 2, май 2012 года: структура incident handling; не знает локальные пороги и права.
## Проверки
- `node --check scripts/upgrade-2027-11.mjs` — PASS.
- `node scripts/upgrade-2027-11.mjs --verify-fixture` — PASS, 9/9.
- `npm run audit:draft -- scripts/upgrade-2027-11.mjs` — PASS, 5592 / 5389 / 5381 body chars.
- `npm run audit:articles -- editorial-2027-11-practice-mistakes-revisions editorial-2027-11-mechanism-mistakes-revisions editorial-2027-11-field-mistakes-revisions` — PASS.
- `xmllint --noout` и SVG safety scan — PASS для трёх существующих assets.
- Ручная проверка Sharp 375 px выполнена после общего рендера; стрелки и подписи помещаются в canvas.