Spec-Zone.ru › Wagtail 2

Философия Wagtail

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

В духе “Философии Python”, Философия Wagtail — это набор руководящих принципов, как для разработки веб-сайтов с помощью Wagtail, так и для дальнейшего развития самого Wagtail.

Wagtail — это не моментальный веб-сайт в коробке.

Вы не сможете создать красивый веб-сайт, просто соединив готовые модули — ожидайте написания кода.

Всегда надевайте правильную шляпу.

Ключ к эффективному использованию Wagtail заключается в понимании множества ролей, участвующих в создании веб-сайта: автор контента, администратор сайта, разработчик и дизайнер. Эти роли могут принадлежать разным людям, но не обязательно — если вы используете Wagtail для создания своего личного блога, скорее всего, вам придется переключаться между этими ролями. В любом случае, важно понимать, какую роль вы выполняете в данный момент и использовать для неё соответствующие инструменты. Автор контента или администратор сайта большую часть своей работы выполнят через админ-панель Wagtail; разработчик или дизайнер большую часть времени будут писать код Python, HTML или CSS. Это хорошо: Wagtail не предназначен для замены программирования. Возможно, когда-нибудь кто-то разработает систему для создания веб-сайтов с помощью перетаскивания элементов, столь же мощную, как написание кода, но Wagtail — это не тот инструмент, и он не стремится им быть.

Частая ошибка — передача слишком большой власти и ответственности автору контента и администратору сайта — особенно если эти люди являются вашими клиентами, они, вероятно, будут громко требовать именно этого. Успех вашего сайта зависит от вашей способности сказать «нет». Настоящая сила управления контентом не в том, чтобы передавать контроль пользователям CMS, а в том, чтобы четко разграничить различные роли. Среди прочего, это означает, что редакторы не должны заниматься дизайном и макетом в интерфейсе редактирования контента, а администраторы сайта не должны создавать сложные рабочие процессы взаимодействия, которые лучше реализовать с помощью кода.

Система управления контентом должна максимально эффективно и напрямую извлекать информацию из головы редактора и записывать её в базу данных.

Независимо от того, посвящён ли ваш сайт автомобилям, кошкам, кексам или сделкам с недвижимостью, ваши авторы контента придут в админ-панель Wagtail с некоторой специфичной информацией, которую они хотят разместить на сайте. Ваша задача как создателя сайта — извлечь и сохранить эту информацию в её исходном виде, а не в интерпретации конкретного автора о том, как эта информация должна выглядеть.

Изоляция проблем дизайна от контента страницы имеет много преимуществ. Она гарантирует, что дизайн останется последовательным на всём сайте и не будет зависеть от капризов редакторов от одного дня к другому. Это позволяет вам в полной мере использовать информационный контент страниц — например, если ваши страницы посвящены событиям, наличие специального типа страницы «Событие» с полями данных для даты и места проведения события позволит вам отображать события в календарном виде или в фильтрованном списке, что было бы невозможно, если бы эти данные просто реализовывались как разные стили заголовков на универсальной странице. Наконец, если вы переделаете сайт в будущем или перенесёте его на другую платформу, вы можете быть уверены, что контент сайта будет работать в новой среде и не будет зависеть от его формата.

Предположим, автор контента обращается к вам с просьбой: «Нам нужно, чтобы этот текст был ярко-розовым цветом с шрифтом Comic Sans». Ваш вопрос должен быть: «Почему? Что особенного в этом конкретном тексте?» Если ответ — «Мне просто нравится его вид», то вам придётся мягко убедить их в том, что они не должны принимать решения о дизайне. (Извините.) Но если ответ — «Это для раздела для детей», то это даёт возможность разделить редакционные и дизайнерские задачи: предоставьте редакторам возможность определять определённые страницы как «раздел для детей» (с помощью тегов, различных моделей страниц или иерархии сайта), и позвольте дизайнерам решать, как применять стили на основе этого.

Лучший интерфейс пользователя для программиста, как правило, — это язык программирования.

В системах управления контентом часто встречается интерфейс «наведи и щелкни», позволяющий определять модель данных, формирующую страницу:

../_images/drupal_content_type.png

Это выглядит привлекательно в рекламных материалах, но на самом деле ни один конечный пользователь CMS не может в реальности внести такие фундаментальные изменения — особенно на действующем сайте — если у него нет понимания программиста о том, как построен сайт и какое влияние это изменение окажет. Таким образом, программист всегда должен работать с этим интерфейсом «наведи и щелкни» — вы всего лишь отдали его от привычной работы с кодом, где у него есть весь экосистема инструментов, от текстовых редакторов до систем управления версиями, помогающих ему разрабатывать, тестировать и развертывать изменения в своём коде.

Wagtail понимает, что большинство задач программирования лучше всего выполняется с помощью написания кода и не пытается превращать их в заполнение ячеек, когда для этого нет веских причин. Точно так же, при создании функциональности для вашего сайта, вы должны помнить, что некоторые функции предназначены для обслуживания программистом, а не редактором контента, и подумайте, будет ли их настройка через админ-панель Wagtail удобнее или помешает.

Например, Wagtail предоставляет инструмент для создания форм, позволяющий авторам контента создавать универсальные формы сбора данных. Вы можете быть искушены использовать его в качестве основы для более сложных форм, которые интегрируются (например), с системой CRM или платежным процессором — однако в этом случае невозможно изменить поля формы без переписывания логики бэкенда, поэтому их редактирование через Wagtail имеет ограниченную ценность. Скорее всего, вам будет лучше построить их, используя фреймворк форм Django, где поля формы определяются исключительно кодом.

  • Предыдущая Интеграция Wagtail в проект Django
  • Следующая Руководство по использованию

Содержание страницы

  • Философия Wagtail
    • Wagtail — это не моментальный веб-сайт в коробке.
    • Всегда надевайте правильную шляпу.
    • Система управления контентом должна максимально эффективно и напрямую извлекать информацию из головы редактора и записывать её в базу данных.
    • Лучший интерфейс пользователя для программиста, как правило, — это язык программирования.

© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v2.16.3/getting_started/the_zen_of_wagtail.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API