Files
progcode/editorial/reviews/2019-02-draft.md
T
huncode 238c1f7688
Build and deploy / deploy (push) Successful in 13s
revise February to May 2019 articles
2026-07-31 10:32:34 +03:00

7.8 KiB
Raw Blame History

П12 · 2019-02 · ES-модули в браузере

Статус: принят в публикационный слой 31 июля 2026 года. Registry накладывает ревизии только по стабильному slug; дата и автор остаются у базового архива.

Граница пакета

  • Slug: editorial-2019-02-practice-es-modules, editorial-2019-02-mechanism-es-modules, editorial-2019-02-field-es-modules.
  • Голос: М2, 2019 год. Автор переносит практику диагностики из PHP/Bitrix на границу браузера, URL и сборщика; не выдаёт себя за владельца большой платформы.
  • Три разных вопроса: минимальный native start; отличие браузерной URL-резолвации от этапа Webpack; диагностика двух module identity и ошибочного пути.
  • Все примеры помечены как учебные. В тексте нет заявления о настоящем browser trace, чужой production-сборке или измерении задержки.
  • Первичные источники: ECMAScript 2019, HTML Living Standard для script/module map и Fetch Standard для CORS. Для исторического ракурса native-примеры намеренно не используют import map, aliases и package resolution.

Pass 1 — факты и техника

  • Проверена граница стандартов: ECMAScript задаёт синтаксис и граф import/export, HTML задаёт загрузку, резолвацию URL и время вычисления module script.
  • Сверен native start: module script без async загружает граф параллельно разбору и вычисляется после разбора документа; defer не создаёт для module script отдельный режим.
  • Сверен путь: URL-подобные ./, ../ и / разрешаются от base URL импортёра. Браузер не обязан подставлять .js и не наследует aliases или package lookup Webpack.
  • Сверена identity: module map ключуется URL и типом. Отличный query создаёт отдельную identity; одинаковый нормализованный URL повторно не вычисляется в том же документе.
  • В полевой статье status 200 не объявлен достаточным доказательством: отдельно проверяются Response, Content-Type, Initiator и CORS.
  • В механической статье порядок зависимость → потребитель показан на учебном графе, а циклические импорты и два entry названы ограничениями.
  • Вердикт: соответствует. Bundler-поведение нигде не названо браузерной спецификацией.

Pass 2 — редактура и голос

  • Первые одно-два предложения каждого текста называют симптом и цену ошибки: пустой интерфейс, лишняя конфигурация, двойная инициализация или ложный ремонт.
  • У каждого материала один главный вопрос и единая цепочка: симптом → причина → проверка → действие → ограничение.
  • Тон короткий и предметный: наблюдения привязаны к URL, Network, Content-Type, entry, import.meta.url или конфигурации, а не к общим оценкам.
  • М2-словарь ограничен ES-модулем, графом зависимостей, entry, asset, URL, chunk и source-механикой. Поздние рамки уровня SLO, Kubernetes, OpenTelemetry и организационные метрики не добавлены.
  • Объём основного текста, который посчитал draft gate: practice — 7 998; mechanism — 7 831; field — 8 306 знаков. Во всех трёх 8–9 разделов, таблица с thead и scope, code, ordered list, figure, ограничения и точный раздел источников.
  • Вердикт: соответствует голосу автора 2019 года. Из текста удалены универсальные обещания и неподтверждённый личный опыт.

Pass 3 — визуал и выпуск

  • Созданы три разные объясняющие SVG: граф native start, граница browser/Webpack и диагностика URL identity.
  • XML каждого SVG валиден. У каждой figure есть осмысленный alt и подпись, которые передают причинную модель без чтения текста внутри картинки.
  • SVG открыты в локальном HTTP-preview при ширинах 1280 и 375 px. После узкого прохода схемы переведены в вертикальную композицию: все блоки, стрелки и ключевые метки остаются видимыми, текст не обрезан, горизонтального overflow нет.
  • Проверена существующая разметка выпуска: .article-content figure img имеет width: 100%, а .table-scroll включает overflow-x: auto и таблице задан min-width. Пакет использует именно эти контейнеры.
  • Передача в архив не производилась; production build не заявляется как выполненная, потому что автономный черновик не меняет data/articles.json.
  • Вердикт: готов к интеграционному ревью.

Фактические проверки

Проверка Команда или метод Результат
Синтаксис модуля node --check scripts/upgrade-2019-02.mjs из web PASS
Import-safe и JSON-only CLI npm run audit:draft -- scripts/upgrade-2019-02.mjs из web PASS: три revision, CLI совпадает с export
Контентный gate та же команда audit:draft PASS: 7 998 / 7 831 / 8 306 body chars
XML xmllint --noout для трёх SVG из web PASS
Статический preview curl -I http://127.0.0.1:4173/assets/editorial/2019/es-modules-native-graph-2019.svg PASS: 200, image/svg+xml
Визуал локальный preview всех трёх SVG в браузере, 1280 и 375 px PASS: без обрезания и горизонтального overflow
Границы фактов ECMAScript 2019, HTML и Fetch primary sources PASS: утверждения сверены перед редактурой

Выпусковой вердикт

После интеграции основной редактор повторно прогнал строгий аудит: все три slug прошли объём 7 998 / 7 831 / 8 306 знаков, figure, таблицу, код, маршрут действий и источники. npm run build завершился с кодом 0 и сгенерировал 374 статические страницы.

Пакет принят к публикации. articles.json не менялся: registry подменяет только редакционные поля по стабильному slug.