Это перевод интервью с Харальдом Лейтнером (Harald Leithner) и Нильсом Брачеком (Niels Braczek) - они вместе возглавляют релиз Joomla 5, который сейчас находится на стадии планирования.
— Харальд: Как и многие другие участники проекта Joomla, я начал работу с Joomla ещё с Mambo. Но долгое время только как пользователь. Пару лет назад я посетил Joomladay и присоединился к сообществу. После этого события я очень быстро включился в работу над ядром, присоединившись к JSST (Joomla! Security Strike Team), а затем стал руководителем релиза 3.9.3+ и координатором производственного отдела (Production Department).
— Нильс: Я вошел в мир Joomla с Mambo 4.6, непосредственным предшественником Joomla 1.0. На тот момент я уже более 25 лет занимался разработкой программного обеспечения в самых разных средах. Mambo был отличным инструментом для быстрого и простого создания веб-сайтов, которые можно было расширять по своему усмотрению. Однако некоторые вещи казались довольно незрелыми (некоторые, возможно, помнят монстра $mainframe).
Я только начал писать свою собственную CMS, которая должна была использовать расширения Mambo, когда разработчики взбунтовались и запустили Joomla. То, что я слышал о планах и идеях Joomla, совпадало с моими целями, поэтому я решил присоединиться к Joomla, а не заниматься своей разработкой.
Харальд и Нильс, не могли бы вы напомнить мне о вашем участии в Joomla, работали ли вы раньше над релизами или планированием структуры Joomla?
— Харальд: Помимо поддержки серии 3.9.3+ в течение 2 лет, я был вовлечен в разработку компонента процессов (Workflow) в его нынешнем виде и многие другие аспекты Joomla 4. Но моя основная работа заключается в поддержании стабильности CMS и фреймворка. Такие вещи, как предотвращение нарушений обратной совместимости, контроль производительности и безопасности, работа над инфраструктурой тестирования.
— Нильс: На мероприятии по запуску Joomla 4 в Афинах у меня была возможность представить свои идеи о Joomla, какой она должна быть. В основе было разделение ввода и вывода от обработки, так что "контент" не ограничивался бы вебом, а обслуживал бы все возможные каналы. Кроме того, существовала так называемая "ортогональная архитектура", которая должна была гарантировать, что определенные сервисы, такие как контроль доступа, теги, процессы и т.д. будут доступны всем компонентам без дополнительного кода.
Некоторые люди были в восторге от возможностей, которые это открывало, другие яростно сопротивлялись таким глубоким изменениям. В конце концов, было принято решение развивать Joomla 4 небольшими шагами и рассматривать новую концепцию как путеводный маяк проекта, "Joomla X".
Многое из того, что мы разработали для Joomla X, в конечном итоге нашло свой путь в Joomla 4. Однако, из-за продолжающегося сопротивления новой архитектуре, команда Joomla X стала командой архитектуры и стратегии программного обеспечения (Software Architecture and Strategy Team), сместив фокус с предоставления концептуального кода на консультирование разработчиков по архитектуре. Как и Joomla X, SA&S находится под моим руководством.
Я бы очень хотел узнать ваше видение Joomla 5, что она должна содержать, чего она не должна содержать, в каком направлении она движется.
— Харальд: В версии 5.0 я бы хотел увидеть полную очистку всех функций и моделей поведения, уже помеченных как устаревшие. За время существования такого программного проекта, как Joomla, функции добавляются, а кодовая база становится все более сложной и не поддается сопровождению. В Joomla 4.0 мы получили более перспективное обновление архитектуры. Также был введен b/c слой (слой обратной совместимости) для расширений Joomla 3, который планируется убрать в 5.0. Кроме того, новая система событий должна полностью заменить старую, с четко определенными событиями, включая валидацию.
В качестве улучшения CMS я бы хотел видеть поддержку PHP 8.1 Fibers, а также поддержка Revolt или даже React PHP была бы одной из особенностей, которые я хотел бы увидеть в Joomla 5.0.
С другой стороны, я бы хотел быть прагматичным, когда дело доходит до обратной совместимости и принципов, которые хорошо звучат на бумаге, но не совместимы с Joomla. Потому что важнее сохранить их, чем убрать, если не найдена веская причина или полифилл.
— Нильс: На данный момент я могу говорить только о своих личных идеях, потому что окончательное решение о масштабах Joomla 5 еще не принято.
Несомненно, необходимо избавиться от старого бремени - это и есть настоящая цель новой мажорной версии. Если бы была полная обратная совместимость, то не было бы необходимости в 5.0, тогда было бы достаточно 4.x. Таким образом, мы можем в полной мере воспользоваться потрясающими возможностями, которые предлагает PHP 8.1.
В разработке программного обеспечения существует ряд общепринятых принципов, направленных на повышение сопровождаемости, расширяемости и надежности программного обеспечения, так называемые принципы SOLID. Эти принципы рекомендуют как можно более строгое разделение различных задач и ограничение зависимостей интерфейсами. В нетехнических терминах это означает, что любая функциональность может быть добавлена или заменена на аналогичную или другую без возникновения проблем для системы в целом. Я считаю, что соблюдение этих принципов необходимо для того, чтобы Joomla была конкурентна в будущем.
Плагины являются простым и важным способом добавления новой функциональности в Joomla. Однако каждое событие, используемое для обращения к плагинам, использует свои собственные методы для связи с остальной частью системы. Я хотел бы это стандартизировать, чтобы разработчики сразу знали, что делать с новыми событиями, и могли обеспечить автоматизацию в этой области. Со стандартизацией, например, можно создать расширение, с помощью которого конечные пользователи смогут собирать свои собственные плагины в low-code редакторе.
Должен быть пересмотрен процесс установки, чтобы Joomla и расширения можно было легко устанавливать и обновлять через командную строку. В идеале, мы должны использовать для этого Composer, инструмент, который может разрешать зависимости и предоставлять нужные пакеты. Это даст разработчикам расширений простой способ включать сторонние библиотеки, не вызывая конфликтов. Это также позволит хостинг-провайдерам устанавливать Joomla из своей панели управления. Создатели сайтов могут описать полную установку в одном JSON-файле и настроить ее с помощью одной команды CLI.
Развитие Joomla в направлении headless CMS должно быть более расширенным. Улучшение веб-интерфейса API и разделение каналов CMS и вывода открывает перед сайтостроителями совершенно новые возможности. Конечные точки API и команды CLI должны генерироваться автоматически, насколько это возможно. Одним из больших преимуществ этого является возможность создания кэша страниц, т.е. хранения предварительно отрендеренных страниц, которые могут обслуживаться непосредственно веб-сервером и загружать свое динамическое содержимое по требованию через вызов API.
Как уже упоминалось в начале, Joomla 5, естественно, не будет полностью обратно совместима с Joomla 4. По мере возможности мы будем предлагать изменения в архитектуре, уже в Joomla 4, как альтернативу предыдущей, чтобы сохранять прямую совместимость. Таким образом, необходимые корректировки для поддержки Joomla 5, должны быть возможны для разработчиков расширений на ранней стадии. Я также хотел бы использовать Rector, инструмент, который может перестраивать программный код в соответствии с правилами, для того, чтобы обеспечить поддержку разработчиков в том, чтобы сделать их расширения совместимыми с Joomla 5 как можно раньше.
Это самые важные вещи, которые я хотел бы видеть в Joomla 5. Есть также куча мелочей, которые можно улучшить, или мест, где не хватает совсем немного, чтобы сделать действительно отличный функционал. Однако перечислять их все здесь - значит выйти за рамки этой статьи.
Как вы планируете работать вместе, будете ли вы оба работать над одними и теми же областями или разделите задачи, и если да, то кто будет отвечать за какие задачи?
— Харальд: Мы не говорили о том, как именно мы будем работать, но я думаю, что мы совершенно разные личности с разной специализацией. Поэтому я думаю, что Нильс будет пытаться привнести структуру в цикл разработки и в код, а я буду пытаться довести его до конца. Нильс обладает глубокими знаниями об архитектуре и о том, как все может быть в идеальном мире, и это действительно здорово. Я постараюсь поддержать его в этом настолько, насколько смогу, и буду делать скучные вещи, типа координации работ по чистке.
Одна из причин, по которой у нас есть два лидера релиза для этой версии, заключается в том, что мы не хотим тратить еще 5 лет на следующую мажорную версию. Я уже смог ускорить выпуск Joomla 4.0, и я уверен, что смогу успеть к сроку выпуска Joomla 5.0.
С другой стороны, мы не одни отвечаем за выпуск Joomla 5.0, за нами стоит команда CMS Release Team и CMS Maintenance Team, поэтому мы координируем работу со всеми другими сопровождающими и постоянно общаемся с CMS Release Team.
— Нильс: Это хороший вопрос! Мы его еще не обсуждали.
Я узнал Харальда как прагматичного человека, который просто решает поставленные перед ним задачи. По моей оценке, его центр - это "здесь и сейчас" с фокусом на текущие проблемы, но он не теряет из виду горизонт возможностей. Моя природа несколько иная (даже если я должен и могу заставить себя быть прагматичным в повседневной жизни). Я вижу прежде всего возможности и ищу пути их реализации. Нынешние проблемы исчезли бы, если бы у нас уже было это.
Поэтому я считаю, что мы с Харальдом будем хорошей командой. Конечно, у каждого из нас есть свои приоритеты, которым он хочет или будет отдавать предпочтение. В конце концов, я думаю, что Харальд всегда будет возвращать меня на землю, когда я снова взлечу. С другой стороны, я буду поощрять его идти на шаг дальше, чем нужно, потому что это принесет пользу в долгосрочной перспективе.
Мы также хотим более тесно сотрудничать с командой CMS Release Team, чем это было в прошлом.
Как я понимаю, вы заинтересованы в том, чтобы услышать от всех нас, членов сообщества, наши идеи и мысли по поводу Joomla 5. Каким образом мы можем связаться с вами и каковы сроки рассмотрения идей?
— Харальд: Сообщество является для нас самым важным источником информации, поэтому мы будем очень признательны за любые отзывы, идеи и пожелания. У нас есть процесс RFC, о котором Нильс расскажет позже, и, конечно же, с нами можно связаться напрямую через Joomla! Volunteers Portal, Glip или любой другой канал. В зависимости от источника идеи она должна включать всю необходимую информацию, такую как преимущества, причины, проблемы, влияние и так далее. У вас очень короткий срок, поэтому мы будем признательны, если вы обратитесь к нам как можно скорее.
Стоит отметить, что приветствуются не только отзывы, но и вклад в код. Иметь идеи - это хорошо, но привести кого-то, кто сможет их реализовать, было бы очень полезно.
— Нильс: О да, и это также очень важно для нас. Мы настолько близки к продукту, что не всегда можем увидеть, где на самом деле чего-то не хватает. Joomla - это универсальная CMS, которая разработана для удовлетворения потребностей как можно большего числа сценариев применения. Именно поэтому мы уделяем большое внимание модульности, гибкости и расширяемости. Специальные требования, которые предъявляются только в определенных отраслях, должны быть зарезервированы для расширений. Но все, что помогает всем пользователям CMS, по моему мнению, должно быть в ядре. И здесь нам нужен ваш вклад.
Сообщите нам, что, по вашему мнению, должно быть в ядре, чего не хватает или что следует изменить.
Для этих целей мы создали процесс RFC. На сайте https://github.com/joomla/rfc есть инструкции по использованию этого процесса. Не волнуйтесь, это кажется сложнее, чем есть на самом деле! Чтобы начать процесс, необходимы только две вещи: краткое описание того, о чем идет речь, и обоснование (Why Bother) того, почему это так важно и должно быть обязательно реализовано. Если вы хотите использовать список рассылки для вашего предложения вместо GitHub, пожалуйста, пометьте ваши предложения в теме письма как [Joomla 5].
Мы можем рассмотреть все, что поступит к нам до февраля 2023 года. Но, поскольку для реализации также требуется определенное время, чем раньше, тем лучше.
Существует тесная синергия между разработчиками ядра и расширений.
Есть ли какие-либо идеи и предложения, которые помогут разработчикам расширений?
— Харальд: Разработчики расширений являются важной частью экосистемы CMS. Поэтому мы хотим как можно скорее дать им рекомендации по изменениям в Joomla 5. Кроме того, мы хотим убедиться, что обновление расширения с 4 на 5 будет максимально простым, например, расширение j4 должно работать на j5 без особых изменений.
— Нильс: По сути, есть две вещи: Во-первых, при выпуске альфа-версии мы делаем доступной версию, которая уже содержит все изменения. Если разработчики используют эту версию, чтобы указать нам на проблемы, у нас остается возможность что-то сделать. Если же они сделают это только с релиз-кандидатом, то корабль уже уплыл. Во-вторых, мы хотим документировать изменения, сравнивая старое и новое, подобно тому, как это делает PHP в своих анонсах.
Сможем ли мы использовать Rector так, как мне хотелось бы, к сожалению, пока не ясно.
Есть ли какие-то вещи, которые разработчики расширений могут сделать, чтобы помочь ядру? Поможет ли большее тестирование на стадии альфа и бета релизов передать информацию о проблемах в ядре?
— Харальд: Да! Разработчики расширений часто знают CMS лучше, чем мы. Поэтому любая помощь будет очень ценна. Например, начать тестирование как можно скорее или вложить время в разработку было бы очень приятно.
— Нильс: Определенно! Чем раньше мы получим обратную связь от разработчиков, тем лучше мы сможем учесть их потребности. Конечно, мы были бы просто счастливы, если бы разработчики расширений могли предоставить рабочую силу для разработки. Всегда есть чем заняться, а рук слишком мало.
Joomla 4 пробыла на стадии создания довольно долго. Какие надежды вы возлагаете на Joomla 5 и какой временной масштаб вы считаете реалистичным и достижимым? Я вижу, что Joomla 4.1 до сих пор жестко контролировалась по времени, планировалось, что она выйдет через 6 месяцев после Joomla 4.0. Как вы думаете, возможен ли такой жесткий и надежный план выпуска для крупного релиза?
— Харальд: Как уже упоминалось, это одна из моих целей. Долгое время разработки Joomla 4 было большой проблемой для сообщества, и я рад, что мы наконец-то выпустили её в день рождения Joomla. В рамках Joomla 4 мы перешли на 6-месячный цикл релизов, что означает, что мы выпускаем минорную версию каждые 6 месяцев. Исходя из этого, мы планируем выпустить Joomla 5.0 17 августа 2023 года. Как только мы начнем разработку Joomla 5, мы составим дорожную карту релизов с указанием всех основных этапов.
— Нильс: В основном существует два типа планов релиза: основанные на функциях или ограниченные по времени. У нас есть политическое решение, которое навязывает релизы с временными рамками. Поэтому, если правила игры не изменятся до этого момента, Joomla 5 будет выпущена 17 августа 2023 года. Для нас, как руководителей релиза, это означает, что мы должны завершить все архитектурные изменения к первому альфа-релизу. После этого никакие изменения в архитектуре больше не могут быть сделаны. Параллельно будут разрабатываться функции, которые должны быть завершены к началу бета-фазы. С этого момента будут устраняться только ошибки. Все, что не будет завершено к этому времени, будет ждать следующего релиза. Пока мы не можем назвать сроки альфа- и бета-фаз, так как они еще не определены. Следите за дорожной картой, чтобы узнать подробности.
Помимо того, что мы можем рассказать вам, что мы хотели бы видеть в Joomla 5, чем мы можем еще помочь?
— Харальд: Мы принимаем любую помощь, которую можем получить. Поскольку Joomla! - это 100% CMS, управляемая сообществом, она нуждается в участии каждого члена сообщества. Так что если вы получаете удовольствие от кодинга, написания документации, поддержки нашей инфраструктуры, тестирования CMS, предоставления отзывов, основанных на "реальном мире", или просто хотите сказать спасибо, мы будем рады каждому.
— Нильс: Всегда не хватает трех вещей: Входных данных, обратной связи и рук. Если вы хотите помочь Joomla и умеете программировать, помогите нам с внедрением. Если вы хотите помочь Joomla и умеете писать, помогите нам с документацией. Если вы хотите помочь Joomla и умеете общаться, помогите нам донести информацию. Если вы хотите помочь Joomla, но вышеперечисленное вам не подходит, свяжитесь с командой по работе с волонтерами (Volunteers Engagement Team) - они найдут для вас место!
Спасибо, Харальд и Нильс.
Полезные ресурсы
Ресурсы сообщества
https://joomlaforum.ru/ - форум русской поддержки Joomla.
https://joomlaportal.ru/ - интернет-портал Joomla-сообщества.
Telegram
https://t.me/joomlaru - чат сообщества «Joomla! по-русски».
https://t.me/projoomla - Joomla для профессионалов и опытных пользователей, разработчики Joomla.
https://t.me/joomlafeed - новости о Joomla! и веб-разработке по-русски.
https://t.me/joomla_jobs - вакансии и предложения работы по Joomla: фуллтайм, частичная занятость и разовые подработки. Размещение вакансий здесь.
https://t.me/joomlatalks - англоязычный чат сообщества.