Подготовка к следующему этапу развития фреймворка

Я вырос, наблюдая за Dragon Ball Z, и одним из самых распространенных образов был момент« окончательной формы плохого парня».

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

Почему плохой парень не просто ходил в этой окончательной форме, или почему герои никогда не пытались просто нокаутировать их во время фазы трансформации, так и не было объяснено.

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

Vulcan.js + Next.js

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

Некоторые из преимуществ Next.js по сравнению с Meteor:

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

Наша цель в течение следующего года или около того - постепенно сделать его новым домом для Вулкана.

Еще более модульная архитектура

Мы решили воспользоваться случаем, чтобы радикально переосмыслить, как различные элементы, из которых состоит Vulcan, сочетаются друг с другом.

В настоящее время Vulcan представляет собой нечто вроде предложения «все или ничего». Чтобы получить реальную выгоду от его использования, вам действительно нужно внедрить весь стек, от создания GraphQL API до компонентов интерфейсной формы.

Это не означает, что разбить структуру на части невозможно, но в настоящее время это не то, для чего она предназначена.

Мы хотим изменить это, сделав версию Vulcan Next.js более модульной. Например, представьте себе отдельные пакеты для обработки схем, создания GraphQL API и обработки форм, которые можно использовать независимо друг от друга. Это означает, что вы можете использовать:

  • Пакет schema и пакет graphql для создания серверной части GraphQL.
  • Пакет schema и пакет form для создания приложения, отличного от GraphQL.
  • Только пакет starter для создания полностью настраиваемого приложения, которое по-прежнему может использовать другие, меньшие пакеты Vulcan, такие как отслеживание ошибок или событий.

Таким образом, вместо создания монолитной структуры, которую трудно принять, идея состоит в том, чтобы создать экосистему из кубиков Lego, которые все еще идеально сочетаются друг с другом.

Дорожная карта

Это очень амбициозное видение, поэтому мы разбили его на три основных этапа (в конце концов, трансформации финального босса никогда не могут иметь слишком много этапов!).

Фаза 1: Стартер

Мы выпустим чистый стартовый проект Next.js, который не имеет прямой связи с Vulcan, как способ установить отправную точку, а также закрепиться в сообществе Next.js.

Фаза 2: Совместимость с Vulcan

На этапе 2 мы будем постепенно добавлять служебные программы, которые упростят использование приложения Next.js, созданного с помощью стартера этапа 1, в качестве внешнего интерфейса для отдельного приложения Vulcan. Это может означать облегчение таких вещей, как учетные записи пользователей, формы, загрузка данных и т. Д.

Фаза 3: Вулканследующий

Наконец, этап 3 будет достигнут после того, как мы перенесем все текущие функции Vulcan в проект Next.js. На этом этапе вы должны (в идеале) иметь возможность обойтись только приложением Next.js, и тогда мы откажемся от текущей версии Vulcan на основе Meteor.

Текущий (Метеоритный) Вулкан

Если вы пользуетесь текущей версией Vulcan на основе Meteor, вы можете по понятным причинам задаться вопросом, что все это значит для вас. Но вам не о чем беспокоиться, поскольку мы специально разработали нашу дорожную карту, чтобы сделать возможный переход полностью необязательным.

Во-первых, я (Саша) продолжу работу над версией Vulcan Meteor, а Эрик возьмет на себя инициативу над версией Next. Я активно поддерживаю два производственных приложения Vulcan (ZensHome и Sidebar), поэтому я не смог бы отказаться от текущей версии Vulcan, даже если бы захотел.

Кроме того, в ближайшем будущем вся идея состоит в том, чтобы упростить сохранение вашего приложения Meteor и дополнить его, добавив интерфейс Next.js, а не заменяя его. И даже когда мы в конце концов дойдем до фазы 3, ничто не помешает вам сохранить ту же архитектуру с двумя приложениями.

Наконец, само собой разумеется, что мы постараемся сохранить внутренние Vulcan API без изменений. В конце концов, мы потратили годы на совершенствование того, как работает Vulcan, поэтому нет смысла менять его сейчас!

Что вы можете сделать сегодня

Если вы хотите помочь с этим видением, вот что вы можете сделать.

Я лично очень взволнован этим развитием Vulcan и чувствую, что это может стать большим прорывом, который нам понадобится, чтобы наконец дать проекту шанс. Я знаю, что это потребует много работы, но если просмотр сотен (тысяч?) Часов аниме научил меня одному, то все возможно, если ты веришь в себя!