Автор оригинала: FreeCodeCamp Community Member.
Стек NRG для более быстрой разработки
Вы, наверное, никогда не слышали о WELCAN.JS или APOLLO Universal Starter Kit – по крайней мере, пока нет.
Но я уверен, что вы слышали о реакции, Node.js и graphql. Хорошо, вот что мы называем занижением: вы, вероятно, видели миллионы твитов, статей блога, встреч и подкастов о тех трех и их волшебных силах.
Есть много веских причин, по которым эти технологии оцениваются веб-разработчиками. Тем не менее, если вы когда-нибудь пытались написать современный полное заявление о JavaScript JavaScript с нуля, вы, возможно, заметили, что количество ботинской таблицы может производить.
Это особенно раздражает с общими функциями: настройка аутентификации, настройка базы данных, настройка основного компонента приложения, настраивая настройки …
Как Vulcan.js и AUSK стремятся сделать вас быстрым и эффективным разработчиком JavaScript Full-Stack. Оба полагаются на модульную архитектуру с реагированием для UI, узел для бэкэнда и APOLLO GraphQL для уровня связи Client/Server. Оба обеспечивают тонны предварительно закодированных модулей, чтобы вы могли сосредоточиться на ценных функциях.
Тем не менее, они каждый из них принимает очень разные подходы к проблеме, поэтому я подумал, что вы можете наслаждаться сравнением.
Прежде всего, давайте представим конкуренты.
Отказ от ответственности: Я являюсь участником Vulcan.js, однако я использовал обе те технологии для проектов моего клиента, поэтому я останусь как объективность.
Apollo Universal Starter Kit
Хорошо, когда они говорят универсальные, они означают универсальную. Вы когда-нибудь видели JavaScript Boeterplate, которая включает в себя Scala Server для большой работы? И полная реакция родной настройки с EXPO? Они даже закрывают вечный (и раздражающий) угловой, по сравнению с реагированными дебатами, поддерживая оба.
Мне больше нельзя сказать. Я имею в виду, снова посмотрите на этот стек, это самый дикий сон веб-разработчика!
У меня на самом деле есть что-то добавить: он также включает в себя дизайн загрузочного и муравья в качестве структуры стилей, KNEX для подключения к базе данных SQL (подключение MongoDB не включено, но легко выполнено), и он написан в Teadercript. Все основные особенности приложения JS/GraphQL предоставляются в котельной (MENU, AUTH и ETC.) + Несколько модулей более высокого уровня, которые служат примерами.
Ссылка: https://github.com/sysgears/apollo-universal-starter-kit.
Вулкан: за пределами универсального, изоморфной
Помните метеор и телескоп? Я знаю, что экосистема JS быстро движется, но эта золотая эра была как только 2 или 3 года назад.
Meteor была первой структурой для полной мере использовать комбинацию JavaScript Server и JavaScript к клиентам, позволяя писать изоморфный код, который работает на обою окружающей среде. Телескоп был приложением Meteor Boaterplate, предназначенное для полной наслаждаться своей архитектурой, ориентированной на упаковку.
Хотя все еще использовалось во многих профессиональных приложениях и известных всем известным разработчиком, Meteor расточится некоторыми техническими ограничениями, предотвращающими более широкое использование: его несовместимая система сборки WebPack – это, его менеджер пакетов, который сейчас превышает NPM, или его RAM- потребляющий протокол обмена данными в режиме реального времени.
И мне еще предстоит обнаружить основу, которая делает Devs вдвое же продуктивную, как метеор. Но не волнуйтесь, сейчас есть серьезный соперник. Вы получаете это: вулкан!
Использование Apollo Graphql и Rational ориентированной на упаковку архитектуры позволяют Vulcan преодолеть ограничения Meteor, наслаждаясь такими же преимуществами: полностью модульная архитектура, декларативное программирование, изоморфизм и т. Д.
Vulcan предназначен для рельсов экосистемы JavaScript. Легко начать, но достаточно заполнить, чтобы написать любое приложение.
Ссылка: http://vulcanjs.org/
# 1: framework vs boaterplate
Первая серьезная разница между этими инструментами: AUSK – это котельная, а вулкан является рамкой. Откуда ложь различия, вы можете удивляться?
Vulcan, рамки
Рамки предназначены для того, чтобы сделать вас более эффективным разработчиком ежедневно, предоставив определенный набор функций и помощников. Обычно это предназначено, чтобы оставаться отдельным от вашего приложения. Вы можете обновить свое приложение от Time-Time, когда публикуется новая версия рамки.
Обычно мы различаем структуру и библиотеки на основе уровня специализации. Рамка обычно позволяет доставлять функции уровня бизнеса, а библиотека является более специализированным техническим инструментом. Но оба в основном работает то же самое.
Ограничение с рамками или LIBS состоит в том, что вы можете почувствовать себя потерянным, когда они отказываются от вас. Что вы делаете, когда ошибка не в вашем приложении, а в реакции или аполлон?
Мое правило – это то, что при использовании рамки вы должны быть готовы внести свой вклад в его разработку, по крайней мере, путем открытия проблем всякий раз, когда вы столкнулись с ошибкой.
Ausk, котельная
Котельная пластина – это хорошо написанный кусок кода с полностью работой средой разработки. Это все. С помощью котельной труднее не отставать от обновлений, потому что код BoverPlate не отделен от вашего приложения. Вид как создать приложение React после выброса.
Обычно это дает только несколько пользовательских методов. Вы будете чувствовать себя быстрее в первый месяц, и вы выиграете от тестируемой боевой архитектурой, но ваша круизная скорость будет в основном то же самое, чем без котельной.
Котельная намного больше свободы, чем каркас, но и меньше влияет на вашу эффективность.
# 2 кривая обучения
Vulcan: GraphQL сделал легко
Вулкан может быть хорошим способом получить первый похвал графа, потому что … Вам не нужно на самом деле написать GraphQL. Рамочная структура генерирует схему и резольденты GraphQL для вас на основе вашей модели данных. Использование инструментов разработчиков, таких как Graphiql или Voyager Graphql, вы можете визуализировать и воспроизводить с схемой, чтобы понять, как ваши функции переводятся на GraphQL.
Второй шаг – понять логику самой вулкан. В прямом эмблеме входит в живое руководство в приложении «Vulcan Starter», чтобы помочь вам в процессе.
AUSK: для пуристов
Архитектура AUSK намного ближе к тому, к чему используются экспресс-разработчики. Подумайте о вашем приложении Canonical Express, но с установленным GraphQL и на основе пакетной архитектуры. Без сюрпризов.
Это также означает, что вам нужно будет понять основы GraphQL, чтобы использовать AUSK, кроме того, конечно, для узла, экспресс и реагирования и независимо от использования базы данных (но то же самое касается вулкана). К счастью, он предоставляет несколько примеров, которые помогут вам в процессе, включая создание и перечисление данных и даже загружать файлы.
Заключение: Pull-Stage Devs имеет много для мастера
Экосистема JavaScript созревает все больше и больше, что также означает, что это сложнее учиться и понимать для начинающих.
Чтобы полностью пользоваться этими технологиями, вам понадобится хотя бы некоторые знания современного JavaScript и развитию реагирования.
Не ожидайте, чтобы быть полностью продуктивным в первый день. То, что сказал, есть плеение курсов, свободных или платных, для изучения современного разработки JavaScript Full-Stack. Изучение AUSK и Vulcan может стать невероятным источником вдохновения.
# 3 скорость развития
Вулкан: автоматизировать все вещи
Когда хорошо используемый, вулкан просто невероятно быстро при доставке функций. Это потому, что он намного полагается на автоматическом генерации, поэтому он может создавать наиболее подходящие части приложения в считанные часы, если ваша модель данных правильно определена.
Этот паттерн называется декларативным программированием: вы «объявляете», как ваше приложение работает и позволяет структуру выполнять работу. Трудно реализовать, но может быть чрезвычайно мощным.
AUSK: больше свободы
Поскольку ausk – сосредоточенность на бойле, это немного более жестко добавлять основные функции, так как это многоэтапный процесс:
- Напишите свою схему GraphQL
- то же самое для резольвенсе, мутации
- То же самое для вашей модели базы данных (с помощью Knex или Mongoose)
- то же самое для ваших реактивных компонентов
- …
Тем не менее, Если вам нужно написать пользовательскую особенность, она будет легче с AUSK, чем у вулкана. Так что, если у вас есть очень мало моделей данных, но сложные особенности, AUSK будет более эффективным, чем вулкан.
Надеюсь, существуют продолжающиеся работы, чтобы сделать AUSK более декларативным, через инновационную систему схемы, ориентированной на разработку домена, Домен-схема Отказ
Вывод: выберите правильный инструмент для корпуса правильного использования
Там нет волшебных универсальных технологий для развития полного стека JS. Скорость разработки с каждой структурой очень сильно зависит от основного применения. Я склонен предпочесть Vulcan для ориентированных на данных платформ и профессиональных инструментов, а также AUSK для платформ SaaS B2C, которые требуют более пользовательских функций.
# 4 Сообщество, поддержка и зрелость
Вулкан: наследник метеора
Vulcan – это рамки от Sacha Greif, который представляет собой многолетний разработчик Meteor и очень инвестировал в сообщество JavaScript ( состояние JS и состояние CSS среди прочего).
Существует активное провисание, где начинающие и другие энтузиасты могут быстро найти ответы на свои вопросы.
AUSK: активно поддерживаемый проект
AUSK поддерживается Sysgears , в частности, Виктором Власенко, основателем компании.
Проект связан с Gitter. Во время моей последней внештатной миссии с Оскуском Виктор очень быстро ответил на мои проблемы и вопросы. Он даже объединил поддержку рассказов после того, как я дал ему выстрел.
Вывод: маленькие, но богатые общины
Оба технологиях используются в производстве в нескольких проектах, поэтому они уже безопасны для использования. Общины активно растут и начинают.
Если вам нужно построить команду, не ожидайте найти фрилансеров, которые именно знают эти технологии, они слишком специфичны. Вместо этого сосредоточиться на нахождении разработчиков JavaScript Full-Stack, которые смогут быстро узнать их. Кроме того, вы можете перейти к источнику и найти настоящих специалистов среди Vulcan или Ausk общины.
# 5 Развертывание
Не много для сравнения, оба рамки позволяют развертывать на платформах, предлагающих бесплатные сервисы, такие как Zeit ныне и Heroku, а также развертывание на вашем собственном пользовательском сервере.
# 6 масштабируемость кода и модульные шаблоны
Вулкан: поделиться усилиями
Одним из преимуществ структуры является обмен усилием. Конец использования более понятнее, и, таким образом, позволяет нам интегрировать различные оптимизации в рамках сама рамок.
Vulcan предоставляет модели, как обратные вызовы/крючки, улучшение и центральная регистрация, чтобы полностью извлечь выгоду из своей архитектуры ориентированной на упаковке. Например, мы можем добавить материал UI в приложение, включая SSR, без изменения одной строки кода в модуле Core Vulcan.
Точнее вулкан обеспечивает разные Регистрация
Методы для каждой структуры данных, как registercomponent
, а также обратные вызовы, как Router.Wrapper
которые позволяют обернуть корня Приложение
Актуальный компонент. Вам нужно только один раз импортировать файл один раз на уровне начала пакета ( Main
файлы).
AUSK: Начните на правильном пути, закончите самостоятельно
Модульная архитектура ограничивает искушение записи кода спагетти. Он поддерживает повторное использование кода по приложениям. Каждый пакет обладает index.ts
Файл, который объявляет соответствующие Hmitwoates, функции запуска, функции GraphQL совместно используются с другими модулями.
Хорошо по имени модуль
Модуль предоставляет классы для каждой среды для регистрации нового модуля, например ServerModule
и ClientModule
Отказ Это единственный модуль, который фактически используется непосредственно на уровне приложения.
export default new ServerModule({ onAppCreate: [ callback1, callback2] })
Внутренне все модули будут объединены в один большой модуль, который в конечном итоге будет использоваться для создания приложения. Например, все OnAppcreate
Обратные вызовы будут запущены один за другим.
Это относительно чистый рисунок и очень умная архитектура. Я имею в виду, даже Module Manager – это модуль, не так ли красиво?
Но остальное зависит от вас. Хорошо, вы сможете все оптимизировать! Итак, вы собираетесь потерять пару ваших резольвентов GraphQl и вашу базу данных Mongo? Используя какие инструменты? Как вы преобразуете свою схему GraphQl в проекции Mongo? Собираетесь ли вы написать разъемы, используйте DataLoader?
Вот момент: написание масштабируемого приложения трудно. Очень тяжело. Если вы хотите узнать, то хорошо для вас. Я очень рад использовать AUSK по этой самой причине, делая вещи самостоятельно – лучший способ учиться.
Вывод: вы рискуете повержены?
Как для AUSK, так и в Vulcan, масштабируемость кода означает модульную архитектуру. Всякий раз, когда код становится слишком сложным или нечитаемым, решение легко: разрезать его на меньшее, более простые части.
Архитектура Vulcan Bolder, все может быть модульной. Это амбиция приходит на риск, иногда может быть трудно получить, кто зарегистрировал, что и когда.
Модульные шаблоны AUSK легче читать, но и немного менее мощное. Например, он может быть сложно добавить сложные глобальные функции, не касаясь кода Core Package. Тем не менее, они определенно достаточно для большинства случаев использования, вам не нужно быть пуристом модулей для написания хороших приложений.
# 6 мобильный
Вулкан: С Кордовой
Метеор, который вулкан основан на, встраивает Cordova. Таким образом, ваше веб-приложение может быть в комплекте как мобильное приложение с одной командной строкой.
Однако Vulcan не предоставляет инструменты для нативных приложений. Конечно, вы все равно можете создать независимую реагировать нативное приложение и подключите его к Vulcan. Улучшения системы аутентирования (в настоящее время последняя часть вулкана действительно полагается на метеор), запланированы в месяцы, чтобы облегчить такие связи.
AUSK: с реактивным родным
Объединение как настроек для «Vanilla» React и React Nature – одна из лучших особенностей AUSK. В конце концов, это универсальный стартовый комплект! Я не делаю много мобильного, но это обнадеживает возможность быстро создавать собственное мобильное приложение, разделяющее тот же сервер, что и мой веб-интерфейс.
Заключение: AUSK лучше на мобильном
AUSK будет более подходящим, если вы специально надо написать мобильное приложение. Тем не менее Vulcan позволяет построить мобильное приложение из вашего кода только в одной командной строке, которая в порядке, если мобильная версия является более вторичной для вас.
# 7 Измените UI: жесткая проблема
Создание Flowstack Framework, которая позволяет изменять мгновенное изменение библиотеки UI, представляет собой только во время эпохи CSS. Помните те веб-сайты, которые позволяют переключать тему, нажав на одну кнопку?
Затем насыски JS напали. Используя React Components, очень сложно обеспечить такую функцию (за исключением изменений тривиальных цветов), поскольку стиль и конструкция теперь очень привязаны к базовым компонентам реагирования/угловой/VUE.
Каждый реактивный UI Lib имеет свой способ определить кнопку, даже не говоря о тематике. Это проблема для технологий полного стека, такими как ausk и vulcan, потому что выбирая структуру стилей – это вопрос вкуса. Они не могут просто предложить окончательный выбор и заставить вас придерживаться этого. Bootstrap больше не в монополии, и у каждого разработчика есть собственные любимые Lib.
Чтобы решить эту проблему, оба имеют аналогичный подход. Они написали канонический набор компонентов с Bootstrap, затем попробовал разрешить замену этих компонентов с помощью другого lib, как дизайн муравья или материал.
Это делает код странным. Например, кнопка AUSK займет цвет
PROP, потому что именно на том, как работает начальная работа. Если вы переключитесь на дизайн Ant, вам также нужно будет использовать цвет Color Prup, даже если дизайн Ant использует Тип
отпор вместо этого.
Поскольку выбор AUI Framework обычно происходит только один раз, обязаны использовать несопичный набор реквизитов во время всех событий, кажется очень высокой ценой для поддержки множественной базы данных UI.
Во время разработки я предложил избежать использования этих предварительно закодированных компонентов для пользовательских пользовательских интерфейсов максимально возможной. Они прохлады, чтобы построить пример и общие функции, предоставляемые котельной/рамкой, но не так много, когда речь идет о том, чтобы написать пользовательские части вашего приложения.
Вместо этого используйте базовые компоненты, предоставленные дизайном Ant или Bootstrap или Material Ui, в зависимости от вашего выбора, и попробуйте написать свой собственный ui lib. Вы можете оформить чеку историй книг, чтобы помочь вам в процессе, поскольку он включен как в AUSK, так и в Vulcan.
# 8 свободный бой
Если бы я должен был сохранить различные особенности, специфичные для каждой из этих технологий, они будут этими.
Вулкан
Система схемы. Для моих лучших знаний нет никаких структур создания структуры базы данных, точки входа в серверу, уровень связи Client/Server, уровень связи, а также готовый добыча (формы, списки и т. Д.) Из одной схемы JSON.
Vulcan.js может сделать это при использовании новейших технологий JS.
Ausk.
Мне не удалось выбрать только один, поэтому мои любимые особенности AUSK будут находятся находцы и реагировать на родных.
Существует дебаты на несколько лет вокруг преимуществ статически набранного JavaScript, следует ли предпочтить поток или TypeScript … и, безусловно, выиграл драку. Работа с Typeycts возможна в Vulcan, но, из-за использования Meteor, в настоящее время чувствует себя неестественным, а компиляция медленная. AUSK использует Teadercript в качестве по умолчанию, и это потрясающе.
И реагировать на родных … ну, есть и обсуждает, имеет ли использование реагирования на запись мобильных приложений. Вы можете придерживаться придерживаться отзывчивого веб-приложения, но, по крайней мере, вы знаете, что все настроено для вас, учитывая, что настроить Dev Env for React Native не всегда является легкой задачей.
Итак, вы сделали свой выбор?
Существует так много очков, которые следует принимать во внимание, как производительность, безопасность, DevOps, управление авторизаторами … Выбирая правильный инструмент для создания вашего приложения JavaScript, безусловно, не является легким выбором. Я надеюсь, что эта статья дала вам ценные идеи, чтобы помочь вам в этом решении.
Если вы все еще чувствуете себя нерешительным, добраться до провисания Вулкана, я был бы рад ответить на них:)
Вы также можете направить любой вопрос на AUSK – Виктор Власенко и его команде на Sysgears и присоединяйтесь к Выделенная слабина вулкана Чтобы получить доступ к сообществу вулкан.
Мой последний совет будет таким простым: дать как вулкан, так и ausk выстрел, они стоят вашего времени!
Благодаря Sacha Greif и Виктору Власенко за рассмотрение этой статьи.
Я соучредитель французской компании Lebrun Burel Initing Engineering (LBKE) – https://www.lbke.fr.
Всегда рад поговорить о коде, машинном обучении, инновациях и предпринимательстве!