7.0 KiB
7.0 KiB
П57 · 2022-11 · Производительность Bitrix-страницы — три прохода саморевью
Рамка пакета
- Slug:
editorial-2022-11-practice-bitrix-performance,editorial-2022-11-mechanism-bitrix-performance,editorial-2022-11-field-bitrix-performance. - Голос: М5, ноябрь 2022 года. Краткая прагматичная техническая речь: симптом → причина → проверка → действие. Автор уже системно разделяет границы, но не объявляет production-результат без артефакта.
- Граница: package не запускает Bitrix, PHP, HTTP, SQL, файловый кеш, шаблон, браузер, profiler, часы или метрики.
declared-cache-reuseиdeclared-cache-build— только ветки локальной модели, не cache hit/miss. - Sidecar содержит ровно пять новых файлов. Registry, README,
articles.json, очередь, документация, Git, другие месяцы и чужие файлы не менялись.
Проход 1 — факты и техника
- Проверены три первичных исторических источника Bitrix с точными immutable Wayback URL и ответом
HTTP/2 200: StartResultCache, snapshot 27.09.2022, SetResultCacheKeys, snapshot 15.08.2022, курс о кешировании, snapshot 29.06.2022. Все снимки доступны до ноября 2022; текущие плавающие страницы не используются как историческое доказательство. - Документы применены строго в своей области:
StartResultCache— для возвращаемых веток и базовых частей зависимости;SetResultCacheKeys— для того, какие части$arResultсохраняются; курс — для различения типов кеширования. Ни один источник не назван профилем страницы, SQL trace, cache hit-rate или измерением ответа. - Независимая правка редактора: первоначально rollback строился от исходного объекта, поэтому формально возвращал прежний template, не пройдя через учебно изменённую версию. Теперь
applyTeachingChangeсохраняет отдельную неизменяемую changed model, а rollback начинается именно от неё; fixture проверяет и смену template, и его возврат. runBitrixPerformanceFixture()имеет тринадцать assertions о локальных объектах: нет runtime/SQL/duration/profiler, полный и неполный key contract различаются, неполный contract блокирует изменение, план создаёт отдельную версию с rollback, rollback возвращает template. Нет assertion о реальном Bitrix, пользователе, HTTP, HTML, миллисекундах или эффекте оптимизации.
Проход 2 — голос, полнота и объём
- Первые два абзаца каждой статьи называют ошибку и цену: слово «Bitrix» скрывает границу, а слепая очистка кеша, переписывание шаблона или изменение ресурсов увеличивают риск без доказательства причины.
- Каждая статья содержит таблицу, исполнимый code/example, нумерованный маршрут, одну содержательную figure с alt/caption, ограничения, rollback и следующий шаг. Полевой материал не маскирует типичный случай под реальный кейс.
- Основной текст без списка источников: 8 100 / 9 205 / 8 836 знаков. Внутренний builder и
audit:draftподтверждают диапазон 5 000–15 000 и минимум 8 минут чтения.
Проход 3 — визуал, безопасность и выпуск
- Три SVG разделяют вопросы: request/component/cache/template evidence contract, полнота cache key и маршрут diagnosis/rollback. На ширине 375 px проверены Sharp-рендеры; заголовки и последовательность различимы, мелкий технический текст не несёт единственного смысла.
- После независимой правки повторно пройдены:
node --check web/scripts/upgrade-2022-11.mjs;node web/scripts/upgrade-2022-11.mjs --verify-fixture— PASS 13/13;cd web && npm run audit:draft -- scripts/upgrade-2022-11.mjs— PASS; прямой import-safe экспорт безdate/author;xmllint --noout; safety scan безscript,foreignObject, external/data href и inline handlers; Sharp-review всех SVG на 375 px. - При приёмке пакет добавлен в registry поверх исходных slug;
articles.json, даты и автор не менялись. README обновлён с 172 до 175 принятых материалов из 358. Чужие sidecar-файлы не затрагивались.
Интеграционная приёмка
- Строгий аудит опубликованного overlay прошёл для всех трёх slug: 8 108 / 9 205 / 8 864 знака, по одной figure, table и code example. Отдельная merge-проверка подтверждает исходные даты и автора
DarkRiDDeR; в registry 166 ревизий. npm run buildвweb/завершился успешно: production-сборка сгенерировала 374 статические страницы. Предупреждения относятся только к неподдерживаемым локальным npm-конфигурациям; TypeScript и Next.js завершились без ошибки.- Перед commit остаются
git diff --check, проверка точного staged-набора и отношение кorigin/master; reset и перезапись архива не применялись.