raise editorial quality gate and revise 2018 spring
Build and deploy / deploy (push) Successful in 15s
Build and deploy / deploy (push) Successful in 15s
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Черновое ревью — май 2018: legacy jQuery
|
||||
|
||||
Статус: принято в публикационный слой 31 июля 2026 после независимого audit. Партия намеренно не перезаписывает `web/data/articles.json`: `web/data/editorial-revisions.mjs` накладывает ревизии только по стабильным slug.
|
||||
|
||||
## Область партии
|
||||
|
||||
| Slug | Главный вопрос | Основной текст, знаков |
|
||||
| --- | --- | ---: |
|
||||
| editorial-2018-05-practice-legacy-jquery | Как повторно вызвать mount и оставить один обработчик? | 7 718 |
|
||||
| editorial-2018-05-mechanism-legacy-jquery | Почему прямой click пропадает после .html()? | 8 088 |
|
||||
| editorial-2018-05-field-legacy-jquery | Как держать один активный Ajax-запрос формы? | 8 729 |
|
||||
|
||||
Размеры посчитаны без списка источников и HTML-разметки. Каждый текст отвечает на один вопрос, начинает с наблюдаемого сбоя и заканчивается последовательностью действий с ограничениями.
|
||||
|
||||
## Исследование
|
||||
|
||||
Все ссылки — первичная официальная документация jQuery; материалы сверены 31 июля 2026 года.
|
||||
|
||||
| Статья | Источники |
|
||||
| --- | --- |
|
||||
| Повторный mount | [.on()](https://api.jquery.com/on/), [.off()](https://api.jquery.com/off/) |
|
||||
| Замена DOM | [.html()](https://api.jquery.com/html/), [.on()](https://api.jquery.com/on/), [.off()](https://api.jquery.com/off/), [.data()](https://api.jquery.com/data/) |
|
||||
| Ajax-форма | [jQuery.ajax()](https://api.jquery.com/jQuery.ajax/), [.serialize()](https://api.jquery.com/serialize/), [.prop()](https://api.jquery.com/prop/), [.data()](https://api.jquery.com/data/), [.removeData()](https://api.jquery.com/removeData/), [deferred.always()](https://api.jquery.com/deferred.always/) |
|
||||
|
||||
## Ревью 1 — факты и техника
|
||||
|
||||
**Пройдено.**
|
||||
|
||||
- Для mount проверены: пространства имён событий, снятие обработчиков по namespace, различие прямой и делегированной привязки, а также версия .on()/.off() — jQuery 1.7+.
|
||||
- Для .html() проверено основное утверждение: jQuery удаляет данные и события дочерних узлов до замены содержимого. Ограничения делегирования для SVG и не всплывающих событий названы явно. Риск вставки непроверенной HTML-строки не выдан за проблему конкретного API — это предупреждение документации.
|
||||
- Для Ajax-формы проверены: состав .serialize(), динамическое свойство disabled через .prop(), хранение и удаление маркера через .data()/.removeData(), роли done, fail и always у jqXHR. always используется только для освобождения UI и не анализирует разнородные аргументы resolve/reject.
|
||||
- Серверные последствия не выдуманы: клиентский замок ограничен текущим DOM-экземпляром; при timeout текст не обещает, что операция не была выполнена.
|
||||
|
||||
## Ревью 2 — редактура и голос
|
||||
|
||||
**Пройдено.**
|
||||
|
||||
- Речь короткая и техническая: симптом → причина → проверка → действие. Нет обещаний «универсального» решения и абстрактных вступлений о важности темы.
|
||||
- Голос соответствует 2018 году: код на jQuery, IIFE, var, $.ajax; без искусственного переноса поздних фреймворков или роли техлида в раннюю заметку.
|
||||
- У каждой статьи свой сценарий, таблица, воспроизводимый код и порядок внедрения. Три текста не повторяют один и тот же вывод под разными заголовками.
|
||||
- Убрано неподтверждённое обобщение о распространённости конкретной версии jQuery в 2018 году; примеры лишь задают поддерживаемую версию.
|
||||
|
||||
## Ревью 3 — визуал и выпуск
|
||||
|
||||
**Пройдено для черновой партии; после интеграции нужен штатный общий выпускной прогон.**
|
||||
|
||||
- Три SVG валидированы командой xmllint --noout и открыты в локальном рендере. После финальной правки нет обрезанных заголовков, стрелок или кодовых строк.
|
||||
- У каждого будущего contentHtml есть один figure с осмысленными alt и подписью, одна таблица в обёртке div.table-scroll и три блока кода.
|
||||
- В существующих стилях .table-scroll имеет горизонтальную прокрутку, а таблица — min-width: 620px; это сохраняет читаемость на узком экране без сжатия ячеек.
|
||||
- Команда node --check web/scripts/upgrade-2018-05.mjs прошла. Команда node web/scripts/upgrade-2018-05.mjs --print-revisions печатает валидный JSON ровно трёх ревизий и не записывает архив.
|
||||
|
||||
## Перед интеграцией
|
||||
|
||||
1. Основной агент импортирует JSON из параметра --print-revisions и сопоставляет только три перечисленных slug.
|
||||
2. Запускаются общий аудит партии и production-сборка.
|
||||
3. На собранных страницах повторяется проверка таблиц в узком viewport, потому что эта ветка по задаче не изменяет articles.json.
|
||||
|
||||
## Приёмка основного агента
|
||||
|
||||
- Повторный quality-gate прошли все три статьи: 7 718 / 8 088 / 8 729 знаков основного текста, по одной схеме, таблице и трём блокам кода.
|
||||
- Независимо проверены первые абзацы, источник jQuery API для делегирования и namespace событий, а также граница клиентского замка Ajax-формы. Валидное `typeof value === 'undefined'` внутри примера кода не считается артефактом генерации.
|
||||
- Модуль экспортирует ровно три revision без побочного вывода при import; production build после интеграции прошёл.
|
||||
Reference in New Issue
Block a user