Spec-Zone.ru › Wagtail

Философия Wagtail

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

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

Wagtail — не готовый веб-сайт в коробке.

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

Всегда надевайте подходящую «шапку».

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

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

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

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

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

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

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

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

Image of a CMS interface

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

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

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

Spec-Zone.ru

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