Я изучаю создание веб-приложения частично с Koa, но у меня не совсем есть ручка на hows, whens и whys выбора между - и применением - диапазон поддерживающих "асинхронных" технологий/подходы (перечислены ниже).
В целом разрозненные рекомендации в Интернете по этому вопросу все еще оставляют все расплывчатым, особенно в отношении эволюционирующих передовых методов или, по крайней мере, лучших, и при каких сценариях. В Интернете, кажется, мало или ничего нет, что ставит все это в контекст.
Я надеюсь, что ответы на этот большой растянутый пост могут исправить это. Кроме того, возможно, приведенные ниже вопросы могут вдохновить кого-то написать подробное сообщение в блоге или подобное, чтобы решить этот вопрос. Я имею в виду, что я даже не близок к единственному, кто выиграет от этого.
Поэтому я был бы рад, если бы яркое сообщество могло ответить на вопросы и дать ясность следующим вопросам в отношении технологий, перечисленных ниже (жирным шрифтом):
- a) Как и при каких обстоятельствах (если применимо) они дополняют, дополняют, заменяют и/или перекрывают друг друга решения?
- b) Каковы их компромиссы в отношении быстродействия, легкость обработки ошибок и легкость отладки?
- c) Когда, где и почему может быть лучше использовать технологию "this" против "той", технологии - комбо и/или подход?
- d) Какие технологии или подходы, если таковые имеются, могут быть "тусклыми звездами".
(Надеясь, что мнения, которые являются частью ответов, могут быть хорошо объяснены.)
==============================
Технологии:
* Koa *
Мое понимание:
Koa - это минимальная основа для создания приложений Node, предназначенных для использования функций ECMAScript-6, одна из которых, в частности, является генераторами.
* Co *
Мое понимание:
- Co - это библиотека утилиты для запуска генераторов ECMAScript-6 (которые являются родными для гармонии Node.011), цель которой состоит в том, чтобы выделить/много (?) необходимости писать шаблонный код для запуска и управления генераторами.
- Со является неотъемлемой частью Коа (?).
Конкретные вопросы:
- Если и как использовать Co по-разному в Koa, чем в контексте, отличном от Koa. Другими словами, делает ли Коа полностью фасадом Co?
- Может ли Co быть заменена в Koa какой-либо другой подобной генераторной библиотекой, если она/была лучшей? Есть ли?
* Библиотеки Promise, такие как "Q" и Bluebird *
Мое понимание:
- Они в некотором смысле "полиполны" для внедрения спецификации Promises/A +, если и до Node изначально выполняется эта спецификация.
- У них есть некоторые дополнительные утилиты для удобства использования, которые облегчают использование promises, например, утилиты Bluebird promisfyAll.
Конкретные вопросы:
- Я понимаю, что спецификация ECMAScript-6 действительно будет/будет в значительной степени отражать спецификацию Promises/A +, но даже при этом Node 0.11v гармония не реализует Promises. (Правильно ли это?) Однако когда это произойдет, появятся ли технологии, такие как Q и Bluebird?
- Я читал кое-что о том, что генераторы поддержки "Q" и Bluebird. Что это значит? Означает ли это отчасти то, что, например, они в какой-то степени обеспечивали такую же полезность, как и Co, и если да, то в какой степени?
* Thunks и Promises *
Я думаю, что у меня есть справедливая ручка на том, что они есть, но надеясь, что кто-то может предоставить краткое и ясное определение "высоты лифта" в отношении того, что каждый из них, и, конечно, как указано выше, объясняет, когда следует использовать один против другое - в контексте Коа, а не в нем.
Конкретные вопросы:
- Pro и против использования чего-то вроде Bluebird, по сравнению с использованием Thunkify (github com/visionmedia/ node -thunkify)?
==============================
Чтобы дать некоторый дополнительный контекст этому сообщению и его вопросам, может быть интересно, если бы методы Коа, представленные на следующих веб-страницах, могли обсуждаться и контрастироваться (особенно на основе плюсов и минусов):
- a) www.marcusoft. net/2014/03/koaintro.html(Где трюки или promises, или я ничего не вижу?)
- b) strongloop. com/strongblog/ node -js-express-введение-koa-js-zone (Опять же, где thunks или promises?)
- c) github. com/koajs/koa/blob/master/docs/guide.md(Что означает "следующий" аргумент, и что его установить и где?)
- d) blog.peterdecroos. com/blog/2014/01/22/javascript-generators-first-impressions (Не в контексте Koa, но представляет собой использование Co с библиотекой обещаний (Bluebird), поэтому я предполагаю, что представленная здесь техника/образец дает к использованию в Коа (?). Если да, то насколько хорошо?
Спасибо всем!