Главная » Хабрахабр » [Перевод] Самые популярные Node.js-фреймворки 2018 года

[Перевод] Самые популярные Node.js-фреймворки 2018 года

Сегодня мы публикуем перевод материала, автор которого хочет рассказать о самых популярных в наши дни фреймворках для Node.js. В этот список входят Sails.js, Hapi.js, NestJS, LoopBack, Derby.js, Mean.io и Total.js.

Sails.js

Sails.js можно считать самым популярным фреймворком для разработки приложений реального времени, основанном на шаблоне проектирования MVC. Он был выпущен в 2012 году под лицензией MIT. Это — бесплатный опенсорсный проект, написанный на JavaScript, подходящий для разработки кросс-платформенных веб-приложений. Он был создан, преимущественно, для разработки бизнес-приложений и приложений, реализующих некий особый функционал. Вот некоторые важные факты об этом фреймворке:

  • Обычно он применяется для реализации API, определяемых данными. Такой подход используется для создания таких приложений, как чаты реального времени, различные панели управления, игры.
  • Он хорошо совместим с самыми разными средами и технологиями для разработки интерфейсов приложений. Например, его можно использовать для разработки приложений, рассчитанных на платформы Android и iOS, с ним хорошо сочетаются библиотеки Angular и React. Это говорит о том, что разработчик, выбравший Sails.js, сможет интегрировать его практически в любой процесс разработки приложений.
  • Он поддерживает модули Grunt, такие, как LESS, SASS, Stylus, CoffeeScript, Pug (ранее — Jade) и Dust. Как результат, Sails.js идеально подходит для разработки браузерных приложений.
  • В него интегрирована ORM-библиотека waterline.js, благодаря чему он поддерживает универсальные средства для работы с различными видами баз данных, протоколов, сторонних API. Это облегчает взаимодействие с различными системами хранения данных.
  • В нём, для управления HTTP-запросами, используются возможности библиотеки Express.js.
  • Этот фреймворк широко используется при разработке веб-сайтов. Например, на его основе создан сайт компании Verizon. Ещё один пример его применения — сайт футбольной команды Detroit Lions.

Hapi.js

Hapi.js — это опенсорсный легковесный и высокопроизводительный фреймворк, предназначенный для разработки веб-приложений. Он создан силами команды Walmart Labs под руководством Эрана Хаммера. При проектировании фреймворка в расчёт принималась необходимость обеспечения работоспособности веб-проектов в ходе распродажи, которую Walmart устраивает в чёрную пятницу. В США в дни этой распродажи системы интернет-коммерции испытывают огромные нагрузки.

В результате команда Walmart создала Hapi в виде самостоятельного фреймворка. Изначально в Hapi был использован фреймворк Express, но оказалось, что ему сопутствует слишком много ограничений, из-за которых проект, основанный на нём, не соответствовал требованиям, предъявляемым к нему. Вот его основные особенности:

  • Hapi.js позволяет создавать статические веб-сайты, он имеет встроенную поддержку таких СУБД, как MySQL, MongoDB и PostgreSQL.
  • Этот серверный фреймворк хорошо сочетается с любыми библиотеками для разработки интерфейсов, такими, как React, Angular и Vue.js.
  • Проект, основанный на Hapi.js, может быть реализован в виде API-сервера, сервера, поддерживающего веб-сайт или HTTP-прокси.
  • Его можно использовать для разработки RESTful-приложений и веб-приложений реального времени, а также — для создания сервисов.
  • Он весьма популярен и используется в крупных проектах. В частности, речь идёт о сайтах компаний Disney, Concrete, PayPal, Walmart и многих других.

NestJS

NestJS — это серверный фреймворк для разработки приложений, который можно считать новичком в списках инструментов для Node.js. Его считают отправной точкой путешествия в мир современных концепций проектирования веб-приложений, таких, как микросервисные архитектуры, Event Sourcing и Domain Driven Design. Этот фреймворк создавали с учётом поддержки серверных скриптов и возможности создания с его помощью серверных приложений.

Среди основных особенностей этого фреймворка можно отметить следующие: Весьма интересной возможностью NestJS является поддержка TypeScript — подмножества JavaScript.

  • Модульная структура, использование которой упрощает разделение проекта на отдельные блоки. Она облегчает использование в проектах внешних библиотек.
  • NestJS содержит встроенный DI-контейнер.
  • Он поддерживает модульную организацию проектов, которые строятся в соответствии с принадлежностью каждой логической части проекта (модуля) определённой предметной области.
  • Использование NestJS упрощает тестирование благодаря поддержке таких возможностей, как DI-контейнеры и модули.
  • Фреймворк позволяет создавать расширяемые программные решения, между компонентами которых отсутствует сильная связь.

LoopBack

LoopBack — мощный фреймворк, содержащий встроенные средства для работы с API, что упрощает подключение проектов, основанных на нём, ко множеству серверных ресурсов. Этот фреймворк разработала та же команда, которая занимается работой над Express.js. Стоит отметить, что LoopBack поддерживает неплохой набор СУБД различных производителей.

LoopBack применяется известным доменным регистратором и хостинг-провайдером GoDaddy, им пользуется разработчик систем компьютерной безопасности Symantec. Этот фреймворк, благодаря его мощным возможностям, был выбран командой DA-14 в качестве основы проекта Cosmunity (социального приложения). Отметим некоторые особенности LoopBack:

  • Фреймворк поддерживает возможность разбора определений моделей данных, упрощает проектирование новых RESTful-API, что оказывает помощь разработчикам при установке предопределённых ролей на уровнях пользователя и приложения.
  • Благодаря использованию возможностей NPM он позволяет создавать динамические API.
  • С использованием динамических API может быть значительно улучшена производительность динамических серверных приложений.
  • Фреймворк предлагает множество дополнительных компонентов для управления файлами, для организации входа пользователей в систему силами сторонних проектов, для использования OAuth2, провайдеров хранения данных и так далее.
  • LoopBack-приложения можно разворачивать как на традиционных серверах, так и в облачных средах.
  • Совместно с этим фреймворком можно использовать различные средства разработки интерфейсов приложений, например — Angular и SDK для Android и iOS.
  • LoopBack имеет инструменты командной строки для создания REST-API с использованием, средства исследования API, поддерживает модели, основанные на специфических схемах данных.
  • Он позволяет быстро подключать приложения, работающие на мобильных устройствах и в браузерах, к источникам данных и к сервисам.
  • Он упрощает настройку авторизации и аутентификации пользователей.

Derby.js

Derby.js можно описать как fullstack-фреймворк, основанный на шаблоне MVC и широко используемый при разработке современных веб-приложений. С его помощью можно разрабатывать и серверные и клиентские приложения. Его, в основном, используют для создания мобильных приложений и веб-приложений реального времени.

Но теперь его возможности легко можно расширять сторонними модулями, что способствует проектированию и разработке качественных проектов. Изначально Derby.js поддерживал лишь ограниченное количество стандартных Node.js-модулей. Вот некоторые характерные особенности этого фреймворка:

  • Благодаря Racer — встроенной в Derby.js подсистеме синхронизации данных, разработчик может воспользоваться возможностями параллельной обработки и синхронизации данных между браузерной частью приложения, его серверной частью и базой данных. То же самое касается и синхронизации клиента и сервера в более общем смысле.
  • Фреймворк позволяет организовывать код в виде компонентов с использованием HTML-шаблонов, которые удобно использовать при проектировании приложений.
  • Вокруг него сложилось активное сообщество разработчиков, что означает возможность получить ответ на некий сложный вопрос о Derby.js, не раскрытый в документации и в существующих публикациях.
  • Благодаря поддержке серверного рендеринга этот фреймворк позволяет создавать высокопроизводительные веб-проекты, страницы которых загружаются в браузеры пользователей очень быстро и хорошо индексируются поисковыми системами.

Mean.io

Mean.io — это ещё один fullstack-фреймворк — бесплатный, опенсорсный и мощный, который используется для разработки динамических сайтов и веб-приложений. Он включает в себя все четыре компонента стека MEAN — MongoDB, Express.js, Angular и Node.js. Помимо этих компонентов в него входят и другие важные для веб-разработки инструменты, такие, как Babel и GraphQL. Фактически, речь идёт о том, что этот фреймворк представляет собой полноценный набор инструментов для веб-разработки. Вот некоторые заметные особенности Mean.io:

  • С его помощью можно разрабатывать приложения любых размеров и любой сложности. Благодаря тому, что в него входят все компоненты стека MEAN, он весьма эффективен и популярен.
  • Существует множество сайтов и веб-приложений, созданных на базе Mean.io.
  • Он включает в себя практически всё, что нужно для того, чтобы приступить к разработке веб-проекта.

Total.js

Total.js — это серверный фреймворк, основанный на шаблоне MVC. Он очень хорошо подходит для разработки веб-приложений. Если говорить об использовании этого фреймворка совместно с другими технологиями, то можно отметить его гибкость и хорошую совместимость с большинством из существующих систем управления базами данных. Среди них — MongoDB, MySQL, PostgreSQL и другие.

Вот некоторые особенности этого фреймворка, на которые стоит обратить внимание: Total.js, кроме того, совместим с инструментами для разработки интерфейсов, с такими, как React, Ember и Angular.

  • Он позволяет, без использования зависимостей, создавать серверные и клиентские приложения.
  • Фреймворк экономичен, не требует высокой вычислительной мощности и больших объёмов памяти, хорошо показывает себя на ARM-устройствах.
  • Поддерживает работу с событиями (речь идёт о технологии WebSocket и о событиях, посылаемых сервером).
  • Поддерживает отправку электронных писем с использованием SMTP, средства локализации, стриминг медиа-данных, средства визуализации данных, темы.
  • Подходит для быстрой разработки проектов, весьма стабилен и высокопроизводителен, требуя, в сравнении с другими сопоставимыми с ним фреймворками, меньше ресурсов.
  • Поддерживает различные схемы маршрутизации (классическую, динамическую, основанную на регулярных выражениях), и, кроме того, позволяет разработчику создавать собственные маршруты для обработки динамических данных, файлов или событий WebSocket.

Итоги

В этом материале мы рассмотрели несколько популярных Node.js-фреймворков. При выборе фреймворка для конкретного проекта стоит учитывать следующие факторы:

  • Качество документации.
  • Сообщество.
  • Состояние проекта на GitHub, скорость исправления ошибок.
  • Набор задач, для решения которых обычно используется фреймворк.
  • Гибкость решения.
  • Сложность системы.
  • Совместимость фреймворка с другими инструментами, которые планируется использовать.

Уважаемые читатели! Какими Node.js-фреймворками вы пользуетесь и почему выбрали именно их?


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Векторные представления товаров, или еще одно применение модели Word2Vec

Когда видов товаров тоже много, решить задачу помогает модель Word2Vec. Каждый день полтора миллиона людей ищут на Ozon самые разные товары, и к каждому из них сервис должен подбирать похожие (если пылесос все-таки нужен помощней) или сопутствующие (если к поющему ...

[Перевод] Внутренняя и внешняя линковка в C++

Всем добрый день! Надеемся, что она будет полезна и интересна для вас, как и нашим слушателям. Представляем вам перевод интересной статьи, который подготовили для вас рамках курса «Разработчик C++». Поехали. Хотите узнать, для чего используется ключевое слово extern, или как ...