menu icon

Стек MEAN

Стоит ли вам использовать MEAN? Узнайте, почему этот комплексный стек, состоящий из MongoDB, Express.js, AngularJS и Node.js, все чаще используется для разработки современных веб-приложений.
  • Создание масштабируемых приложений, оптимизированных для развертывания в облаке
  • Оптимизация разработки благодаря использованию одного языка в рамках всего приложения
  • Упрощение развертывания за счет встроенного веб-сервера
  • Управление большими объемами данных благодаря гибкости MongoDB

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

Тем не менее, существует большое разнообразие стеков. В нашем распоряжении целый ряд вариантов, начиная с LAMP и заканчивая Ruby on Rails. Каждый стек имеет свои достоинства и недостатки и предназначен для определенных проектов. Не бывает одного стека, подходящего на все случаи жизни.

Что такое MEAN?

MEAN — это сравнительно новый стек, название которого является аббревиатурой MongoDB, Express.js, AngularJS и Node.js. Стек MEAN целиком написан на JavaScript и в основном используется для приложений, поддерживающих облачную среду. Для того чтобы максимально эффективно использовать MEAN для разработки ПО, нужно понять, когда его стоит использовать, изучить примеры его применения и подробнее познакомиться с отдельными компонентами.

Если вы хотите увидеть, как легко разработать и развернуть приложение в облаке с помощью стека MEAN, IBM предлагает простое руководство по созданию современного приложения в стеке MEAN.

Преимущества

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

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

Примеры внедрения

Стек MEAN подходит не для всех приложений, но существует множество ситуаций, в которых он превосходно работает. Благодаря своей масштабируемости и возможности управлять одновременно работающими пользователями, он хорошо подходит для разработки приложений для облака. Благодаря фреймворку AngularJS, предназначенному для разработки клиентской части, он хорошо подходит для создания одностраничных приложений, в которых вся информация и функции содержатся на одной странице. Вот несколько примеров использования MEAN:

  • Календари
  • Отслеживание расходов
  • Сайты агрегаторов новостей
  • Карты и определение местоположения
Диаграмма архитектуры среды выполнения Node.js с MongoDB в стеке MEAN

Пример архитектуры среды выполнения Node.js с MongoDB в стеке MEAN.

Компоненты

MongoDB

MongoDB — это база данных NoSQL с открытым исходным кодом для облачных приложений. Вместо реляционной модели она использует объектно-ориентированную модель организации.

В стеке MEAN MongoDB отвечает за хранение данных приложения. Поскольку и приложение, и база данных используют JavaScript, не нужно преобразовывать никакие объекты, которые передаются из приложения в базу данных и наоборот. Приложение может без задержек отправлять и извлекать объекты, взаимодействуя с серверной частью и базой данных.

База данных MongoDB известна своей превосходной масштабируемостью как в плане емкости, так и в плане производительности. В базу данных можно добавлять поля, не перезагружая всю таблицу. Также MongoDB хорошо известна своей способностью управлять большими объемами данных без снижения скорости доступа к данным. Для того чтобы увеличить ресурсы базы данных, достаточно сделать несколько щелчков мышью, благодаря чему она превосходно подходит для приложений с периодическими всплесками активности.

Дополнительную информацию о MongoDB можно найти в публикации «MongoDB: краткое руководство».

Express

Express — это фреймворк веб-приложений для Node.js. В нем найдена золотая середина между простотой использования и полнотой набора функций.

Дополняя серверную часть стека MEAN, Express обрабатывает все взаимодействия между клиентской частью и базой данных, обеспечивая бесперебойную передачу данных конечному пользователю. Он предназначен для использования в связке с Node.js, и поэтому также обеспечивает согласованное использование JavaScript в стеке.

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

Кроме того, Express защищает вас от собственных ошибок, так как он использует стандарт модуля CommonJS для предотвращения случайной перезаписи переменных в общем пространстве имен. Он не позволяет случайно переопределить ранее созданную переменную. Такое применение замыканий JavaScript позволяет предотвратить ошибки, чреватые потерей времени и денег.

AngularJS

AngularJS — это не единственный, но чрезвычайно популярный JavaScript-фреймворк для разработки клиентской части, созданный Google. Фактически он стал стандартом для разработки клиентской части на JavaScript. Если вы разрабатываете веб-приложение на JavaScript, значит вы используете AngularJS.

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

AngularJS не случайно стал самым популярным JavaScript-фреймворком для клиентской части. Благодаря возможности разрабатывать сразу для ПК и мобильных устройств, превосходно оптимизированной производительности и простым шаблонам, он идеально подходит для создания облачных приложений.

Node.js

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

Node.js выполняет роль платформы стека MEAN. Express специально разработан для работы поверх Node.js, а AngularJS легко подключается к Node.js для быстрой обработки данных. Node.js поставляется с интегрированным веб-сервером, что облегчает развертывание базы данных MongoDB и приложения в облаке.

Самой сильной стороной Node.js является его масштабируемость. Облачные приложения хороши тогда, когда они быстро реагируют на пиковый рост нагрузки. Для чего нужны практически безграничные вычислительные мощности, если они становятся доступны только после возникновения тайм-аута у пользователя? Расширяя свои ресурсы по мере необходимости, вы можете обслуживать больше пользователей, в то время как однопотоковая архитектура фреймворка позволяет приложению эффективно взаимодействовать с пользователями по многим соединениям. Node.js может поддерживать до миллиона соединений одновременно.

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

Стек MEAN и IBM

Стек MEAN стремительно набирает популярность. Высоко ценимый за свою гибкость, универсальный язык и масштабируемость, стек MEAN превосходно подходит для разработки любого веб-приложения, предназначенного для облачной среды.

Если вы хотите узнать, как легко разработать и внедрить приложение в облако с помощью стека MEAN, IBM предлагает простой учебник для создания современного приложения в стеке MEAN.

Для того чтобы приступить к использованию IBM Cloud, зарегистрируйтесь здесь.