Шаблон для публикации (best-practice)
Этот шаблон — чек-лист для финального ревью перед публикацией/передачей виджета.
1) Базовые требования
- Визуально и функционально соответствует ТЗ.
- Виджет использует
Widget()+useParams(v2). - Версия языка в дескрипторе —
widgetLanguageVersion = 2. - Код проходит сохранение без
compile-ошибок. - Рендер выполняется без
evaluate-ошибок приmax-наборе тестовых параметров. - Добавлены все обязательные параметры:
width,height(если размер меняет макет).
2) Проверка API-поведения
- Имена параметров понятные и согласованы с UI/техописанием.
- Типы параметров выбраны из allowlist runtime (float/string/colorGradient/button/...).
- Для параметров с
defaultуказаны безопасные fallback-значения. - Для кнопок/переинициализации используется
type: "button"иonClick. - Для editable-текста:
editable="text"или соответствующий механизм установлен на нужный элемент,- есть корректная связка с параметром текста,
- сохранение текста после потери фокуса работает.
- Если есть font/градиенты: применена корректная развилка
isGradient(...)(fill/stroke/strokeColor).
3) Проверка рендеринга и производительности
- Включен
useBlockMemoдля тяжёлых вычислений (path, random, геометрия, SVG-подсчёты). - Проверен рендер при разных размерах блока (
50x50,1920x1080,высокий DPR). - Нет явных
forбез ограничений итераций и рекурсий. - Нет чрезмерных массивов/детализации, которая явно больше лимитов runtime.
- Нет бесконечных/самопереходных зависимостей в
depsдляuseBlockMemo.
4) Проверка совместимости платформы
- Только разрешённые теги/атрибуты/
styleсвойства. - Нет
window,document,fetch,eval,Workerи других запрещённых идентификаторов. - Нет inline-ссылок с небезопасными схемами (
javascript:,data:и т.д.). - Нет
styleс неподдерживаемыми CSS-свойствами. - Не передаются функции в JSX-props (кроме разрешённых путей через action-поля параметров).
5) Проверка состояния и совместимости проекта
- Виджет не ломает существующие проекты после
undo/redo/undo-selection. - Поведение параметров корректно при
undefined/nullзначениях. -
v1ParamNameоставлен для параметров, если это legacy-проект. - Нет прямой зависимости от внешнего runtime-состояния проекта вне
useParams/capabilities.
6) Визуальная валидация (обязательный мини-проход)
Запустите и зафиксируйте:
- пустой блок (минимальные параметры),
- изменение всех ключевых параметров,
- двойной клик/переключение режимов редактирования (если есть),
- зум/перемещение/масштаб блока,
- сохранение и повторная загрузка проекта.
- После каждого шага не появляется новых ошибок.
- Нет визуальных «рывков» (snap/flicker) больше 1 раза на сценарий.
7) Чек-лист готовности к публикации
- Название и описание понятны редактору и менеджеру контента.
- Есть пример использования (скрин/пометка «как использовать»).
- Есть минимальная версия для rollback в репозитории/репликах.
- Пройдено ручное или автоматизированное smoke-тестирование.
- Записано, при каких ограничениях/лимитах этот виджет можно использовать.
![Пример чек-листа публикации] []
Подпись перед публикацией:
- Оценка: ✅ готов / ⚠️ требуется доработать / ❌ блокер;
- Автор кода: ...
- Тестировщик: ...
- Дата: ...