Разработка с помощью Optimizely (ранее Episerver) требует больше, чем просто технические ноу-хау. Речь идет об уважении точки зрения редактора, обеспечении производительности и применении соглашений, которые делают управление контентом устойчивым. Ниже приведены некоторые из наиболее распространенных ошибок, которые допускают начинающие разработчики Optimisely, которые я собрал из множества различных проектов, над которыми мне довелось работать за последние пару лет.
Соблюдайте редакционные настройки
- Всегда учитывать языки, статус публикации, права доступа и настройки персонализации..
- Не полагайтесь исключительно на
ContentRepositoryдля получения контента — редакторы могут применять правила в режиме редактирования, которые необходимо соблюдать. - В многоязычных реализациях обязательно возвращайте правильный язык, учитывая резервные настройки, которые может установить редактор.
- Использовать Поиск и навигация API для получения списков страниц, применения фильтров для удаленного или неопубликованного контента и исключения страниц с ограниченным доступом, таких как 404.
- Также будьте готовы иметь запасной вариант на случай, если Поиск и навигация API недоступен.
Стратегии кэширования
- Кэш глобальные настройки и общие элементы страницы для повышения производительности.
- Всегда стремитесь кэшировать модели представлений.никогда не оптимизируйте модели данных, чтобы избежать ненужного потребления памяти.
- Позаботьтесь о стратегии аннулирования кэша.
Моделирование типов контента
- Подумайте от взгляд редактора при проектировании типов страниц и блоков.
- Обязательно обеспечьте удобство редактирования.
- Применять принципы программирования SOLID
- Позаботьтесь об использовании базовых классов, интерфейсов и наследования.
- При моделировании типов и свойств контента всегда задавайте следующие вопросы:
- он будет многоразовый?
- он будет содержать один или несколько элементов?
- это глобально или связано с сайтом?
- это обязательно или необязательно?
- может ли он иметь значение по умолчанию?
- это локализуемо?
- это доступно для поиска?
- какие могут быть правила проверки?
- Использовать КонтентАреа когда вам нужно:
- Персонализация
- Группировка блоков
- Применение настроек сетки
- Использовать XHtmlString когда вам нужна возможность редактирования расширенного текста, но имейте в виду, что XHtmlString также является контейнером для всех других типов контента, подобно КонтентАреа он поддерживает персонализацию
- Используйте блоки, когда вам нужен контент многократного использования или когда вам нужно применить персонализацию в ContentArea.
- Используйте блок в качестве типа свойства для группировки большего количества свойств, что также упрощает редактирование этих свойств в режиме предварительного просмотра страницы.
- Избегайте вложения более чем два уровня блоков для предотвращения проблем с производительностью и индексацией.
- Для динамического вложения контента предпочитайте
IListсвойство с BlockType, определенным как AvailableInEditMode = false. - Изучайте и используйте готовый выбор свойств.
- Помнить: любое изменение модели типа контента приводит к изменению базы данных, за исключением значений атрибутов, таких как
DisplayNameили правила проверки. - Свойство, удаленное из кода, НЕ удаляется из базы данных. Обязательно очистите эти свойства в режиме администратора.
- Если вам нужно проверить ввод из редактора, используйте атрибут проверки вместо события «Сохранение».
- Тщательно определите, какие типы контента могут быть вложены в другие, и укажите, какие блоки разрешены в области контента.
- Избегайте создания циклических ссылок между типами контента, так как это может привести к бесконечным циклам и вызвать проблемы с индексацией поиска.
Запланированные задания
- Запланированные задания ведут себя по-разному при запуске вручную и автоматически.
- При запуске вручную это означает, что вы вошли в систему и будет использоваться ваш принципал пользователя.
- Убедитесь в правильности принципал пользователя устанавливается при автоматическом запуске запланированного задания и при доступе к защищенному содержимому.
- Монитор для сигналы остановки работы во время выполнения, чтобы корректно обрабатывать прерывания.
- Обязательно запрещать Запланированные задания в среде разработки, чтобы избежать выполнения заданий в фоновом режиме без предварительного уведомления.
Осведомленность о сайте и домене
- текущий домен в URL определяет активный сайт.
- Внимательно проверьте настройки сайта: сайт с
*в своем списке хостов будет отвечать на все домены, указывающие на этот сервер.
Редактирование расширенного текста
- Настроить TinyMCE параметры: шрифты, стили, плагины, разрешенные блоки и функции персонализации.
- Поймите взаимосвязь между XHtmlString и КонтентАреа:
-
XHtmlStringпредставляет собой гибкий контейнер для любого контента, визуализируемый в редакторе TinyMCE.ContentAreaнаследует отXHtmlStringи отображается как контейнер контента.
Управление недвижимостью
- Свойства могут определять тип, значения по умолчанию и атрибуты, такие как
UIHint,Validation,Localization,Displayи параметры рендеринга. - Управляйте отображением свойств и их видимостью в режиме редактирования.
- Используйте события осторожно, приведя к наименьший возможный тип (например, интерфейс) чтобы убедиться в правильности.
Найти индексацию
- Позаботьтесь о контенте, который необходимо проиндексировать, добавьте необходимые соглашения об индексировании.
- Будьте осторожны при настройке среды разработки и не используйте URL-адрес службы индексирования Optimizely DXP, иначе туда может попасть содержимое из вашей локальной базы данных.
Заключение
Разработка Optimize — это не только написание кода, но и создание удобной среды для редакторов, обеспечение производительности и применение масштабируемых соглашений. Соблюдая редакционные настройки, разумно кэшируя, тщательно моделируя контент и настраивая такие инструменты, как TinyMCE, разработчики могут предоставлять решения, которые расширяют возможности как создателей контента, так и конечных пользователей.
10 декабря 2025 г.
По теме
