Files
progcode/editorial/production/archive-rewrite-queue.md
huncode 90692f0f16
Build and deploy / deploy (push) Successful in 15s
raise editorial quality gate and revise 2018 spring
2026-07-31 09:20:37 +03:00

1085 lines
128 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.
# Очередь полной замены редакционного архива
> Инвентаризация выполнена по `web/data/articles.json`. Область работы — только статьи со slug `editorial-`. Три январские статьи 2018 года уже прошли ревью и в эту очередь не входят.
## Граница и арифметика очереди
- Всего slug `editorial-`: **358**.
- Исключены как уже отревьюированные: `editorial-2018-01-practice-bitrix-elements`, `editorial-2018-01-mechanism-bitrix-elements`, `editorial-2018-01-field-bitrix-elements`.
- К переписыванию остаются **355 статей**.
- В архиве две неполные календарные серии: октябрь 2018 и январь 2019 содержат по две статьи. Поэтому очередь состоит из **118 партий по три статьи** и одного явно помеченного одиночного выпуска `О-01`. Это не ошибка планирования: 355 не делится на 3. Добавлять несуществующий slug или повторять статью ради кратности нельзя.
Каждая тройка — один исследовательский и редакционный спринт, а не три варианта одного текста. В серии:
- `practice` даёт воспроизводимый порядок действий;
- `mechanism` объясняет причинную модель и границы состояния;
- `field` разбирает сбой, ограничение или решение в неоднозначном случае.
В неполных сериях каждый материал обязан сам содержать практический пример и порядок проверки: отдельной `practice`-статьи там нет.
## Количество статей по годам и месяцам
| Год | Янв | Фев | Мар | Апр | Май | Июн | Июл | Авг | Сен | Окт | Ноя | Дек | Итого |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| 2018 | 0* | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | 32 |
| 2019 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 35 |
| 2020 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 36 |
| 2021 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 36 |
| 2022 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 36 |
| 2023 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 36 |
| 2024 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 36 |
| 2025 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 36 |
| 2026 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 36 |
| 2027 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 36 |
| **Всего** | **2** | **27** | **27** | **27** | **27** | **27** | **27** | **27** | **27** | **26** | **27** | **27** | **355** |
\* В январе 2018 есть три статьи, но они исключены из очереди как уже прошедшие ревью.
## Тематические линии и зрелость автора
| Линия | Период | Статей | Уровень голоса | Что развивается |
| --- | --- | ---: | --- | --- |
| Legacy PHP, Bitrix и клиентская сборка | 2018 | 32 | М1 | Локальная диагностика, безопасная интеграция, первые границы между PHP и JavaScript |
| Frontend, API и данные | 2019 | 35 | М2 | T-shape: браузер, HTTP, типы, SQL, командные договорённости |
| Delivery, backend и наблюдаемость | 2020 | 36 | М3 | Эксплуатационная ответственность: релизы, логи, метрики, инциденты |
| Данные и распределённые системы | 2021 | 36 | М4 | Контракты, конкуренция, очереди, архитектурные компромиссы |
| Интерфейсы и пользовательский сценарий | 2022 | 36 | М5 | Рендеринг, доступность, сеть, UX и измеримые фронтенд-ограничения |
| Безопасность, качество и устойчивость | 2023 | 36 | М6 | Модель угроз, проверяемые контроли, контрактные и e2e-проверки |
| Модернизация и платформа | 2024 | 36 | М7 | Стоимость изменений, границы модулей, доставка, поддержка нескольких команд |
| AI-инструменты и инженерная коммуникация | 2025 | 36 | М8 | Оценка рисков, приватность, автоматизация, исследовательская дисциплина |
| Сквозная архитектура | 2026 | 36 | М9 | Платформенные интерфейсы, отказоустойчивость, техническое лидерство |
| Ретроспектива и наставничество | 2027 | 36 | М10 | Обобщения только через доказательства, исправление старых советов, передача практики |
## Легенда для исполнения
### Голос и целевой объём
| Код | Голос автора | Обычный объём основного текста |
| --- | --- | --- |
| М1 | Практик 2018 года: спокойный разбор одной ошибки, короткие выводы, без архитектурных деклараций | 5–8 тыс. знаков |
| М2 | Web-инженер 2019 года: связывает браузер, API и данные, сравнивает два варианта | 6–9 тыс. знаков |
| М3 | Ответственный backend/ops-инженер: работает через наблюдения, измерения и отказные сценарии | 7–10 тыс. знаков |
| М4 | Системный инженер: называет инварианты, контракты и цену компромисса | 8–11 тыс. знаков |
| М5 | Frontend-системщик: начинает с пользовательского сценария и проверяет его в браузере | 7–10 тыс. знаков |
| М6 | Инженер надёжности и безопасности: формулирует угрозу, контроль и доказательство работы контроля | 8–11 тыс. знаков |
| М7 | Техлид платформы: объясняет стоимость, порядок миграции и влияние на команды | 8–12 тыс. знаков |
| М8 | Наставник-исследователь: отделяет измеренное от предположения, делает вывод воспроизводимым | 8–12 тыс. знаков |
| М9 | Архитектор-практик: связывает интерфейсы команд, данные, эксплуатацию и решение | 9–13 тыс. знаков |
| М10 | Рефлексивный эксперт: уточняет границы опыта, исправляет себя и оставляет метод | 9–15 тыс. знаков |
### Типы первичных источников
| Тип | Что именно собирать |
| --- | --- |
| Официальная документация | Документация вендора, спецификация, RFC, release notes или исходный код проекта-владельца |
| Воспроизводимое наблюдение | Минимальный стенд, трасса, лог, дамп конфигурации, тест, benchmark или артефакт CI |
| Артефакт проекта | Контракт, ADR, схема, история изменений, конфигурация, метрика, постмортем или тестовый набор с понятным происхождением |
| Официальное уведомление | Security advisory, CVE-выпуск, лицензия, policy/DPA, прайс-лист или условия платформы |
Во всех партиях ниже указана пара разных типов. До публикации конкретные ссылки и версии должны попасть в статью, а не остаться в рабочей заметке.
### Риски фактической устарелости
| Код | Риск и обязательная проверка |
| --- | --- |
| Р-В | Версия продукта, API, фреймворка или браузера: назвать версию и перепроверить перед выпуском |
| Р-Б | Поведение браузера, ОС или окружения: проверить минимум в целевых средах |
| Р-О | Нагрузка, метрика или эксплуатационный эффект: приложить условия замера и не обобщать результат |
| Р-З | Безопасность: сверить актуальные advisory, алгоритмы, заголовки и настройки на дату публикации |
| Р-К | Командные, продуктовые или интервью-выводы: обезличить данные и отделить контекст команды от общего правила |
| Р-Ф | Дата статьи ещё не наступила на момент подготовки очереди: не выдавать прогноз или запланированную практику за наблюдавшийся факт |
## Последовательность партий
### 2018 — локальная практика PHP, Bitrix и старого frontend
- **П01 · 2018-02 · Диагностика PHP-интеграции**
- **Slug:** `editorial-2018-02-practice-php-diagnostics`, `editorial-2018-02-mechanism-php-diagnostics`, `editorial-2018-02-field-php-diagnostics`.
- **Техническая проблема:** внешний вызов возвращает пустой результат, а ошибка теряется между обработчиком, логом и HTTP-ответом; развести проверку входа, захват исключения и отображение ошибки.
- **Источники:** официальная документация PHP по ошибкам и исключениям + минимальный падающий стенд с логом запроса.
- **Визуал:** схема распространения ошибки и фрагмент аннотированного лога.
- **Голос / объём:** М1, 5,5–7 тыс. знаков.
- **Зависимости и риск:** опирается на уже отревьюированный январский разбор Bitrix; Р-В.
- **П02 · 2018-03 · Безопасная загрузка файлов**
- **Slug:** `editorial-2018-03-practice-safe-uploads`, `editorial-2018-03-mechanism-safe-uploads`, `editorial-2018-03-field-safe-uploads`.
- **Техническая проблема:** расширение, MIME-тип, временный файл и конечный путь говорят разное; показать, где проверять файл до перемещения и как не превратить загрузку в запись произвольного файла.
- **Источники:** официальная документация PHP по `$_FILES` и файловым операциям + контролируемые multipart-фикстуры с ошибочными файлами.
- **Визуал:** границы доверия загрузки и таблица «сигнал → проверка → действие».
- **Голос / объём:** М1, 6–8 тыс. знаков.
- **Зависимости и риск:** П01; Р-В, Р-З.
- **П03 · 2018-04 · Символьный код и URL Bitrix**
- **Slug:** `editorial-2018-04-practice-bitrix-slugs`, `editorial-2018-04-mechanism-bitrix-slugs`, `editorial-2018-04-field-bitrix-slugs`.
- **Техническая проблема:** два элемента получают одинаковый URL, транслит меняет ожидаемый код, а проверка уникальности происходит поздно; разделить генерацию, нормализацию и запись.
- **Источники:** официальная документация Bitrix по транслитерации и инфоблокам + интеграционная фикстура с коллизиями символьных кодов.
- **Визуал:** путь «имя → нормализация → проверка → URL» и таблица коллизий.
- **Голос / объём:** М1, 6–8 тыс. знаков.
- **Зависимости и риск:** январские Bitrix-статьи; Р-В.
- **П04 · 2018-05 · Старый jQuery без двойных обработчиков**
- **Slug:** `editorial-2018-05-practice-legacy-jquery`, `editorial-2018-05-mechanism-legacy-jquery`, `editorial-2018-05-field-legacy-jquery`.
- **Техническая проблема:** повторная инициализация вешает несколько обработчиков, глобальное состояние расходится с DOM; показать проверяемый жизненный цикл виджета.
- **Источники:** официальная документация jQuery по событиям и data API + браузерная трасса обработчиков на минимальной странице.
- **Визуал:** последовательность DOM-событий и дифф «до / после».
- **Голос / объём:** М1, 6–8 тыс. знаков.
- **Зависимости и риск:** независимая партия; Р-В, Р-Б.
- **П05 · 2018-06 · Точки входа Webpack и циклические зависимости**
- **Slug:** `editorial-2018-06-practice-webpack-entry`, `editorial-2018-06-mechanism-webpack-entry`, `editorial-2018-06-field-webpack-entry`.
- **Техническая проблема:** код попадает в лишний bundle или модуль приходит `undefined` из-за цикла; разобрать граф импорта, entry и общий chunk на реальном `stats.json`.
- **Источники:** официальная документация Webpack + артефакт сборки `stats.json` и лог минимальной сборки.
- **Визуал:** граф зависимостей и снимок анализа bundle.
- **Голос / объём:** М1, 6–8 тыс. знаков.
- **Зависимости и риск:** П04; Р-В.
- **П06 · 2018-07 · Таймауты веб-интеграции**
- **Slug:** `editorial-2018-07-practice-http-timeouts`, `editorial-2018-07-mechanism-http-timeouts`, `editorial-2018-07-field-http-timeouts`.
- **Техническая проблема:** connect-, read- и общий таймаут смешаны, повторный запрос усиливает сбой; разделить бюджеты времени и правила повторов.
- **Источники:** документация HTTP-клиента и соответствующая спецификация HTTP + трасса `curl`/тестового сервера с управляемой задержкой.
- **Визуал:** временная шкала запроса и матрица таймаутов.
- **Голос / объём:** М1, 6–8 тыс. знаков.
- **Зависимости и риск:** П01; Р-В, Р-О.
- **П07 · 2018-08 · TLS и CA bundle в PHP**
- **Slug:** `editorial-2018-08-practice-tls-ca`, `editorial-2018-08-mechanism-tls-ca`, `editorial-2018-08-field-tls-ca`.
- **Техническая проблема:** проверка цепочки сертификатов падает, и разработчик отключает verification вместо исправления trust store; провести диагностику цепочки и настроек клиента.
- **Источники:** официальная документация OpenSSL/cURL + вывод проверки сертификатной цепочки на тестовом хосте.
- **Визуал:** схема цепочки доверия и таблица диагностических команд.
- **Голос / объём:** М1, 6–8 тыс. знаков.
- **Зависимости и риск:** П06; Р-В, Р-З.
- **П08 · 2018-09 · Воспроизводимое окружение Windows**
- **Slug:** `editorial-2018-09-practice-windows-dev-env`, `editorial-2018-09-mechanism-windows-dev-env`, `editorial-2018-09-field-windows-dev-env`.
- **Техническая проблема:** один и тот же проект запускается по-разному из-за PATH, кодировок, версий бинарников и локальных настроек; зафиксировать минимальный снимок окружения.
- **Источники:** официальная документация Windows и инструментов среды + сохранённый вывод версий, переменных и шага воспроизведения.
- **Визуал:** слои окружения и таблица «машина A / машина B».
- **Голос / объём:** М1, 5–7 тыс. знаков.
- **Зависимости и риск:** независимая партия; Р-В, Р-Б.
- **П09 · мост 2018-10 → 2019-01 · Legacy-интеграция формы и клиентского bundle**
- **Slug:** `editorial-2018-10-mechanism-image-workflow`, `editorial-2018-10-field-image-workflow`, `editorial-2019-01-mechanism-jquery-webpack`.
- **Техническая проблема:** форма с изображением и legacy-плагин пересекают серверное состояние, DOM и модульную сборку; отдельно показать владение файлом, порядок загрузки скриптов и сбой production-сборки.
- **Источники:** официальная документация Bitrix/jQuery/Webpack + браузерная и build-трасса минимального примера.
- **Визуал:** карта состояний формы и временная шкала загрузки ассетов.
- **Голос / объём:** М1 для статей 2018 года, М2 для статьи 2019 года; по 6–8 тыс. знаков.
- **Зависимости и риск:** П04, П05, январские Bitrix-статьи; Р-В, Р-Б.
- **О-01 · 2019-01 · Полевая статья о jQuery в Webpack**
- **Slug:** `editorial-2019-01-field-jquery-webpack`.
- **Техническая проблема:** плагин работает в development, но ломается после production-сборки из-за глобальной переменной, порядка исполнения или дублированного пакета; дать один проверяемый сценарий без расширения серии несуществующим slug.
- **Источники:** официальная документация Webpack и jQuery + production-артефакт, source map и браузерная network-трасса.
- **Визуал:** порядок загрузки модулей с отмеченной точкой потери глобального объекта.
- **Голос / объём:** М2, 6–8 тыс. знаков.
- **Зависимости и риск:** П04, П05, П09; Р-В, Р-Б.
- **П10 · 2018-11 · Интеграционные проверки PHP**
- **Slug:** `editorial-2018-11-practice-php-integration-tests`, `editorial-2018-11-mechanism-php-integration-tests`, `editorial-2018-11-field-php-integration-tests`.
- **Техническая проблема:** unit-тест зелёный, но запись в БД, HTTP-клиент или конфигурация ломают сценарий; определить границу интеграционного теста и управляемые внешние зависимости.
- **Источники:** официальная документация тестового фреймворка/PHP + контейнерная тестовая БД и трасса вызовов.
- **Визуал:** последовательность сценария и таблица уровней проверок.
- **Голос / объём:** М1, 7–9 тыс. знаков.
- **Зависимости и риск:** П01, П06; Р-В, Р-О.
- **П11 · 2018-12 · Рефакторинг Bitrix без большого переписывания**
- **Slug:** `editorial-2018-12-practice-legacy-refactoring`, `editorial-2018-12-mechanism-legacy-refactoring`, `editorial-2018-12-field-legacy-refactoring`.
- **Техническая проблема:** изменение legacy-кода сразу затрагивает шаблон, инфоблок и интеграцию; найти шов, поставить проверку и заменить один участок без обещания «переписать всё».
- **Источники:** официальная документация Bitrix/PHP + история изменений, тестовый контур и карта зависимостей конкретного модуля.
- **Визуал:** карта швов legacy-модуля и таблица безопасных шагов.
- **Голос / объём:** М1, 7–9 тыс. знаков.
- **Зависимости и риск:** П01–П10 и январская серия 2018; Р-В, Р-К.
### 2019 — browser, API, типы и границы данных
- **П12 · 2019-02 · ES-модули в браузере**
- **Slug:** `editorial-2019-02-practice-es-modules`, `editorial-2019-02-mechanism-es-modules`, `editorial-2019-02-field-es-modules`.
- **Техническая проблема:** модуль грузится не в том порядке, путь резолвится иначе, чем в сборщике, или скрипт выполняется дважды; отделить нативный модульный сценарий от bundler-сценария.
- **Источники:** спецификация ECMAScript/официальная документация браузера + network-трасса и минимальный граф модулей.
- **Визуал:** граф импорта и последовательность загрузки `module`.
- **Голос / объём:** М2, 6–8 тыс. знаков.
- **Зависимости и риск:** П05, П09, О-01; Р-В, Р-Б.
- **П13 · 2019-03 · Event loop и асинхронность**
- **Slug:** `editorial-2019-03-practice-event-loop`, `editorial-2019-03-mechanism-event-loop`, `editorial-2019-03-field-event-loop`.
- **Техническая проблема:** интерфейс зависает или порядок `Promise`-колбэков неожиданен; развести task, microtask и долгую синхронную работу на измеримом примере.
- **Источники:** спецификации ECMAScript/HTML + Chrome Performance trace минимального сценария.
- **Визуал:** временная шкала event loop и таблица порядка выполнения.
- **Голос / объём:** М2, 7–9 тыс. знаков.
- **Зависимости и риск:** П12; Р-В, Р-Б.
- **П14 · 2019-04 · Валидация форм**
- **Slug:** `editorial-2019-04-practice-forms-validation`, `editorial-2019-04-mechanism-forms-validation`, `editorial-2019-04-field-forms-validation`.
- **Техническая проблема:** правила в браузере и на сервере расходятся, асинхронный ответ перезаписывает новое состояние, ошибка не связана с полем; описать конечный автомат формы.
- **Источники:** спецификация HTML/ARIA + фикстура формы с сетевой задержкой и accessibility tree.
- **Визуал:** автомат состояний формы и матрица ошибок.
- **Голос / объём:** М2, 7–9 тыс. знаков.
- **Зависимости и риск:** П12, П13; Р-Б, Р-В.
- **П15 · 2019-05 · Кеширование HTTP-ответов**
- **Slug:** `editorial-2019-05-practice-http-caching`, `editorial-2019-05-mechanism-http-caching`, `editorial-2019-05-field-http-caching`.
- **Техническая проблема:** пользователь видит старые данные из-за неверных `Cache-Control`, `Vary` или ключа CDN; показать путь решения от заголовка до повторного запроса.
- **Источники:** актуальная спецификация HTTP caching + заголовки и трасса браузера/CDN для контролируемого ответа.
- **Визуал:** путь запроса через кеши и таблица условий попадания.
- **Голос / объём:** М2, 7–9 тыс. знаков.
- **Зависимости и риск:** П06; Р-В, Р-О.
- **П16 · 2019-06 · Контракт REST API**
- **Slug:** `editorial-2019-06-practice-rest-api`, `editorial-2019-06-mechanism-rest-api`, `editorial-2019-06-field-rest-api`.
- **Техническая проблема:** клиент ломается не на URL, а на статусе, ошибке, пагинации или необязательном поле; превратить договорённость в проверяемый контракт.
- **Источники:** спецификация HTTP/OpenAPI + схема сервиса и результат контрактного теста.
- **Визуал:** последовательность запроса и таблица контракта ответа.
- **Голос / объём:** М2, 7–9 тыс. знаков.
- **Зависимости и риск:** П15; Р-В.
- **П17 · 2019-07 · Индексы и планы SQL-запросов**
- **Slug:** `editorial-2019-07-practice-sql-indexes`, `editorial-2019-07-mechanism-sql-indexes`, `editorial-2019-07-field-sql-indexes`.
- **Техническая проблема:** добавленный индекс не ускоряет запрос из-за селективности, статистики или формы условия; читать `EXPLAIN ANALYZE` вместо угадывания.
- **Источники:** официальная документация PostgreSQL + воспроизводимый запрос, план и условия замера.
- **Визуал:** дерево плана и таблица «план / время / число строк».
- **Голос / объём:** М2, 8–10 тыс. знаков.
- **Зависимости и риск:** независимая база для следующих data-партий; Р-В, Р-О.
- **П18 · 2019-08 · Производительность первой загрузки**
- **Slug:** `editorial-2019-08-practice-frontend-performance`, `editorial-2019-08-mechanism-frontend-performance`, `editorial-2019-08-field-frontend-performance`.
- **Техническая проблема:** страница «тяжёлая» без установленного виновника; отделить сетевую задержку, JavaScript, CSS и изображение на одном профиле загрузки.
- **Источники:** документация Web Vitals/браузера + Performance trace и размер bundle на одном стенде.
- **Визуал:** waterfall первой загрузки и график критического пути.
- **Голос / объём:** М2, 8–10 тыс. знаков.
- **Зависимости и риск:** П05, П13; Р-Б, Р-О.
- **П19 · 2019-09 · Базовая доступность**
- **Slug:** `editorial-2019-09-practice-accessibility-basics`, `editorial-2019-09-mechanism-accessibility-basics`, `editorial-2019-09-field-accessibility-basics`.
- **Техническая проблема:** интерфейс выглядит рабочим, но фокус теряется, кнопка не имеет имени или ошибка не объявляется; проверить семантику в браузере, а не только по DOM.
- **Источники:** WCAG/спецификация HTML и ARIA + дерево доступности и ручной сценарий клавиатуры.
- **Визуал:** маршрут фокуса и таблица «визуальный элемент → семантика».
- **Голос / объём:** М2, 7–9 тыс. знаков.
- **Зависимости и риск:** П14; Р-Б.
- **П20 · 2019-10 · Переход на TypeScript**
- **Slug:** `editorial-2019-10-practice-typescript-migration`, `editorial-2019-10-mechanism-typescript-migration`, `editorial-2019-10-field-typescript-migration`.
- **Техническая проблема:** миграция превращается в массовый `any` и блокирует доставку; выбрать границы типов, измерить охват и сохранить рабочую сборку.
- **Источники:** официальная документация TypeScript и release notes компилятора + журнал ошибок `tsc` и дифф миграции модуля.
- **Визуал:** график охвата типов и таблица границ `JS ↔ TS`.
- **Голос / объём:** М2, 8–10 тыс. знаков.
- **Зависимости и риск:** П12, П13; Р-В.
- **П21 · 2019-11 · Воспроизводимая сборка**
- **Slug:** `editorial-2019-11-practice-reproducible-builds`, `editorial-2019-11-mechanism-reproducible-builds`, `editorial-2019-11-field-reproducible-builds`.
- **Техническая проблема:** один commit выдаёт разные артефакты из-за плавающей зависимости, среды или времени сборки; зафиксировать входы и проверить хеш результата.
- **Источники:** официальная документация пакетного менеджера/сборщика + lockfile, лог CI и сравнение хешей артефактов.
- **Визуал:** граф входов сборки и таблица различий артефактов.
- **Голос / объём:** М2, 7–9 тыс. знаков.
- **Зависимости и риск:** П05, П20; Р-В, Р-З.
- **П22 · 2019-12 · Ответственность за код**
- **Slug:** `editorial-2019-12-practice-code-ownership`, `editorial-2019-12-mechanism-code-ownership`, `editorial-2019-12-field-code-ownership`.
- **Техническая проблема:** баг проходит через несколько модулей, а владелец решения неясен; отделить владение кодом, ревью и эксплуатационную ответственность.
- **Источники:** история репозитория/CODEOWNERS и правила review + обезличенные данные по issue и ревью.
- **Визуал:** карта владения и временная шкала передачи инцидента.
- **Голос / объём:** М2, 7–9 тыс. знаков.
- **Зависимости и риск:** П10, П21; Р-К.
### 2020 — delivery, backend и наблюдаемость
- **П23 · 2020-01 · Локальная разработка в Docker**
- **Slug:** `editorial-2020-01-practice-docker-local`, `editorial-2020-01-mechanism-docker-local`, `editorial-2020-01-field-docker-local`.
- **Техническая проблема:** контейнер маскирует разницу между локальными томами, сетью и переменными среды; собрать короткий сценарий, в котором «работает у меня» становится проверяемой конфигурацией.
- **Источники:** официальная документация Docker/Compose + `compose`-конфигурация и логи чистого запуска.
- **Визуал:** слои локального окружения и путь запроса через контейнеры.
- **Голос / объём:** М3, 7–9 тыс. знаков.
- **Зависимости и риск:** П08, П21; Р-В.
- **П24 · 2020-02 · Настройки и секреты**
- **Slug:** `editorial-2020-02-practice-configs-secrets`, `editorial-2020-02-mechanism-configs-secrets`, `editorial-2020-02-field-configs-secrets`.
- **Техническая проблема:** секрет попадает в репозиторий, лог или образ, а конфигурация окружений расходится; показать путь секрета и ротацию вместо совета «не коммитить пароль».
- **Источники:** официальная документация хранилища секретов/VCS + инвентаризация переменных и безопасный отчёт сканера.
- **Визуал:** границы доверия секрета и таблица ротации.
- **Голос / объём:** М3, 7–9 тыс. знаков.
- **Зависимости и риск:** П23; Р-В, Р-З.
- **П25 · 2020-03 · Минимальный CI/CD pipeline**
- **Slug:** `editorial-2020-03-practice-ci-pipeline`, `editorial-2020-03-mechanism-ci-pipeline`, `editorial-2020-03-field-ci-pipeline`.
- **Техническая проблема:** pipeline публикует неподтверждённый артефакт или повторяет дорогую работу; определить входы, проверки, артефакт и точку остановки.
- **Источники:** официальная документация выбранного CI + конфигурация pipeline, durations и артефакты одного запуска.
- **Визуал:** временная шкала pipeline и матрица «сбой → блокирует / не блокирует».
- **Голос / объём:** М3, 7–9 тыс. знаков.
- **Зависимости и риск:** П21, П23, П24; Р-В, Р-О.
- **П26 · 2020-04 · Reverse proxy перед приложением**
- **Slug:** `editorial-2020-04-practice-reverse-proxy`, `editorial-2020-04-mechanism-reverse-proxy`, `editorial-2020-04-field-reverse-proxy`.
- **Техническая проблема:** proxy меняет IP клиента, заголовки, таймауты или кеширование, а приложение диагностирует не тот слой; разложить запрос по hop-ам.
- **Источники:** официальная документация Nginx/прокси + `curl`-, access- и upstream-логи тестового маршрута.
- **Визуал:** последовательность «клиент → proxy → приложение» и таблица заголовков.
- **Голос / объём:** М3, 7–9 тыс. знаков.
- **Зависимости и риск:** П06, П15, П23; Р-В, Р-О.
- **П27 · 2020-05 · Фоновые задачи**
- **Slug:** `editorial-2020-05-practice-background-jobs`, `editorial-2020-05-mechanism-background-jobs`, `editorial-2020-05-field-background-jobs`.
- **Техническая проблема:** задача теряется между записью, очередью и worker-ом либо выполняется повторно; зафиксировать состояние, ack и обработку poison message.
- **Источники:** официальная документация брокера/worker-библиотеки + тестовый запуск с повтором и журналом состояний.
- **Визуал:** автомат жизненного цикла задачи и таблица retry-политики.
- **Голос / объём:** М3, 7–10 тыс. знаков.
- **Зависимости и риск:** П23, П25; Р-В, Р-О.
- **П28 · 2020-06 · Повторы запросов и идемпотентность**
- **Slug:** `editorial-2020-06-practice-retry-idempotency`, `editorial-2020-06-mechanism-retry-idempotency`, `editorial-2020-06-field-retry-idempotency`.
- **Техническая проблема:** таймаут скрывает успешную операцию, повтор создаёт второй платёж или запись; связать ключ идемпотентности, хранилище результата и временной бюджет.
- **Источники:** спецификация HTTP и документация клиента + трасса «ответ потерян, операция выполнена» на стенде.
- **Визуал:** временная шкала первого и повторного запроса.
- **Голос / объём:** М3, 8–10 тыс. знаков.
- **Зависимости и риск:** П06, П16, П27; Р-В, Р-О.
- **П29 · 2020-07 · Структурированные логи**
- **Slug:** `editorial-2020-07-practice-structured-logs`, `editorial-2020-07-mechanism-structured-logs`, `editorial-2020-07-field-structured-logs`.
- **Техническая проблема:** строки логов нельзя связать в один запрос, а полезный контекст появляется после инцидента; определить обязательные поля и момент их добавления.
- **Источники:** схема логирования проекта/официальная документация выбранного логгера + запрос к журналу по одному trace/correlation ID.
- **Визуал:** схема события лога и путь корреляции.
- **Голос / объём:** М3, 7–9 тыс. знаков.
- **Зависимости и риск:** П27, П28; Р-В, Р-К.
- **П30 · 2020-08 · Метрики приложения**
- **Slug:** `editorial-2020-08-practice-metrics-basics`, `editorial-2020-08-mechanism-metrics-basics`, `editorial-2020-08-field-metrics-basics`.
- **Техническая проблема:** график показывает число запросов, но не объясняет деградацию; выбрать signal, label и порог, которые отвечают на конкретный операционный вопрос.
- **Источники:** официальная документация Prometheus/экспортера + сырые метрики, запрос и результат контролируемой нагрузки.
- **Визуал:** график сигнала во времени и таблица cardinality-ограничений.
- **Голос / объём:** М3, 7–10 тыс. знаков.
- **Зависимости и риск:** П29; Р-В, Р-О.
- **П31 · 2020-09 · Трассировка запроса**
- **Slug:** `editorial-2020-09-practice-tracing-basics`, `editorial-2020-09-mechanism-tracing-basics`, `editorial-2020-09-field-tracing-basics`.
- **Техническая проблема:** задержка распределена между сервисами, но лог не показывает критический путь; провести trace context через границы и прочитать один waterfall.
- **Источники:** спецификация OpenTelemetry + экспорт одного trace и конфигурация collector-а.
- **Визуал:** waterfall span-ов и схема распространения trace context.
- **Голос / объём:** М3, 8–10 тыс. знаков.
- **Зависимости и риск:** П29, П30; Р-В, Р-О.
- **П32 · 2020-10 · Резервное копирование и восстановление**
- **Slug:** `editorial-2020-10-practice-backup-recovery`, `editorial-2020-10-mechanism-backup-recovery`, `editorial-2020-10-field-backup-recovery`.
- **Техническая проблема:** backup существует, но восстановление не проверено, занимает больше RTO или пропускает зависимые данные; документировать drill, а не команду создания архива.
- **Источники:** официальная документация СУБД/хранилища + артефакты измеренного restore drill.
- **Визуал:** временная шкала восстановления и таблица RPO/RTO.
- **Голос / объём:** М3, 8–10 тыс. знаков.
- **Зависимости и риск:** П17, П25, П27; Р-В, Р-О.
- **П33 · 2020-11 · Минимальная защита веб-приложения**
- **Slug:** `editorial-2020-11-practice-security-baseline`, `editorial-2020-11-mechanism-security-baseline`, `editorial-2020-11-field-security-baseline`.
- **Техническая проблема:** набор заголовков и проверок включён без связи с поверхностью атаки; начать с активов, входов и одного проверяемого контроля.
- **Источники:** официальная документация платформы/веб-сервера и актуальная OWASP ASVS + результаты разрешённого HTTP-проверочного стенда.
- **Визуал:** матрица «актив → угроза → контроль → доказательство».
- **Голос / объём:** М3, 8–10 тыс. знаков.
- **Зависимости и риск:** П24, П26; Р-В, Р-З.
- **П34 · 2020-12 · Разбор инцидента**
- **Slug:** `editorial-2020-12-practice-incident-review`, `editorial-2020-12-mechanism-incident-review`, `editorial-2020-12-field-incident-review`.
- **Техническая проблема:** команда чинит видимый симптом, но не связывает триггер, обнаружение, восстановление и профилактику; собрать фактологичный review без поиска виноватого.
- **Источники:** исходные логи/алерты/изменения инцидента + runbook и конфигурация мониторинга на тот момент.
- **Визуал:** временная шкала инцидента и таблица решений с владельцами.
- **Голос / объём:** М3, 8–10 тыс. знаков.
- **Зависимости и риск:** П29–П33; Р-О, Р-К.
### 2021 — данные, конкуренция и распределённые системы
- **П35 · 2021-01 · Границы транзакции PostgreSQL**
- **Slug:** `editorial-2021-01-practice-transactions`, `editorial-2021-01-mechanism-transactions`, `editorial-2021-01-field-transactions`.
- **Техническая проблема:** две операции читают одно состояние и записывают несовместимый результат; показать изоляцию, блокировку и границу транзакции на конкурентной фикстуре.
- **Источники:** официальная документация PostgreSQL + пара параллельных транзакций с журналом блокировок.
- **Визуал:** временная шкала транзакций и таблица уровней изоляции.
- **Голос / объём:** М4, 8–10 тыс. знаков.
- **Зависимости и риск:** П17; Р-В, Р-О.
- **П36 · 2021-02 · Инвалидация кеша**
- **Slug:** `editorial-2021-02-practice-cache-invalidation`, `editorial-2021-02-mechanism-cache-invalidation`, `editorial-2021-02-field-cache-invalidation`.
- **Техническая проблема:** источник уже обновлён, а пользователь получает старую проекцию; определить владельца ключа, событие инвалидирования и проверку попадания.
- **Источники:** официальная документация cache-store/фреймворка + трасса ключа до и после изменения данных.
- **Визуал:** жизненный цикл ключа и матрица консистентности.
- **Голос / объём:** М4, 8–10 тыс. знаков.
- **Зависимости и риск:** П15, П30, П35; Р-В, Р-О.
- **П37 · 2021-03 · Очереди задач**
- **Slug:** `editorial-2021-03-practice-queues`, `editorial-2021-03-mechanism-queues`, `editorial-2021-03-field-queues`.
- **Техническая проблема:** порядок, дубли и poison message не укладываются в «поставили очередь»; определить delivery guarantee, retry и ручной маршрут ошибки.
- **Источники:** официальная документация брокера + тестовый harness с дубликатом, задержкой и ошибкой обработчика.
- **Визуал:** автомат сообщения и таблица гарантий доставки.
- **Голос / объём:** М4, 8–10 тыс. знаков.
- **Зависимости и риск:** П27, П28; Р-В, Р-О.
- **П38 · 2021-04 · Согласованность данных между сервисами**
- **Slug:** `editorial-2021-04-practice-data-consistency`, `editorial-2021-04-mechanism-data-consistency`, `editorial-2021-04-field-data-consistency`.
- **Техническая проблема:** два сервиса считают один заказ в разных состояниях; задать инвариант, компенсирующее действие и границу eventual consistency.
- **Источники:** ADR/контракт данных проекта + интеграционная трасса несогласованного сценария.
- **Визуал:** state machine с компенсирующим действием.
- **Голос / объём:** М4, 9–11 тыс. знаков.
- **Зависимости и риск:** П35–П37; Р-О, Р-К.
- **П39 · 2021-05 · Блокировки и конкуренция**
- **Slug:** `editorial-2021-05-practice-distributed-locks`, `editorial-2021-05-mechanism-distributed-locks`, `editorial-2021-05-field-distributed-locks`.
- **Техническая проблема:** lease истекает, владелец останавливается, а второй worker выполняет критическую секцию; не выдавать lock за универсальную защиту.
- **Источники:** официальная документация lock-provider-а + конкурентный тест с паузой владельца и логом lease.
- **Визуал:** временная шкала захвата, истечения и fence token.
- **Голос / объём:** М4, 8–11 тыс. знаков.
- **Зависимости и риск:** П35, П37, П38; Р-В, Р-О.
- **П40 · 2021-06 · Событийная интеграция**
- **Slug:** `editorial-2021-06-practice-event-driven`, `editorial-2021-06-mechanism-event-driven`, `editorial-2021-06-field-event-driven`.
- **Техническая проблема:** событие приходит дважды, схема меняется без миграции или consumer отстаёт; зафиксировать envelope, совместимость и replay.
- **Источники:** спецификация CloudEvents/документация брокера + запись события и результат replay-теста.
- **Визуал:** топология producer–broker–consumer и таблица совместимости схем.
- **Голос / объём:** М4, 8–11 тыс. знаков.
- **Зависимости и риск:** П37, П38; Р-В, Р-О.
- **П41 · 2021-07 · Индексация и поиск**
- **Slug:** `editorial-2021-07-practice-search-indexing`, `editorial-2021-07-mechanism-search-indexing`, `editorial-2021-07-field-search-indexing`.
- **Техническая проблема:** документ сохранён, но не находится или выдача устарела; пройти путь ingest, индексирования, refresh и запроса.
- **Источники:** официальная документация поискового движка + фикстура документа, индексный лог и запрос выдачи.
- **Визуал:** путь «запись → индекс → запрос» и таблица задержек.
- **Голос / объём:** М4, 8–10 тыс. знаков.
- **Зависимости и риск:** П36, П40; Р-В, Р-О.
- **П42 · 2021-08 · Контракт хранилища**
- **Slug:** `editorial-2021-08-practice-storage-contracts`, `editorial-2021-08-mechanism-storage-contracts`, `editorial-2021-08-field-storage-contracts`.
- **Техническая проблема:** потребитель предполагает тип, nullable-поле или порядок, которые хранилище не гарантирует; описать совместимость чтения и записи.
- **Источники:** схема/документация хранилища + миграционный тест и набор совместимых данных.
- **Визуал:** матрица producer/consumer-совместимости.
- **Голос / объём:** М4, 8–10 тыс. знаков.
- **Зависимости и риск:** П38, П41; Р-В.
- **П43 · 2021-09 · Версионирование API**
- **Slug:** `editorial-2021-09-practice-api-versioning`, `editorial-2021-09-mechanism-api-versioning`, `editorial-2021-09-field-api-versioning`.
- **Техническая проблема:** изменение поля или семантики ломает старый клиент; выбрать способ эволюции, объявить срок и подтвердить его contract test-ом.
- **Источники:** OpenAPI/официальная спецификация API + клиентская фикстура и результат совместимого contract test-а.
- **Визуал:** маршрут версий и таблица совместимости клиента.
- **Голос / объём:** М4, 8–10 тыс. знаков.
- **Зависимости и риск:** П16, П40, П42; Р-В.
- **П44 · 2021-10 · Runtime D в сервисе**
- **Slug:** `editorial-2021-10-practice-d-runtime-service`, `editorial-2021-10-mechanism-d-runtime-service`, `editorial-2021-10-field-d-runtime-service`.
- **Техническая проблема:** ожидания от PHP/JavaScript переносят на runtime D, а стоимость GC, I/O или FFI оказывается другой; ограничить вопрос одним сервисным запросом и измерением.
- **Источники:** официальная документация языка D/runtime + исходник benchmark-а и профиль запуска.
- **Визуал:** трасса обработки запроса и таблица измерений.
- **Голос / объём:** М4, 8–10 тыс. знаков.
- **Зависимости и риск:** линия 2017 D, П17; Р-В, Р-О.
- **П45 · 2021-11 · Нагрузочное тестирование**
- **Slug:** `editorial-2021-11-practice-load-testing`, `editorial-2021-11-mechanism-load-testing`, `editorial-2021-11-field-load-testing`.
- **Техническая проблема:** тест создаёт «много запросов», но не воспроизводит профиль пользователей и скрывает узкое место; зафиксировать сценарий, границы среды и критерий остановки.
- **Источники:** официальная документация load-test инструмента + сценарий, конфигурация среды и сырые результаты прогона.
- **Визуал:** кривая нагрузки с latency/error rate и таблица профиля.
- **Голос / объём:** М4, 8–11 тыс. знаков.
- **Зависимости и риск:** П30, П31, П44; Р-В, Р-О.
- **П46 · 2021-12 · Архитектурный разбор решения**
- **Slug:** `editorial-2021-12-practice-architecture-review`, `editorial-2021-12-mechanism-architecture-review`, `editorial-2021-12-field-architecture-review`.
- **Техническая проблема:** решение выбирают по знакомому инструменту, а инварианты, стоимость и отказные режимы остаются неявными; провести review как проверку гипотез.
- **Источники:** ADR/диаграмма и исходный код границы системы + метрики, тесты или результат рассмотренного решения.
- **Визуал:** context/container-схема и матрица решений.
- **Голос / объём:** М4, 9–11 тыс. знаков.
- **Зависимости и риск:** П35–П45; Р-О, Р-К.
### 2022 — frontend-система и пользовательский сценарий
- **П47 · 2022-01 · Граница SSR и CSR**
- **Slug:** `editorial-2022-01-practice-ssr-csr`, `editorial-2022-01-mechanism-ssr-csr`, `editorial-2022-01-field-ssr-csr`.
- **Техническая проблема:** SSR отдаёт одно состояние, hydration ожидает другое, а данные загружаются дважды; определить, кому принадлежит запрос и состояние на каждой фазе.
- **Источники:** официальная документация используемого framework-а + браузерная трасса SSR/hydration на минимальной странице.
- **Визуал:** жизненный цикл рендера и таблица владения состоянием.
- **Голос / объём:** М5, 7–9 тыс. знаков.
- **Зависимости и риск:** П18, П43; Р-В, Р-Б.
- **П48 · 2022-02 · Бюджет производительности**
- **Slug:** `editorial-2022-02-practice-performance-budget`, `editorial-2022-02-mechanism-performance-budget`, `editorial-2022-02-field-performance-budget`.
- **Техническая проблема:** скорость деградирует по чуть-чуть, пока релиз не становится заметно медленным; превратить бюджет в проверку CI с понятным допуском.
- **Источники:** официальная документация Web Vitals/Lighthouse + результаты CI и условия замера одной страницы.
- **Визуал:** график бюджета и таблица допусков.
- **Голос / объём:** М5, 7–9 тыс. знаков.
- **Зависимости и риск:** П18, П47; Р-Б, Р-О.
- **П49 · 2022-03 · Как браузер рисует страницу**
- **Slug:** `editorial-2022-03-practice-browser-rendering`, `editorial-2022-03-mechanism-browser-rendering`, `editorial-2022-03-field-browser-rendering`.
- **Техническая проблема:** «медленный рендер» смешивает style, layout, paint и JavaScript; связать конкретное изменение DOM с кадром в Performance panel.
- **Источники:** официальная документация браузерного движка + экспорт Performance trace с воспроизводимым jank.
- **Визуал:** frame timeline и схема render pipeline.
- **Голос / объём:** М5, 8–10 тыс. знаков.
- **Зависимости и риск:** П13, П18, П48; Р-Б.
- **П50 · 2022-04 · Доступный интерфейс**
- **Slug:** `editorial-2022-04-practice-accessible-interface`, `editorial-2022-04-mechanism-accessible-interface`, `editorial-2022-04-field-accessible-interface`.
- **Техническая проблема:** компонент визуально готов, но недоступен с клавиатуры и не сообщает состояние ассистивной технологии; проверить семантику, фокус и объявление.
- **Источники:** WCAG/ARIA и официальная документация браузера + accessibility tree и сценарий ручной проверки.
- **Визуал:** последовательность фокуса и карта объявлений.
- **Голос / объём:** М5, 7–10 тыс. знаков.
- **Зависимости и риск:** П19, П49; Р-Б.
- **П51 · 2022-05 · Маленькая дизайн-система**
- **Slug:** `editorial-2022-05-practice-design-system`, `editorial-2022-05-mechanism-design-system`, `editorial-2022-05-field-design-system`.
- **Техническая проблема:** одинаковые кнопки расходятся по токенам, состояниям и a11y; выбрать минимальный контракт компонента без фальшивой «универсальной системы».
- **Источники:** исходный код компонентной библиотеки/токенов + визуальные regression-фикстуры и usage-инвентарь.
- **Визуал:** поток токенов и таблица вариантов компонента.
- **Голос / объём:** М5, 7–10 тыс. знаков.
- **Зависимости и риск:** П50; Р-В, Р-К.
- **П52 · 2022-06 · Ошибки формы**
- **Slug:** `editorial-2022-06-practice-form-errors`, `editorial-2022-06-mechanism-form-errors`, `editorial-2022-06-field-form-errors`.
- **Техническая проблема:** серверная ошибка приходит после исправления поля, сообщение не связано с причиной, а пользователь не понимает следующий шаг; зафиксировать состояние валидации и повторной отправки.
- **Источники:** HTML/ARIA-спецификация + запись сценария с искусственной сетевой задержкой и тестовый набор формы.
- **Визуал:** автомат формы и таблица приоритетов ошибок.
- **Голос / объём:** М5, 7–9 тыс. знаков.
- **Зависимости и риск:** П14, П50; Р-Б, Р-В.
- **П53 · 2022-07 · Работа при плохой сети**
- **Slug:** `editorial-2022-07-practice-poor-network`, `editorial-2022-07-mechanism-poor-network`, `editorial-2022-07-field-poor-network`.
- **Техническая проблема:** интерфейс показывает успешное действие без ответа сервера, повторяет запрос или теряет черновик при offline; определить видимое состояние и правило восстановления.
- **Источники:** Fetch/Service Worker-документация + network-throttling trace и offline-фикстура.
- **Визуал:** диаграмма сетевых состояний и таблица retry/отката.
- **Голос / объём:** М5, 8–10 тыс. знаков.
- **Зависимости и риск:** П28, П52; Р-В, Р-Б.
- **П54 · 2022-08 · Изображения и медиа**
- **Slug:** `editorial-2022-08-practice-media-performance`, `editorial-2022-08-mechanism-media-performance`, `editorial-2022-08-field-media-performance`.
- **Техническая проблема:** изображение увеличивает LCP, вызывает layout shift или грузится не по приоритету; сопоставить разметку, формат и реальную загрузку.
- **Источники:** официальная документация браузера/форматов изображений + trace и Web Vitals одного стенда.
- **Визуал:** waterfall медиа и график «до / после».
- **Голос / объём:** М5, 7–10 тыс. знаков.
- **Зависимости и риск:** П48, П53; Р-Б, Р-О.
- **П55 · 2022-09 · Мобильный сценарий**
- **Slug:** `editorial-2022-09-practice-mobile-ux`, `editorial-2022-09-mechanism-mobile-ux`, `editorial-2022-09-field-mobile-ux`.
- **Техническая проблема:** десктопный поток требует точного hover, двух рук или широкого экрана; проверить один пользовательский путь на реальном viewport.
- **Источники:** документация браузерных viewport API + запись прохождения задачи и обезличенный сигнал продукта.
- **Визуал:** схема task flow на мобильном экране и таблица препятствий.
- **Голос / объём:** М5, 7–9 тыс. знаков.
- **Зависимости и риск:** П52–П54; Р-Б, Р-К.
- **П56 · 2022-10 · Проверки пользовательского сценария**
- **Slug:** `editorial-2022-10-practice-ui-tests`, `editorial-2022-10-mechanism-ui-tests`, `editorial-2022-10-field-ui-tests`.
- **Техническая проблема:** e2e-тест ждёт произвольную секунду, не наблюдает нужное состояние и флакует; заменить ожидание времени наблюдаемым контрактом страницы.
- **Источники:** официальная документация e2e-инструмента + trace, video и статистика повторов одного теста.
- **Визуал:** временная шкала теста и матрица причин флака.
- **Голос / объём:** М5, 7–10 тыс. знаков.
- **Зависимости и риск:** П25, П52, П55; Р-В, Р-О.
- **П57 · 2022-11 · Производительность Bitrix-страницы**
- **Slug:** `editorial-2022-11-practice-bitrix-performance`, `editorial-2022-11-mechanism-bitrix-performance`, `editorial-2022-11-field-bitrix-performance`.
- **Техническая проблема:** медленную страницу объясняют Bitrix целиком, хотя время уходит в запрос, компонентный кеш или шаблон; снять разложение запроса до оптимизации.
- **Источники:** официальная документация Bitrix по кешированию + профилировщик, SQL-trace и trace браузерной загрузки.
- **Визуал:** breakdown запроса и таблица узких мест.
- **Голос / объём:** М5, 8–10 тыс. знаков.
- **Зависимости и риск:** П36, П48, линия 2018 Bitrix; Р-В, Р-О.
- **П58 · 2022-12 · Исследование пользовательской проблемы**
- **Slug:** `editorial-2022-12-practice-user-research`, `editorial-2022-12-mechanism-user-research`, `editorial-2022-12-field-user-research`.
- **Техническая проблема:** инженер улучшает интерфейс без подтверждённой проблемы; собрать наблюдение, отделить факт от интерпретации и выбрать следующий эксперимент.
- **Источники:** протокол исследования/согласованные исходные заметки + запись задачи или обезличенный продуктовый сигнал.
- **Визуал:** карта «наблюдение → гипотеза → решение» и таблица доказательств.
- **Голос / объём:** М5, 7–9 тыс. знаков.
- **Зависимости и риск:** П55, П56; Р-К.
### 2023 — безопасность, качество и устойчивость
- **П59 · 2023-01 · Модель угроз**
- **Slug:** `editorial-2023-01-practice-threat-model`, `editorial-2023-01-mechanism-threat-model`, `editorial-2023-01-field-threat-model`.
- **Техническая проблема:** контроль выбирают по чек-листу, не назвав актив, границу доверия и злоупотребление; построить небольшую модель угроз для одного потока данных.
- **Источники:** официальная методика threat modeling/стандарт безопасности + актуальная схема потока данных и список активов проекта.
- **Визуал:** DFD с trust boundary и таблица «угроза → контроль → доказательство».
- **Голос / объём:** М6, 8–10 тыс. знаков.
- **Зависимости и риск:** П33, П58; Р-З, Р-К.
- **П60 · 2023-02 · Аутентификация и сессии**
- **Slug:** `editorial-2023-02-practice-sessions-auth`, `editorial-2023-02-mechanism-sessions-auth`, `editorial-2023-02-field-sessions-auth`.
- **Техническая проблема:** cookie-флаги, rotation и logout трактуются как отдельные настройки, из-за чего сессия живёт дольше ожидаемого; разобрать жизненный цикл одной сессии.
- **Источники:** официальная спецификация cookie/документация auth-платформы + браузерная storage/network-трасса тестовой сессии.
- **Визуал:** автомат сессии и таблица параметров cookie.
- **Голос / объём:** М6, 8–10 тыс. знаков.
- **Зависимости и риск:** П59; Р-В, Р-Б, Р-З.
- **П61 · 2023-03 · CSRF и CORS**
- **Slug:** `editorial-2023-03-practice-csrf-cors`, `editorial-2023-03-mechanism-csrf-cors`, `editorial-2023-03-field-csrf-cors`.
- **Техническая проблема:** CORS принимают за защиту от CSRF или открывают origin с credentials; разделить модель браузера, серверную проверку и конкретный запрос.
- **Источники:** Fetch/CORS-спецификация + сетевой repro в двух origin с cookie и preflight.
- **Визуал:** карта origin, credentials и preflight.
- **Голос / объём:** М6, 8–10 тыс. знаков.
- **Зависимости и риск:** П60; Р-Б, Р-З.
- **П62 · 2023-04 · Безопасность зависимостей**
- **Slug:** `editorial-2023-04-practice-dependency-security`, `editorial-2023-04-mechanism-dependency-security`, `editorial-2023-04-field-dependency-security`.
- **Техническая проблема:** уязвимость скрыта в транзитивной зависимости, а механическое обновление ломает runtime; соединить advisory, lockfile, достижимость и проверку обновления.
- **Источники:** официальные security advisory экосистемы + lockfile/SBOM и результат сканирования конкретной сборки.
- **Визуал:** дерево зависимости с зоной риска и матрица решения об обновлении.
- **Голос / объём:** М6, 8–11 тыс. знаков.
- **Зависимости и риск:** П21, П33, П59; Р-В, Р-З.
- **П63 · 2023-05 · Статический анализ**
- **Slug:** `editorial-2023-05-practice-static-analysis`, `editorial-2023-05-mechanism-static-analysis`, `editorial-2023-05-field-static-analysis`.
- **Техническая проблема:** правило создаёт много шума или пропускает контекст, поэтому команда отключает анализатор; выбрать одну опасную категорию и измерить качество сигнала.
- **Источники:** официальная документация/исходный код правила анализатора + SARIF-отчёт и классификация находок из репозитория.
- **Визуал:** воронка triage и таблица «находка → решение».
- **Голос / объём:** М6, 8–10 тыс. знаков.
- **Зависимости и риск:** П56, П62; Р-В, Р-К.
- **П64 · 2023-06 · Секреты и цепочка поставки**
- **Slug:** `editorial-2023-06-practice-secrets-supply-chain`, `editorial-2023-06-mechanism-secrets-supply-chain`, `editorial-2023-06-field-secrets-supply-chain`.
- **Техническая проблема:** секрет или неподписанный артефакт проходит через CI и образ, но аудит видит только финальный deploy; перечислить звенья и доказательства целостности.
- **Источники:** официальная документация build/attestation-платформы и SLSA + логи CI, SBOM и результаты безопасного сканирования артефакта.
- **Визуал:** границы цепочки поставки и таблица артефактов.
- **Голос / объём:** М6, 8–11 тыс. знаков.
- **Зависимости и риск:** П24, П25, П62; Р-В, Р-З.
- **П65 · 2023-07 · Контрактные тесты API**
- **Slug:** `editorial-2023-07-practice-contract-tests`, `editorial-2023-07-mechanism-contract-tests`, `editorial-2023-07-field-contract-tests`.
- **Техническая проблема:** provider меняет семантику, consumer узнаёт это после релиза; зафиксировать пример контракта, совместимость и запуск с обеих сторон.
- **Источники:** OpenAPI/Pact-документация + contract-файл и результат provider verification.
- **Визуал:** путь контракта через consumer и provider, матрица совместимости.
- **Голос / объём:** М6, 8–10 тыс. знаков.
- **Зависимости и риск:** П43, П63; Р-В.
- **П66 · 2023-08 · Стабильные e2e-тесты**
- **Slug:** `editorial-2023-08-practice-e2e-stability`, `editorial-2023-08-mechanism-e2e-stability`, `editorial-2023-08-field-e2e-stability`.
- **Техническая проблема:** retry превращает реальную ошибку в шум, а тест ждёт не ту готовность интерфейса; классифицировать флак по trace, а не повышать timeout.
- **Источники:** официальная документация e2e-инструмента + trace/video и история повторных запусков.
- **Визуал:** классификация флака и временная шкала ожиданий.
- **Голос / объём:** М6, 8–10 тыс. знаков.
- **Зависимости и риск:** П56, П65; Р-В, Р-О.
- **П67 · 2023-09 · Логи, метрики и трассы**
- **Slug:** `editorial-2023-09-practice-telemetry-signals`, `editorial-2023-09-mechanism-telemetry-signals`, `editorial-2023-09-field-telemetry-signals`.
- **Техническая проблема:** три сигнала существуют раздельно, label взрывает cardinality, а причина запроса не связывается с ошибкой; провести один идентификатор через все представления.
- **Источники:** спецификация OpenTelemetry + согласованный набор trace, log и metric-query для одного сценария.
- **Визуал:** карта корреляции сигналов и таблица cardinality.
- **Голос / объём:** М6, 8–11 тыс. знаков.
- **Зависимости и риск:** П29–П31; Р-В, Р-О.
- **П68 · 2023-10 · SLI и SLO**
- **Slug:** `editorial-2023-10-practice-sli-slo`, `editorial-2023-10-mechanism-sli-slo`, `editorial-2023-10-field-sli-slo`.
- **Техническая проблема:** alert смотрит на удобную метрику, а не на пользовательский результат; сформулировать SLI, SLO, окно и правило расходования error budget.
- **Источники:** конфигурация service objective и alert-правила + сырые данные метрик и история срабатываний.
- **Визуал:** график error budget и таблица соответствия SLI сценарию.
- **Голос / объём:** М6, 8–11 тыс. знаков.
- **Зависимости и риск:** П30, П45, П67; Р-О, Р-К.
- **П69 · 2023-11 · Postmortem без поиска виноватого**
- **Slug:** `editorial-2023-11-practice-postmortem`, `editorial-2023-11-mechanism-postmortem`, `editorial-2023-11-field-postmortem`.
- **Техническая проблема:** ретроспектива заменяет доказательства оценками людей и не меняет систему; отделить факты, решения в моменте и профилактический эксперимент.
- **Источники:** исходные артефакты инцидента + история изменений, алертов и runbook-а.
- **Визуал:** timeline инцидента и таблица «сигнал → решение → действие».
- **Голос / объём:** М6, 8–10 тыс. знаков.
- **Зависимости и риск:** П34, П68; Р-О, Р-К.
- **П70 · 2023-12 · Практический аудит веб-проекта**
- **Slug:** `editorial-2023-12-practice-security-audit`, `editorial-2023-12-mechanism-security-audit`, `editorial-2023-12-field-security-audit`.
- **Техническая проблема:** аудит превращается в общий список, не покрывающий реальные активы и пути данных; ограничить область, доказательства и порядок исправлений.
- **Источники:** официальное руководство по security testing + инвентарь активов и результаты разрешённых проверок стенда.
- **Визуал:** матрица покрытия аудита и карта активов.
- **Голос / объём:** М6, 9–11 тыс. знаков.
- **Зависимости и риск:** П59–П64, П67; Р-В, Р-З.
### 2024 — модернизация, платформа и доставка
- **П71 · 2024-01 · Модернизация legacy-системы**
- **Slug:** `editorial-2024-01-practice-legacy-modernization`, `editorial-2024-01-mechanism-legacy-modernization`, `editorial-2024-01-field-legacy-modernization`.
- **Техническая проблема:** переписывание теряет поведение и останавливает развитие; выбрать измеримый шов, правило совместимости и этап отката.
- **Источники:** исходный код/история legacy-модуля + официальная документация целевой платформы и результаты parity-теста.
- **Визуал:** strangler-карта и матрица совместимости.
- **Голос / объём:** М7, 9–11 тыс. знаков.
- **Зависимости и риск:** П11, П46; Р-В, Р-К.
- **П72 · 2024-02 · Модульный монолит**
- **Slug:** `editorial-2024-02-practice-modular-monolith`, `editorial-2024-02-mechanism-modular-monolith`, `editorial-2024-02-field-modular-monolith`.
- **Техническая проблема:** модули являются только папками и обходят границы через общий слой; задать разрешённые зависимости и тестировать их.
- **Источники:** dependency graph/исходный код репозитория + ADR и тесты границ модулей.
- **Визуал:** матрица зависимостей и схема допустимых направлений.
- **Голос / объём:** М7, 8–11 тыс. знаков.
- **Зависимости и риск:** П46, П71; Р-К.
- **П73 · 2024-03 · Границы пакетов**
- **Slug:** `editorial-2024-03-practice-package-boundaries`, `editorial-2024-03-mechanism-package-boundaries`, `editorial-2024-03-field-package-boundaries`.
- **Техническая проблема:** общая утилита превращается в неявную платформу, а пакет тянет чужую доменную модель; определить публичный API и запретные импорты.
- **Источники:** документация package manager-а/сборщика + import graph и CI-проверка границ.
- **Визуал:** граф пакетов и таблица API-границ.
- **Голос / объём:** М7, 8–10 тыс. знаков.
- **Зависимости и риск:** П72; Р-В, Р-К.
- **П74 · 2024-04 · Безопасная миграция данных**
- **Slug:** `editorial-2024-04-practice-data-migrations`, `editorial-2024-04-mechanism-data-migrations`, `editorial-2024-04-field-data-migrations`.
- **Техническая проблема:** schema change выкатывается раньше кода, backfill перегружает БД, откат невозможен; применить expand–migrate–contract с измеренным rehearsal.
- **Источники:** официальная документация СУБД + миграция, rollback-план и журнал rehearsal-прогона.
- **Визуал:** временная шкала expand/contract и таблица совместимости версий.
- **Голос / объём:** М7, 9–12 тыс. знаков.
- **Зависимости и риск:** П35, П42, П72; Р-В, Р-О.
- **П75 · 2024-05 · Шаблоны для команд**
- **Slug:** `editorial-2024-05-practice-platform-templates`, `editorial-2024-05-mechanism-platform-templates`, `editorial-2024-05-field-platform-templates`.
- **Техническая проблема:** шаблон ускоряет старт, но жёстко фиксирует неверный выбор и плодит fork-и; выбрать golden path, расширение и критерий отказа от шаблона.
- **Источники:** исходный код шаблона/usage-инвентарь + issue и интервью с командами-потребителями.
- **Визуал:** путь команды через шаблон и таблица escape hatch.
- **Голос / объём:** М7, 8–11 тыс. знаков.
- **Зависимости и риск:** П72, П73; Р-К, Р-В.
- **П76 · 2024-06 · Управление контейнерной нагрузкой**
- **Slug:** `editorial-2024-06-practice-container-orchestration`, `editorial-2024-06-mechanism-container-orchestration`, `editorial-2024-06-field-container-orchestration`.
- **Техническая проблема:** resource limit, autoscaling и readiness не соответствуют профилю приложения; сопоставить манифест, загрузку и наблюдаемое поведение pod-а.
- **Источники:** официальная документация Kubernetes + manifests и метрики контролируемой нагрузки кластера.
- **Визуал:** жизненный цикл pod-а и график capacity.
- **Голос / объём:** М7, 9–12 тыс. знаков.
- **Зависимости и риск:** П23, П45; Р-В, Р-О.
- **П77 · 2024-07 · Инженерия релиза**
- **Slug:** `editorial-2024-07-practice-release-engineering`, `editorial-2024-07-mechanism-release-engineering`, `editorial-2024-07-field-release-engineering`.
- **Техническая проблема:** версия, артефакт и миграция расходятся между стадиями; создать цепочку доказательств от commit-а до deploy-а и контролируемый rollback.
- **Источники:** документация CI/CD/deploy-платформы + журнал артефактов и событий поставки.
- **Визуал:** delivery chain и таблица точек rollback.
- **Голос / объём:** М7, 9–11 тыс. знаков.
- **Зависимости и риск:** П25, П74–П76; Р-В, Р-О.
- **П78 · 2024-08 · Feature flags**
- **Slug:** `editorial-2024-08-practice-feature-flags`, `editorial-2024-08-mechanism-feature-flags`, `editorial-2024-08-field-feature-flags`.
- **Техническая проблема:** флаг скрывает долг, меняет поведение клиента или остаётся после rollout; определить владельца, аудиторию, срок и безопасное удаление.
- **Источники:** официальная документация feature-flag платформы + конфигурация флага и обезличенные данные exposure.
- **Визуал:** decision tree флага и временная шкала rollout.
- **Голос / объём:** М7, 8–11 тыс. знаков.
- **Зависимости и риск:** П77; Р-В, Р-К.
- **П79 · 2024-09 · Запись инженерного решения**
- **Slug:** `editorial-2024-09-practice-adr-decisions`, `editorial-2024-09-mechanism-adr-decisions`, `editorial-2024-09-field-adr-decisions`.
- **Техническая проблема:** решение существует только в переписке, а через полгода никто не помнит условие и цену; оформить ADR как проверяемую гипотезу с датой пересмотра.
- **Источники:** история ADR и review-артефакты + исходный код/метрики, на которых основан выбор.
- **Визуал:** поток принятия решения и матрица альтернатив.
- **Голос / объём:** М7, 8–10 тыс. знаков.
- **Зависимости и риск:** П46, П77, П78; Р-К.
- **П80 · 2024-10 · Ёмкость и стоимость**
- **Slug:** `editorial-2024-10-practice-capacity-cost`, `editorial-2024-10-mechanism-capacity-cost`, `editorial-2024-10-field-capacity-cost`.
- **Техническая проблема:** сервис проходит SLO, но стоимость растёт быстрее нагрузки; связать рабочую нагрузку, ресурс, цену и предел масштабирования.
- **Источники:** официальный прайс-лист/документация инфраструктуры + данные потребления и измерение нагрузки.
- **Визуал:** график «нагрузка → ресурс → стоимость» и таблица сценариев.
- **Голос / объём:** М7, 8–11 тыс. знаков.
- **Зависимости и риск:** П45, П76; Р-В, Р-О.
- **П81 · 2024-11 · Удаление устаревшего**
- **Slug:** `editorial-2024-11-practice-deprecation`, `editorial-2024-11-mechanism-deprecation`, `editorial-2024-11-field-deprecation`.
- **Техническая проблема:** удаление API ломает скрытого потребителя, а старый путь живёт вечно; найти пользователей, сообщить срок, измерить миграцию и удалить доказуемо.
- **Источники:** code search/история использования + официальные правила версионирования и telemetry потребителей.
- **Визуал:** карта потребителей и timeline deprecation.
- **Голос / объём:** М7, 8–11 тыс. знаков.
- **Зависимости и риск:** П43, П73, П79; Р-В, Р-К.
- **П82 · 2024-12 · Год сопровождения системы**
- **Slug:** `editorial-2024-12-practice-maintenance-retro`, `editorial-2024-12-mechanism-maintenance-retro`, `editorial-2024-12-field-maintenance-retro`.
- **Техническая проблема:** долг перечисляют без связи с риском, стоимостью и повторяемым сбоем; собрать maintenance-ретроспективу из исторических артефактов.
- **Источники:** issue/change history и ADR + метрики надёжности, стоимости или времени поддержки.
- **Визуал:** тепловая карта долг/риск и timeline изменений.
- **Голос / объём:** М7, 9–12 тыс. знаков.
- **Зависимости и риск:** П71–П81; Р-О, Р-К.
### 2025 — AI-инструменты, внутренние продукты и исследовательская дисциплина
- **П83 · 2025-01 · Помощник для написания кода**
- **Slug:** `editorial-2025-01-practice-ai-coding-assistant`, `editorial-2025-01-mechanism-ai-coding-assistant`, `editorial-2025-01-field-ai-coding-assistant`.
- **Техническая проблема:** сгенерированный код выглядит правдоподобно, но нарушает контракт, стиль или безопасность; ограничить задачу, подготовить контекст и сделать проверку обязательным шагом.
- **Источники:** официальная документация/model card поставщика инструмента + контролируемый набор задач, diff и результаты тестов.
- **Визуал:** граница «prompt → diff → review → test» и таблица типов ошибок.
- **Голос / объём:** М8, 8–10 тыс. знаков.
- **Зависимости и риск:** П63, П79; Р-В, Р-З.
- **П84 · 2025-02 · Проверка сгенерированного кода**
- **Slug:** `editorial-2025-02-practice-ai-code-verification`, `editorial-2025-02-mechanism-ai-code-verification`, `editorial-2025-02-field-ai-code-verification`.
- **Техническая проблема:** тест проходит, но код всё ещё небезопасен, нечитабелен или не учитывает неявный контракт; построить несколько независимых доказательств вместо одной зелёной проверки.
- **Источники:** официальная документация AI-инструмента/его ограничений + результаты тестов, линтера, review и ручного воспроизведения.
- **Визуал:** воронка верификации и матрица «риск → способ обнаружения».
- **Голос / объём:** М8, 8–11 тыс. знаков.
- **Зависимости и риск:** П63, П83; Р-В, Р-З.
- **П85 · 2025-03 · Поиск по инженерной базе знаний**
- **Slug:** `editorial-2025-03-practice-knowledge-retrieval`, `editorial-2025-03-mechanism-knowledge-retrieval`, `editorial-2025-03-field-knowledge-retrieval`.
- **Техническая проблема:** поиск возвращает устаревший или закрытый источник, а ответ не позволяет проверить цитату; связать индекс, права, дату документа и ссылку на первоисточник.
- **Источники:** официальная документация retrieval-платформы + инвентарь корпуса, журнал индексации и выборка ответов с источниками.
- **Визуал:** путь «запрос → retrieval → цитата» и таблица свежести источника.
- **Голос / объём:** М8, 8–11 тыс. знаков.
- **Зависимости и риск:** П75, П84; Р-В, Р-З, Р-К.
- **П86 · 2025-04 · Данные и приватность в AI-инструментах**
- **Slug:** `editorial-2025-04-practice-ai-data-privacy`, `editorial-2025-04-mechanism-ai-data-privacy`, `editorial-2025-04-field-ai-data-privacy`.
- **Техническая проблема:** фрагмент кода или лога пересекает внешнюю границу без ясности о retention и обучении; сопоставить классификацию данных, policy и фактический egress.
- **Источники:** официальная policy/DPA поставщика + инвентарь потоков данных и журналы разрешённого egress.
- **Визуал:** trust boundary данных и таблица допустимости контекста.
- **Голос / объём:** М8, 8–11 тыс. знаков.
- **Зависимости и риск:** П24, П59, П83, П85; Р-В, Р-З, Р-К.
- **П87 · 2025-05 · Автоматизация рутины**
- **Slug:** `editorial-2025-05-practice-engineering-automation`, `editorial-2025-05-mechanism-engineering-automation`, `editorial-2025-05-field-engineering-automation`.
- **Техническая проблема:** автоматизация масштабирует исключение и делает массовый неверный change; добавить preview, approval, audit log и откат в сам механизм.
- **Источники:** официальная документация API/оркестратора + dry-run, audit log и безопасный тест rollback.
- **Визуал:** автомат approval/rollback и таблица уровней полномочий.
- **Голос / объём:** М8, 8–11 тыс. знаков.
- **Зависимости и риск:** П25, П77, П84; Р-В, Р-К.
- **П88 · 2025-06 · Удобство внутреннего инструмента**
- **Slug:** `editorial-2025-06-practice-developer-experience`, `editorial-2025-06-mechanism-developer-experience`, `editorial-2025-06-field-developer-experience`.
- **Техническая проблема:** внутренний инструмент формально работает, но создаёт очередь ожидания и обходные пути; измерить одну задачу пользователя от входа до результата.
- **Источники:** исходный код/документация внутреннего инструмента + наблюдение задачи, support-обращения или измерение времени ожидания.
- **Визуал:** пользовательский путь и гистограмма времени ожидания.
- **Голос / объём:** М8, 8–10 тыс. знаков.
- **Зависимости и риск:** П75, П87; Р-К.
- **П89 · 2025-07 · Метрики продукта для инженера**
- **Slug:** `editorial-2025-07-practice-product-metrics`, `editorial-2025-07-mechanism-product-metrics`, `editorial-2025-07-field-product-metrics`.
- **Техническая проблема:** инженер улучшает latency или conversion без связи с решением пользователя и guardrail-метрикой; построить одну причинную цепочку, а не дашборд из всего.
- **Источники:** event schema/определение метрики + сырые события и запрос дашборда за фиксированный период.
- **Визуал:** funnel с guardrail и таблица интерпретации изменения.
- **Голос / объём:** М8, 8–11 тыс. знаков.
- **Зависимости и риск:** П58, П88; Р-О, Р-К.
- **П90 · 2025-08 · Исследование UX внутреннего инструмента**
- **Slug:** `editorial-2025-08-practice-tool-ux-research`, `editorial-2025-08-mechanism-tool-ux-research`, `editorial-2025-08-field-tool-ux-research`.
- **Техническая проблема:** интервью подтверждает удобную гипотезу автора, а не проблему коллеги; зафиксировать нейтральный сценарий, согласие и разбор наблюдений.
- **Источники:** исследовательский протокол/форма согласия + обезличенные записи задач и журнал кодирования наблюдений.
- **Визуал:** evidence map и таблица «цитата/действие/неопределённость».
- **Голос / объём:** М8, 8–10 тыс. знаков.
- **Зависимости и риск:** П58, П88, П89; Р-К.
- **П91 · 2025-09 · Инженерное интервью**
- **Slug:** `editorial-2025-09-practice-engineering-interviews`, `editorial-2025-09-mechanism-engineering-interviews`, `editorial-2025-09-field-engineering-interviews`.
- **Техническая проблема:** интервью проверяет память на термины, а не способ работы с неопределённостью; связать rubric, рабочую пробу и единые критерии review.
- **Источники:** утверждённый rubric/описание роли + обезличенный результат рабочей пробы и review-критериев.
- **Визуал:** матрица компетенций и схема оценивания.
- **Голос / объём:** М8, 8–10 тыс. знаков.
- **Зависимости и риск:** П63, П90; Р-К.
- **П92 · 2025-10 · Объяснение сложной темы**
- **Slug:** `editorial-2025-10-practice-teaching-engineering`, `editorial-2025-10-mechanism-teaching-engineering`, `editorial-2025-10-field-teaching-engineering`.
- **Техническая проблема:** объяснение даёт рецепт без модели, и читатель копирует код вне условий; соединить исходную задачу, контрпример и короткое упражнение с проверкой.
- **Источники:** исходный код/официальная документация разбираемой технологии + результаты упражнения и обратная связь по pull request-ам.
- **Визуал:** путь «модель → упражнение → проверка» и таблица типичных ошибок.
- **Голос / объём:** М8, 8–11 тыс. знаков.
- **Зависимости и риск:** П91; Р-К.
- **П93 · 2025-11 · Проверка источников**
- **Slug:** `editorial-2025-11-practice-research-method`, `editorial-2025-11-mechanism-research-method`, `editorial-2025-11-field-research-method`.
- **Техническая проблема:** статья собирает ссылки, но не отделяет версию, маркетинговое обещание и воспроизводимый факт; вести журнал утверждений и первоисточников.
- **Источники:** metadata/release notes первичных публикаций + исследовательский журнал с повторяемой фикстурой.
- **Визуал:** лестница доказательств и таблица статуса утверждений.
- **Голос / объём:** М8, 8–10 тыс. знаков.
- **Зависимости и риск:** П85, П92; Р-В, Р-К.
- **П94 · 2025-12 · Синтез инженерного года**
- **Slug:** `editorial-2025-12-practice-year-synthesis`, `editorial-2025-12-mechanism-year-synthesis`, `editorial-2025-12-field-year-synthesis`.
- **Техническая проблема:** годовой текст отбирает только успехи и выдаёт корреляцию за эффект; собрать timeline решений, альтернатив и наблюдаемых результатов.
- **Источники:** история изменений/ADR + метрики, результаты проверок и инцидентные артефакты.
- **Визуал:** timeline года и матрица «решение → цена → наблюдение».
- **Голос / объём:** М8, 9–12 тыс. знаков.
- **Зависимости и риск:** П82, П89, П93; Р-О, Р-К.
### 2026 — сквозная архитектура и техническое лидерство
> На дату инвентаризации завершены календарные партии до июля 2026 года включительно. Для партий августа–декабря `Р-Ф` означает: сначала подтвердить, что материал может быть опубликован как факт, иначе писать его как явно датированный план или сценарий.
- **П95 · 2026-01 · API платформенной команды**
- **Slug:** `editorial-2026-01-practice-platform-api`, `editorial-2026-01-mechanism-platform-api`, `editorial-2026-01-field-platform-api`.
- **Техническая проблема:** платформенная абстракция скрывает детали до первого нестандартного потребителя, после чего API начинает протекать; определить контракт, escape hatch и обратную совместимость.
- **Источники:** официальная API-спецификация/стандарты команды + contract tests и трасса двух потребителей.
- **Визуал:** карта публичного API и таблица гарантий/исключений.
- **Голос / объём:** М9, 9–12 тыс. знаков.
- **Зависимости и риск:** П43, П75; Р-В, Р-К.
- **П96 · 2026-02 · Устойчивость к отказам**
- **Slug:** `editorial-2026-02-practice-resilience`, `editorial-2026-02-mechanism-resilience`, `editorial-2026-02-field-resilience`.
- **Техническая проблема:** retry, fallback и репликация независимо кажутся защитой, а вместе увеличивают нагрузку во время сбоя; разложить каскад и точку ограничения.
- **Источники:** официальная документация компонентов устойчивости + результат failure-injection и трасса распространения ошибки.
- **Визуал:** граф каскада отказа и таблица режимов деградации.
- **Голос / объём:** М9, 9–12 тыс. знаков.
- **Зависимости и риск:** П28, П45, П95; Р-В, Р-О.
- **П97 · 2026-03 · Контракты данных**
- **Slug:** `editorial-2026-03-practice-data-contracts`, `editorial-2026-03-mechanism-data-contracts`, `editorial-2026-03-field-data-contracts`.
- **Техническая проблема:** schema change координируют вручную между producer и consumer, поэтому версия данных ломается уже после deploy; автоматизировать compatibility gate.
- **Источники:** схема/документация schema registry + CI-проверка совместимости и набор граничных данных.
- **Визуал:** эволюция контракта и матрица producer/consumer.
- **Голос / объём:** М9, 9–12 тыс. знаков.
- **Зависимости и риск:** П42, П65, П95; Р-В.
- **П98 · 2026-04 · Современная безопасность веба**
- **Slug:** `editorial-2026-04-practice-modern-web-security`, `editorial-2026-04-mechanism-modern-web-security`, `editorial-2026-04-field-modern-web-security`.
- **Техническая проблема:** перечень controls не показывает, какой путь атаки закрыт и что осталось открытым; связать threat model, контрмеру и тест доказательства.
- **Источники:** актуальные официальные advisory/стандарты + модель угроз и результаты разрешённой проверки стенда.
- **Визуал:** карта «атака → защита → доказательство» и матрица остаточного риска.
- **Голос / объём:** М9, 9–13 тыс. знаков.
- **Зависимости и риск:** П59–П70; Р-В, Р-З.
- **П99 · 2026-05 · Производительность системы**
- **Slug:** `editorial-2026-05-practice-systems-performance`, `editorial-2026-05-mechanism-systems-performance`, `editorial-2026-05-field-systems-performance`.
- **Техническая проблема:** оптимизация одного сервиса не меняет end-to-end latency, потому что ограничение находится в очереди, БД или внешнем вызове; найти bottleneck на единой трассе.
- **Источники:** официальная документация runtime/профайлера + benchmark-harness, trace и конфигурация измерения.
- **Визуал:** critical-path waterfall и график «нагрузка → latency».
- **Голос / объём:** М9, 9–13 тыс. знаков.
- **Зависимости и риск:** П18, П45, П96; Р-В, Р-О.
- **П100 · 2026-06 · PHP, JavaScript и D в одном ландшафте**
- **Slug:** `editorial-2026-06-practice-multi-runtime`, `editorial-2026-06-mechanism-multi-runtime`, `editorial-2026-06-field-multi-runtime`.
- **Техническая проблема:** языковые границы маскируют разные модели ошибок, типов и времени выполнения; выбрать один контракт между runtime-ами и подтвердить его интеграционным тестом.
- **Источники:** официальная документация всех трёх runtime-ов + контрактный тест, profile и трасса межсервисного запроса.
- **Визуал:** карта совместимости runtime-ов и таблица границ контракта.
- **Голос / объём:** М9, 9–12 тыс. знаков.
- **Зависимости и риск:** П44, П97, П99; Р-В, Р-О.
- **П101 · 2026-07 · План миграции**
- **Slug:** `editorial-2026-07-practice-migration-playbook`, `editorial-2026-07-mechanism-migration-playbook`, `editorial-2026-07-field-migration-playbook`.
- **Техническая проблема:** план описывает целевую архитектуру, но не включает инвентарь, перевод трафика, миграцию данных и rollback; задать контрольные точки с наблюдаемыми критериями.
- **Источники:** официальная документация целевой технологии + репозиторный инвентарь, rehearsal и метрики переходного периода.
- **Визуал:** фазы миграции с decision gate и таблица rollback.
- **Голос / объём:** М9, 10–13 тыс. знаков.
- **Зависимости и риск:** П71, П74, П81, П96; Р-В, Р-О, Р-К.
- **П102 · 2026-08 · End-to-end наблюдаемость**
- **Slug:** `editorial-2026-08-practice-end-to-end-observability`, `editorial-2026-08-mechanism-end-to-end-observability`, `editorial-2026-08-field-end-to-end-observability`.
- **Техническая проблема:** данные теряют correlation ID между UI, API и worker-ом, а наблюдаемость создаёт лишние персональные или высококардинальные данные; спроектировать сквозную связь и sampling.
- **Источники:** спецификация OpenTelemetry + полноценный trace/log/metric-набор одного сценария.
- **Визуал:** карта сигналов по границам системы и график cardinality.
- **Голос / объём:** М9, 9–13 тыс. знаков.
- **Зависимости и риск:** П67, П96, П101; Р-В, Р-О, Р-Ф.
- **П103 · 2026-09 · Граница frontend и backend**
- **Slug:** `editorial-2026-09-practice-frontend-backend-boundary`, `editorial-2026-09-mechanism-frontend-backend-boundary`, `editorial-2026-09-field-frontend-backend-boundary`.
- **Техническая проблема:** UI присваивает себе доменное состояние или API возвращает экранную модель, из-за чего обе стороны нельзя менять отдельно; разделить ответственность по контексту и контракту.
- **Источники:** API-спецификация/код границы + UI-network trace и контрактный тест сценария.
- **Визуал:** карта владения состоянием и таблица ответственности.
- **Голос / объём:** М9, 9–12 тыс. знаков.
- **Зависимости и риск:** П47, П95, П97; Р-В, Р-К, Р-Ф.
- **П104 · 2026-10 · Стандарт code review**
- **Slug:** `editorial-2026-10-practice-code-review-standard`, `editorial-2026-10-mechanism-code-review-standard`, `editorial-2026-10-field-code-review-standard`.
- **Техническая проблема:** review застревает в стиле и не видит риск контракта, миграции или эксплуатации; описать входные доказательства и stop-the-line критерии.
- **Источники:** правила review/история pull request-ов + дефекты, CI-артефакты и изменения после review.
- **Визуал:** матрица review-решений и схема эскалации риска.
- **Голос / объём:** М9, 9–12 тыс. знаков.
- **Зависимости и риск:** П63, П91, П103; Р-О, Р-К, Р-Ф.
- **П105 · 2026-11 · Сравнение технологий без хайпа**
- **Slug:** `editorial-2026-11-practice-technology-evaluation`, `editorial-2026-11-mechanism-technology-evaluation`, `editorial-2026-11-field-technology-evaluation`.
- **Техническая проблема:** сравнение берёт популярность или benchmark без контекста и игнорирует стоимость внедрения; формализовать критерии, веса, воспроизводимое измерение и стоп-факторы.
- **Источники:** официальные документация, лицензия и release notes кандидатов + собственный benchmark/прототип с опубликованной конфигурацией.
- **Визуал:** взвешенная decision matrix и график trade-off.
- **Голос / объём:** М9, 9–13 тыс. знаков.
- **Зависимости и риск:** П99, П100, П104; Р-В, Р-О, Р-К, Р-Ф.
- **П106 · 2026-12 · Инженерный кейс от проблемы до результата**
- **Slug:** `editorial-2026-12-practice-portfolio-case`, `editorial-2026-12-mechanism-portfolio-case`, `editorial-2026-12-field-portfolio-case`.
- **Техническая проблема:** кейс скрывает исходные ограничения, неудачные варианты и стоимость поддержки, поэтому превращается в рекламу; показать цепочку «контекст → решение → доказательство → остаточный риск».
- **Источники:** ADR/артефакты проекта + метрики, результаты тестов, инциденты или change log.
- **Визуал:** причинная timeline кейса и таблица компромиссов.
- **Голос / объём:** М9, 10–13 тыс. знаков.
- **Зависимости и риск:** П94, П101, П105; Р-О, Р-К, Р-Ф.
### 2027 — ретроспектива, капстоуны и наставничество
> Все партии этого раздела несут `Р-Ф`: до наступления их календарной даты нельзя писать так, будто будущая версия инструмента, исследование или наблюдение уже существуют. Публикация допустима только после свежей сверки источников либо в форме явно помеченного плана/сценария.
- **П107 · 2027-01 · Десять лет web-диагностики**
- **Slug:** `editorial-2027-01-practice-debugging-decade`, `editorial-2027-01-mechanism-debugging-decade`, `editorial-2027-01-field-debugging-decade`.
- **Техническая проблема:** ретроспектива превращает разные сбои в красивый «универсальный метод»; сопоставить ранние логи, современные trace и неизменный порядок проверки гипотез.
- **Источники:** исходные bug report/log-артефакты разных лет + актуальная документация и повторный repro выбранных случаев.
- **Визуал:** эволюционная timeline диагностики и таблица «сигнал → инструмент → предел».
- **Голос / объём:** М10, 9–13 тыс. знаков.
- **Зависимости и риск:** П01, П29, П102; Р-В, Р-Ф.
- **П108 · 2027-02 · Уроки Bitrix для legacy-разработки**
- **Slug:** `editorial-2027-02-practice-bitrix-lessons`, `editorial-2027-02-mechanism-bitrix-lessons`, `editorial-2027-02-field-bitrix-lessons`.
- **Техническая проблема:** старые API-примеры продолжают копировать без версии, а уроки о legacy звучат как оправдание неизменности; отделить сохраняющийся принцип от устаревшего вызова.
- **Источники:** архивная и актуальная документация/исходный код Bitrix + migration test на выбранном сценарии.
- **Визуал:** decision tree «сохранить / обернуть / заменить» и таблица версионных ограничений.
- **Голос / объём:** М10, 9–13 тыс. знаков.
- **Зависимости и риск:** январская серия 2018, П03, П11, П71; Р-В, Р-Ф.
- **П109 · 2027-03 · Уроки D для прикладного инженера**
- **Slug:** `editorial-2027-03-practice-d-lessons`, `editorial-2027-03-mechanism-d-lessons`, `editorial-2027-03-field-d-lessons`.
- **Техническая проблема:** личный опыт с языком подают как сравнение экосистем без условий; повторно измерить один сервисный сценарий и честно назвать, где D не является выбором по умолчанию.
- **Источники:** официальная спецификация и release notes D + исходник benchmark-а и повторный profile.
- **Визуал:** график trade-off runtime-ов и таблица ограничений.
- **Голос / объём:** М10, 9–13 тыс. знаков.
- **Зависимости и риск:** линия 2017 D, П44, П100; Р-В, Р-О, Р-Ф.
- **П110 · 2027-04 · Эволюция frontend-сборки**
- **Slug:** `editorial-2027-04-practice-build-evolution`, `editorial-2027-04-mechanism-build-evolution`, `editorial-2027-04-field-build-evolution`.
- **Техническая проблема:** новая сборка объявляется автоматически лучше старой, хотя меняются тип приложения, кеширование и CI; сравнивать конфигурации и артефакты, а не названия инструментов.
- **Источники:** исторические config/CI-артефакты + актуальная официальная документация сборщиков и результаты одинакового build-замера.
- **Визуал:** timeline эволюции сборки и таблица сравнимых условий.
- **Голос / объём:** М10, 9–13 тыс. знаков.
- **Зависимости и риск:** П05, П21, П77; Р-В, Р-О, Р-Ф.
- **П111 · 2027-05 · Полевой справочник HTTP и TLS**
- **Slug:** `editorial-2027-05-practice-http-tls-guide`, `editorial-2027-05-mechanism-http-tls-guide`, `editorial-2027-05-field-http-tls-guide`.
- **Техническая проблема:** «советы по HTTP/TLS» стареют вместе с протоколами и настройками клиентов; ограничить справочник диагностическими вопросами, версией и проверяемой командой.
- **Источники:** RFC/errata и официальная документация OpenSSL/cURL + контролируемые handshake и HTTP-трассы.
- **Визуал:** карта handshake/заголовков и матрица симптомов.
- **Голос / объём:** М10, 10–14 тыс. знаков.
- **Зависимости и риск:** П06, П07, П98; Р-В, Р-З, Р-Ф.
- **П112 · 2027-06 · Большой разбор производительности**
- **Slug:** `editorial-2027-06-practice-performance-capstone`, `editorial-2027-06-mechanism-performance-capstone`, `editorial-2027-06-field-performance-capstone`.
- **Техническая проблема:** улучшение одного числа выдают за системный эффект без профиля нагрузки и критического пути; связать workload, инструмент, bottleneck и повторный замер.
- **Источники:** benchmark-harness/конфигурация среды + сырые telemetry и profile-артефакты.
- **Визуал:** end-to-end critical path и график latency/throughput.
- **Голос / объём:** М10, 10–15 тыс. знаков.
- **Зависимости и риск:** П18, П45, П99; Р-О, Р-Ф.
- **П113 · 2027-07 · Большой разбор надёжности**
- **Slug:** `editorial-2027-07-practice-reliability-capstone`, `editorial-2027-07-mechanism-reliability-capstone`, `editorial-2027-07-field-reliability-capstone`.
- **Техническая проблема:** reliability сводят к retry и replica, не считая восстановление, нагрузку и организационную реакцию; показать систему ограничений через один отказный сценарий.
- **Источники:** incident records/runbook + результаты failure-injection и SLO-метрики.
- **Визуал:** fault tree, error budget и timeline восстановления.
- **Голос / объём:** М10, 10–15 тыс. знаков.
- **Зависимости и риск:** П28, П34, П96; Р-О, Р-К, Р-Ф.
- **П114 · 2027-08 · Большой разбор безопасности**
- **Slug:** `editorial-2027-08-practice-security-capstone`, `editorial-2027-08-mechanism-security-capstone`, `editorial-2027-08-field-security-capstone`.
- **Техническая проблема:** «best practices» не доказывают, что путь атаки закрыт; провести от актива через угрозу к контролю и доказательству тестом.
- **Источники:** актуальные официальные security advisory/стандарты + threat model и результаты разрешённого security-теста.
- **Визуал:** attack tree и карта контролей.
- **Голос / объём:** М10, 10–15 тыс. знаков.
- **Зависимости и риск:** П59–П70, П98; Р-В, Р-З, Р-Ф.
- **П115 · 2027-09 · Серия для инженера, который растёт**
- **Slug:** `editorial-2027-09-practice-mentor-series`, `editorial-2027-09-mechanism-mentor-series`, `editorial-2027-09-field-mentor-series`.
- **Техническая проблема:** наставничество даёт абстрактный список навыков и не создаёт доказательства роста; связать ситуацию, упражнение, review и следующий уровень самостоятельности.
- **Источники:** учебная программа/репозиторные примеры + обезличенные результаты упражнений и обратная связь.
- **Визуал:** skill map и петля deliberate practice.
- **Голос / объём:** М10, 9–13 тыс. знаков.
- **Зависимости и риск:** П91, П92, П106; Р-К, Р-Ф.
- **П116 · 2027-10 · Длинное техническое интервью**
- **Slug:** `editorial-2027-10-practice-long-form-interview`, `editorial-2027-10-mechanism-long-form-interview`, `editorial-2027-10-field-long-form-interview`.
- **Техническая проблема:** интервью превращается в авторитетный рассказ без проверяемых опор; сопоставить согласованный transcript с кодом, метриками и источниками, а не усиливать реплику редактурой.
- **Источники:** утверждённая расшифровка/первичные артефакты собеседника + независимые технические документы, код или измерения.
- **Визуал:** карта «утверждение → подтверждение → ограничение».
- **Голос / объём:** М10, 10–14 тыс. знаков.
- **Зависимости и риск:** П91, П93, П106; Р-К, Р-Ф.
- **П117 · 2027-11 · Пересмотр старых советов**
- **Slug:** `editorial-2027-11-practice-mistakes-revisions`, `editorial-2027-11-mechanism-mistakes-revisions`, `editorial-2027-11-field-mistakes-revisions`.
- **Техническая проблема:** старый совет остаётся в поиске после смены версии или появления контрпримера; сравнить исходный текст, его условия и свежий repro, затем выпустить корректировку.
- **Источники:** историческая статья/снимок старой документации + актуальная документация и повторный тест.
- **Визуал:** timeline исправлений и таблица «было → почему неверно → теперь».
- **Голос / объём:** М10, 9–13 тыс. знаков.
- **Зависимости и риск:** П107–П111; Р-В, Р-З, Р-Ф.
- **П118 · 2027-12 · Манифест инженерного письма**
- **Slug:** `editorial-2027-12-practice-author-manifesto`, `editorial-2027-12-mechanism-author-manifesto`, `editorial-2027-12-field-author-manifesto`.
- **Техническая проблема:** манифест легко становится набором лозунгов, не отражающим реальную редакционную практику; вывести правила из разобранных решений, ревью и исправлений, а не объявить их истиной.
- **Источники:** архив опубликованных статей/изменений и редакционные review-записи + данные о проверках, исправлениях и обратной связи.
- **Визуал:** график эволюции редакционных решений и rubric качества статьи.
- **Голос / объём:** М10, 10–15 тыс. знаков.
- **Зависимости и риск:** П94, П115–П117; Р-К, Р-Ф.
## Зависимости и порядок запуска
1. **Не переписывать партии из середины траектории раньше опорных.** П01–П11 дают словарь диагностики, интеграций и примеров. П12–П22 расширяют его на браузер, HTTP, API и данные. Это сохраняет правдоподобное развитие автора.
2. **Исследование ведётся партиями, а не одним архивным поиском.** Для каждой партии сначала фиксируются версии и два первичных источника, затем создаётся собственный визуал, после чего пишутся три разные статьи. Общая визуальная «обложка года» не заменяет объясняющую схему внутри статьи.
3. **Артефакты переходят только как зависимость, а не как текстовый шаблон.** Например, П29–П31 можно использовать для терминов наблюдаемости в П67 и П102, но пример, данные и вывод обязаны быть новыми.
4. **Будущие даты блокируют публикационные утверждения.** П102–П118 требуют отдельной проверки календарной актуальности; если факт нельзя подтвердить на дату выпуска, материал остаётся в очереди либо маркируется как план/сценарий.
5. **О-01 не расширять искусственно.** Одиночная статья идёт в том же редакционном окне, что П09 и П12, с полной тройной вычиткой. Добавление фиктивной третьей статьи нарушит сохранность slug-архива.
## Обязательный выход каждой партии
- Три разных материала (или один для О-01), каждый в пределах 5–15 тыс. знаков основного текста.
- Два проверенных первичных источника с датой и версией.
- Один воспроизводимый пример, минимум одна таблица и один объясняющий визуал с осмысленными `alt` и подписью.
- Три отдельных результата ревью: факты и техника; редактура и голос; визуал и выпуск.
- Перед публикацией — аудит партии, проверка JSON и production-сборка. Партия не считается завершённой по числу переписанных slug без этих доказательств.