Современная архитектура внешнего интерфейса администратора, меньше зависимостей от браузера, новый конвейер ресурсов, долгосрочная поддержка 2.0

Чуть больше года назад Apostrophe 2.0 попал в реестр npm. Как первая зрелая и полная система управления контентом Node.js с открытым исходным кодом и поддержкой редактирования содержимого на странице, Apostrophe набирает обороты. В настоящее время его скачивают более десяти тысяч раз в месяц. С тех пор мы обновили наш бренд и маркетинговые материалы, развернули корпоративные сервисы, спонсировали конференцию, выпустили модули Рабочий процесс и Без головы и запустили более 80 проектов на основе апострофа. Мы также получили известие от сообщества.

Одним из самых важных отзывов нашего замечательного сообщества разработчиков является то, что расширение внешнего интерфейса интерфейса администратора не так удобно, как расширение CMS в целом, и мы хотим решить эту проблему. Более того, мы хотим, чтобы веб-сайт, построенный на Apostrophe, отвечал самым высоким стандартам производительности. С этой целью мы хотим ограничить ресурсы, передаваемые в браузер для пользователей без прав администратора. Мы прислушались к этим отзывам и планируем внести эти изменения в Apostrophe 3.0.

Хотя долгосрочная поддержка Apostrophe 2.0 продлится как минимум до конца 2020 года, мы рады сообщить, что начали процесс планирования 3.0!

Цель: современный интерфейс администратора, удобный для разработчиков.

В настоящее время Apostrophe имеет настраиваемый пользовательский интерфейс администратора, построенный в объектно-ориентированной парадигме с библиотеками jQuery, lodash и async. Хотя у него есть свои преимущества и он хорошо служил нам в период, когда казалось, что новый интерфейсный фреймворк появлялся каждый день, это еще одна вещь, которую разработчики должны изучить. Мы хотели бы видеть больше вкладов сообщества в административный интерфейс Apostrophe. Поэтому мы планируем внедрить легкую современную структуру с более широким признанием разработчиков, декларативным рендерингом и виртуальной DOM, например React.js или Vue.js. Мы также планируем объединить эту структуру с нашей текущей структурой. Это позволяет по-прежнему предоставлять большую часть пользовательского интерфейса администратора автоматически без необходимости генерации шаблонного кода.

Где мы находимся и чем занимаемся

Мы только на предварительных этапах планирования того, как на самом деле будут выглядеть реализации 3.0, но мы разбили объем на следующие группы:

Пользовательский опыт и интерфейс

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

Большинство этих улучшений будет реализовано даже до версии 3.0. Перестройка внешнего интерфейса позволит нам индивидуально оценивать элементы интерфейса, создавать живую библиотеку шаблонов и организовывать CSS на основе архитектуры ITCSS. Это приводит к лучшей стандартизации и разделению компонентов Apostrophe для создания более устойчивого интерфейса.

Рефакторинг Asset Pipeline

Текущий встроенный конвейер ресурсов Apostrophe будет заменен реализацией, которая объединяет широко используемый инструмент, такой как Webpack или Gulp, но при этом учитывает необходимость поддержки ресурсов, предоставляемых модулями. Хотя создание ресурсов с помощью ваших собственных инструментов и отправка их в Apostrophe по-прежнему будет поддерживаться, для улучшения нашего кода администрирования внешнего интерфейса мы выберем новый «домашний стиль» для сборок ресурсов, который включает препроцессор CSS, такой как SASS, а не LESS, и использование Babel. У вас также будет возможность использовать его для активов на уровне вашего проекта.

Говоря об активах, в то время как Apostrophe действительно различает активы, необходимые администраторам, и активы, необходимые общественности, в настоящее время мы выкладываем слишком много информации для публики. 3.x будет поддерживать публикацию вообще ничего, кроме того, что вы выберете на уровне проекта. Эта опция, вероятно, появится еще до выхода версии 3.0.

Фреймворк Frontend

Как упоминалось ранее, мы планируем внедрить облегченную структуру внешнего интерфейса для рендеринга административного интерфейса Apostrophe, такого как модальные окна, редакторы и контекстный админ-хром. Цель использования фреймворка состоит в том, чтобы компоненты Apostrophe легко писались в формате, знакомом широкому кругу разработчиков, при сохранении плотно инкапсулированного формата компонентов.

Vue.js и React.js быстро стали главными претендентами из-за сочетания адаптации, скорости и простоты. Пока мы оцениваем и то, и другое, в настоящее время склоняемся к Vue.js. И внутренняя команда Apostrophe, и наши корпоративные клиенты успешно используют Vue.js, и он соответствует нашим критериям легкой и простой структуры. Одна из наших технических проблем будет заключаться в объединении компонентной архитектуры Vue.js с функциональным объектно-ориентированным шаблоном программирования Apostrophe, который дает нам нулевой шаблонный код для создания подклассов и расширения частей во внешнем интерфейсе, если не требуется настраиваемая функциональность. Это шаблон, которому придерживается Apostrophe, и мы по-прежнему считаем, что это отличное решение нашей проблемы.

Чего мы не собираемся делать в версии 3.0

В версии 3.0 мы избежим значительных сбоев обратной совместимости для большей части серверного кода Apostrophe, особенно того, что вы, вероятно, будете делать на уровне проекта. Мы можем ввести несколько перерывов на bc, где есть явная победа для всех, особенно в том, что касается лучшей поддержки обещаний и лучшей производительности. Но вам точно не нужно «начинать с нуля».

Участвуйте и следите за новостями

Продолжая разрабатывать дорожную карту для Apostrophe 3.0, мы будем обращаться к сообществу за мнениями и мнениями. Мы будем задавать конкретные технические вопросы и вопросы реализации на Апострофе: Форум и будем работать над дорожной картой высокого уровня на 2018 год здесь Апостроф 2018 · GitHub.

С Новым годом от команды ApostropheCMS!

Обновление: наше первое техническое обсуждение Апострофа 3.0

Мы организовали обсуждение наилучшего способа обработки событий, влияющих на многие модули на форуме Apostrophe. Пожалуйста, пройдите и участвуйте!