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 подходит для разработки самых разнообразных приложений любого объема, с любой степенью кастомизации и с любыми требованиями к поддержке;
это моё мнение В любом случае выбор в том, что использвоать- остается за вами. Спасибо за внимание.