SmartQuery /ВОПРОС → ПРИМЕР → ПОНЯТНЫЙ ОТВЕТ
Веб-разработка

Как спроектировать конструктор: модель, редактор и экспорт

Сначала определите, что именно собирает пользователь: форму, страницу, диаграмму или конфигурацию. Без этого слово «конструктор» не задаёт архитектуру. Для первого выпуска ограничьте один результат и небольшой набор блоков.

Модель документа

Отделите данные проекта от DOM редактора. Например, у блока есть стабильный ID, тип и проверенные параметры. Сохранение версии формата позволит позже мигрировать старые проекты.

{
  "version": 1,
  "blocks": [{"id": "title-1", "type": "heading", "text": "Пример"}]
}

Минимальный путь пользователя

  1. Добавить допустимый блок из палитры.
  2. Изменить его параметры и увидеть результат.
  3. Переместить блок и отменить ошибочное действие.
  4. Сохранить проект и открыть его заново без потери порядка и значений.
  5. Экспортировать результат в заявленном формате.

Реализация и проверка

Используйте один источник состояния и проверяйте импортируемый документ. Недоверенный текст выводите как текст, а не исполняемый HTML. Ограничьте число блоков и размер файла, не исполняйте код из импортированного проекта.

Проверьте пустой документ, длинный текст, неизвестный тип блока, undo/redo и повторное открытие. Drag-and-drop дополните клавиатурным способом перестановки. Документация должна объяснять ограничения экспорта и совместимость версий, а не обещать работу на любой платформе без проверки.

Документация