Express-Koa-Presentation

https://cqxg.github.io/Express-Koa-Presentation/

Перевод: А сейчас давайте перенесемся в 2009г., когда двухлетние эксперименты Райана Даля по созданию серверных веб-компонентов увенчались успехом и появилась принципиально новая технология. Node.js – событийно-ориентированная платформа, применяемая для создания веб-приложений, которая обеспечивает возможность использовать JavaScript на стороне сервера.

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

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

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

https://expressjs.com/en/resources/companies-using-express.html

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

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

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

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

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

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

ПЛЮСЫ:

простота

гибкость

хорошая масштабируемость

развитое сообщество

подробная документация

широкий выбор подключаемых модулей

МИНУСЫ:

большой объем ручной работы используется устаревший подход callbacks функций

перейдем к

KOA.JS

Koa был создан командой разработчиков, как вариант фреймворка Express в новом поколении. Такая улучшенная версия разрабатывалась для создания веб-приложений и API с повышенной производительностью. Соответственно, создатели стремились учесть все недостатки предшественника и сделать его более современным и удобным в использовании.

Посмотрим, насколько это удалось. Koa обладает практически таким же функционалом и превосходит Express по легкости. Характерной особенностью Koa является использование генераторов ES6.

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

Применение генераторов ES6 в Koa позволяет исключить обратные вызовы (англ. callbacks), уменьшает для разработчиков объем работы с кодом и снижает вероятность ошибок.

Благодаря тому, что создателями Koa уже были учтены минусы, выявленные в процессе работы с Express, этот фреймворк может похвастаться тем, что его применение существенно упрощает адаптацию под конкретные запросы клиентов (кастомизацию). А такая характеристика может в итоге сыграть решающую роль в процессе выбора: сегодня в условиях высокой конкуренции любое приложение стремится к использованию своего собственного стиля.

Если говорить о недостатках, они, в основном, связаны с относительной молодостью Koa (появился в 2013 г.). Фреймворк не пользуется поддержкой такого обширного сообщества, как Express, и еще не успел продемонстрировать все свои возможности.

ПЛЮСЫ:

легкий

гибкий

быстрый

генераторы ES6

лучшая кастомизация

МИНУСЫ:

недостаточная поддержка сообщества

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

Express.js подходит для:

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

Koa.js подходит для:

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

Я отдал бы свое предпочтение Koа, потому что: Как и Express, Koa не ограничивает разработчика в использовании встроенных модулей, а дает возможность выбрать из множества именно тот, который подходит лучше всего для конкретного проекта;

Koa вобрал в себя достоинства проверенного и широко-используемого фреймворка Express;

у создателей Koa была возможность проанализировать сложности, с которыми столкнулись разработчики, использовавшие Express; при создании Koa были учтены недостатки его предшественника; Koa основан на новых стандартах и соответствует современным тенденциям;

Koa подходит для разработки самых разнообразных приложений любого объема, с любой степенью кастомизации и с любыми требованиями к поддержке;

это моё мнение В любом случае выбор в том, что использвоать- остается за вами. Спасибо за внимание.