Руководство для начинающих для Optimizely Backend-разработчиков

Разработка с помощью Optimizely (ранее Episerver) требует больше, чем просто технические ноу-хау. Речь идет об уважении точки зрения редактора, обеспечении производительности и применении соглашений, которые делают управление контентом устойчивым. Ниже приведены некоторые из наиболее распространенных ошибок, которые допускают начинающие разработчики Optimisely, которые я собрал из множества различных проектов, над которыми мне довелось работать за последние пару лет.

Соблюдайте редакционные настройки

  • Всегда учитывать языки, статус публикации, права доступа и настройки персонализации..
  • Не полагайтесь исключительно на ContentRepository для получения контента — редакторы могут применять правила в режиме редактирования, которые необходимо соблюдать.
  • В многоязычных реализациях обязательно возвращайте правильный язык, учитывая резервные настройки, которые может установить редактор.
  • Использовать Поиск и навигация API для получения списков страниц, применения фильтров для удаленного или неопубликованного контента и исключения страниц с ограниченным доступом, таких как 404.
  • Также будьте готовы иметь запасной вариант на случай, если Поиск и навигация API недоступен.

Стратегии кэширования

  • Кэш глобальные настройки и общие элементы страницы для повышения производительности.
  • Всегда стремитесь кэшировать модели представлений.никогда не оптимизируйте модели данных, чтобы избежать ненужного потребления памяти.
  • Позаботьтесь о стратегии аннулирования кэша.

Моделирование типов контента

  • Подумайте от взгляд редактора при проектировании типов страниц и блоков.
  • Обязательно обеспечьте удобство редактирования.
  • Применять принципы программирования SOLID
  • Позаботьтесь об использовании базовых классов, интерфейсов и наследования.
  • При моделировании типов и свойств контента всегда задавайте следующие вопросы:
    • он будет многоразовый?
    • он будет содержать один или несколько элементов?
    • это глобально или связано с сайтом?
    • это обязательно или необязательно?
    • может ли он иметь значение по умолчанию?
    • это локализуемо?
    • это доступно для поиска?
    • какие могут быть правила проверки?
  • Использовать КонтентАреа когда вам нужно:
    • Персонализация
    • Группировка блоков
    • Применение настроек сетки
  • Использовать XHtmlString когда вам нужна возможность редактирования расширенного текста, но имейте в виду, что XHtmlString также является контейнером для всех других типов контента, подобно КонтентАреа он поддерживает персонализацию
  • Используйте блоки, когда вам нужен контент многократного использования или когда вам нужно применить персонализацию в ContentArea.
  • Используйте блок в качестве типа свойства для группировки большего количества свойств, что также упрощает редактирование этих свойств в режиме предварительного просмотра страницы.
  • Избегайте вложения более чем два уровня блоков для предотвращения проблем с производительностью и индексацией.
  • Для динамического вложения контента предпочитайте IList свойство с BlockType, определенным как AvailableInEditMode = false.
  • Изучайте и используйте готовый выбор свойств.
  • Помнить: любое изменение модели типа контента приводит к изменению базы данных, за исключением значений атрибутов, таких как DisplayName или правила проверки.
  • Свойство, удаленное из кода, НЕ удаляется из базы данных. Обязательно очистите эти свойства в режиме администратора.
  • Если вам нужно проверить ввод из редактора, используйте атрибут проверки вместо события «Сохранение».
  • Тщательно определите, какие типы контента могут быть вложены в другие, и укажите, какие блоки разрешены в области контента.
  • Избегайте создания циклических ссылок между типами контента, так как это может привести к бесконечным циклам и вызвать проблемы с индексацией поиска.
Read more:  Гутерриш посетил печально известную сирийскую тюрьму Седная

Запланированные задания

  • Запланированные задания ведут себя по-разному при запуске вручную и автоматически.
  • При запуске вручную это означает, что вы вошли в систему и будет использоваться ваш принципал пользователя.
  • Убедитесь в правильности принципал пользователя устанавливается при автоматическом запуске запланированного задания и при доступе к защищенному содержимому.
  • Монитор для сигналы остановки работы во время выполнения, чтобы корректно обрабатывать прерывания.
  • Обязательно запрещать Запланированные задания в среде разработки, чтобы избежать выполнения заданий в фоновом режиме без предварительного уведомления.

Осведомленность о сайте и домене

  • текущий домен в URL определяет активный сайт.
  • Внимательно проверьте настройки сайта: сайт с * в своем списке хостов будет отвечать на все домены, указывающие на этот сервер.

Редактирование расширенного текста

  • Настроить TinyMCE параметры: шрифты, стили, плагины, разрешенные блоки и функции персонализации.
  • Поймите взаимосвязь между XHtmlString и КонтентАреа:
    • XHtmlString представляет собой гибкий контейнер для любого контента, визуализируемый в редакторе TinyMCE.
    • ContentArea наследует от XHtmlString и отображается как контейнер контента.

Управление недвижимостью

  • Свойства могут определять тип, значения по умолчанию и атрибуты, такие как UIHint, Validation, Localization, Displayи параметры рендеринга.
  • Управляйте отображением свойств и их видимостью в режиме редактирования.
  • Используйте события осторожно, приведя к наименьший возможный тип (например, интерфейс) чтобы убедиться в правильности.

Найти индексацию

  • Позаботьтесь о контенте, который необходимо проиндексировать, добавьте необходимые соглашения об индексировании.
  • Будьте осторожны при настройке среды разработки и не используйте URL-адрес службы индексирования Optimizely DXP, иначе туда может попасть содержимое из вашей локальной базы данных.

Заключение

Разработка Optimize — это не только написание кода, но и создание удобной среды для редакторов, обеспечение производительности и применение масштабируемых соглашений. Соблюдая редакционные настройки, разумно кэшируя, тщательно моделируя контент и настраивая такие инструменты, как TinyMCE, разработчики могут предоставлять решения, которые расширяют возможности как создателей контента, так и конечных пользователей.

Read more:  Опять Трамп против прессы, с новой угрозой для BBC – DW – 11.11.2025

10 декабря 2025 г.

По теме

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.