Files
progcode/editorial/reviews/2019-08-draft.md
T
huncode 18adfa80b4
Build and deploy / deploy (push) Successful in 13s
revise June and August 2019 articles
2026-07-31 10:49:16 +03:00

8.8 KiB
Raw Blame History

P18 · 2019-08 · Производительность первой загрузки

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

  • editorial-2019-08-practice-frontend-performance;
  • editorial-2019-08-mechanism-frontend-performance;
  • editorial-2019-08-field-frontend-performance.

Рамка и границы утверждений

Голос — М2, август 2019 года: автор уже уверенно работает с browser DevTools, Network, trace и границами модулей, но не выдает поздние платформы наблюдаемости, RUM-распределения или современные Core Web Vitals за личную практику того периода. Речь в каждой статье следует маршруту «симптом → причина → проверка → действие».

Материал использует Navigation/Resource/User Timing и документацию Chrome DevTools. Позднейшая web.dev-терминология LCP используется только как редакторская рамка для полноты диагностики: она не названа сделанным в 2019 году замером и не подставлена вместо browser trace.

В модуле есть один контролируемый Node fixture. Его числа network=180, javascript=165, css=90, image=45 ms и 210000 bytes проверяют классификацию четырёх владельцев. Fixture не открывает браузер, не делает HTTP-запрос и не является production-значением или performance trace.

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

  • Сверены официальные определения Navigation Timing и PerformanceResourceTiming: navigation относится к документу, resource — к отдельным ресурсам; поля cross-origin могут быть ограничены без Timing-Allow-Origin.
  • Утверждение о JavaScript не сведено к весу gzip-файла. Сеть, parse, execute, DOM, style/layout, decode и paint названы разными участками, требующими разной проверки.
  • Для LCP использована современная официальная разбивка на TTFB, resource load delay, duration и element render delay. В статьях ясно сказано, что это способ проверить гипотезу при переиздании, а не подлинный отчёт автора за август 2019.
  • responseEnd, img.complete, DOMContentLoaded и load нигде не выданы за универсальный момент полезности экрана. У каждого есть описанное ограничение.
  • fixture проверяет только классификацию. В тексте не заявлены выполненные trace, мобильный throttling, скриншоты или значения реального проекта.
  • Вердикт: технические формулировки проверяемы и отделяют факт API от лабораторного наблюдения и production-метрики.

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

  • В первых абзацах каждой статьи названы наблюдаемый сбой и цена ложной правки: пустой первый экран, случайное сжатие hero или ложный вывод по серверному ответу.
  • Изложение не обещает «ускорить страницу» общими словами. Для каждой ветви есть объект проверки: URL в HTML, момент старта на waterfall, участок scripting, CSSOM/layout, decode и screenshot.
  • Тон намеренно сдержан: автор предлагает короткие local experiments, сохранение условий и обратимые изменения, а не приписывает периоду SLO-платформу или точность современных отчётов.
  • Все статьи проходят диапазон 5 000–15 000 знаков основного текста до добавления таблиц, кода, SVG и списка источников; это дополнительно проверяет модуль при импорте.
  • Вердикт: текст прагматичен, технически плотен и не превращает сильный заголовок в скромную заметку без раскрытия.

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

  • Практика получает схему четырёх дорожек: сеть, JavaScript, CSS и image. Механизм получает граф зависимостей HTML, CSS, JavaScript и hero. Разбор получает дерево диагностики от полезного screenshot к одному эксперименту.
  • У каждого SVG есть title, desc, содержательный alt в статье и подпись. Все схемы рассчитаны на вертикальное чтение на узкой ширине, без скриптов, внешних изображений и raster-заменителей.
  • Первый raster-render выявил обрезание длинных нижних подписей и заголовка диагностики. Текст сокращён и перенесён; повторный рендер схем в 1 000 px и 375 px подтвердил отсутствие обрезания, наложения или горизонтального overflow.
  • В каждой ревизии есть доступная таблица с thead и scope="col", код, нумерованный маршрут, ранняя постановка проблемы и минимум две первичные/официальные ссылки.
  • Production build, registry и articles.json намеренно не запускались и не менялись: они относятся к отдельному интеграционному ревью.
  • Вердикт: пакет готов к независимому draft gate и только после него — к отдельной интеграции.

Выполненные проверки

Проверка Команда Результат
Node syntax node --check scripts/upgrade-2019-08.mjs из web/ успешно
JSON-only CLI и import-safe export npm run audit:draft -- scripts/upgrade-2019-08.mjs из web/ успешно: 11 958, 11 919 и 12 638 знаков body по gate
Controlled fixture node scripts/upgrade-2019-08.mjs --run-fixture из web/ успешно: четыре владельца, 210 000 bytes, 480 ms как сумма самостоятельных fixture-длительностей
XML xmllint --noout public/assets/editorial/2019/frontend-loading-profile-2019.svg public/assets/editorial/2019/frontend-critical-path-2019.svg public/assets/editorial/2019/frontend-performance-diagnosis-2019.svg из web/ успешно

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

Черновой пакет прошёл независимые syntax, draft gate, fixture и XML-проверки. После подключения registry основной редактор повторил strict audit: все три slug прошли объём 11 958 / 11 919 / 12 638 знаков, figure, таблицы, код, маршруты и источники. npm run build завершился с кодом 0 и сгенерировал 374 статические страницы.

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