Подходящая структура для Async, REST и JSON WebService

Я нашел похожий вопрос, но для меня нет удовлетворительного ответа.


Я собираюсь создать веб-приложение для запуска и ищу наиболее подходящий** язык и фреймворк.

Я решил, что:

  • Пользовательский интерфейс должен быть отделен от бэкэнда
  • Фронтенд будет получать данные в JSON
  • Бэкенд должен быть REST
  • Данные будут храниться в MongoDB
  • Первоначально он будет развернут на бесплатном облачном хостинге.

У меня нет предпочтений к какому-либо конкретному языку, мне нужен только фреймворк, который:

  • имеет исчерпывающую документацию
  • имеет сильную поддержку сообщества
  • не требует специальных мер для реализации REST-доступа
  • может легко создавать ответы JSON

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

  • EJB
  • Рубин на рельсах
  • Джанго
  • Весна
  • Играть в!
  • Грааль

каковы преимущества и недостатки этих веб-фреймворков или тех, с которыми вы работаете?


После глубокого исследования я знаю, что мне действительно нужен WebService, который имеет доступ к некоторым данным из БД и предоставляет их в JSON для пользовательского интерфейса, чтобы представить их клиенту. Я также знаю, что мое приложение будет довольно большим, поэтому мне нужен надежный и всеобъемлющий веб-фреймворк, но я все еще не знаю, какой из них выбрать.


person Kamil Lelonek    schedule 04.09.2013    source источник
comment
Чего вы ожидаете от надежной и всеобъемлющей веб-инфраструктуры?   -  person Sushant Gupta    schedule 05.09.2013
comment
Я имею в виду, что фреймворк должен быть прост в обслуживании и масштабировании и должен поддерживать JSON, REST и асинхронность без каких-либо внешних библиотек и дополнительных настроек.   -  person Kamil Lelonek    schedule 05.09.2013
comment
Эй, сквикси, посмотри... тебе понравится :) youtube.com/watch?v= L0pjVcIsU6A   -  person Sushant Gupta    schedule 05.09.2013
comment
Хорошо, я люблю видео YT, объясняющие программирование :) Прежде чем я его посмотрю, я хотел бы упомянуть, что я немного боюсь такого языка, как JS, потому что мне действительно нравится строго типизированный язык, где я могу иметь полный управление типами переменных, написание на JS для меня в некотором роде неподконтрольно.   -  person Kamil Lelonek    schedule 05.09.2013
comment
Хе-хе... не волнуйся. Это весело, как только вы привыкнете к этому :)   -  person Sushant Gupta    schedule 05.09.2013
comment
Если вы хотите самостоятельно ответить на вопрос, опубликуйте ответ, не обновляйте вопрос, чтобы он также был ответом.   -  person thecoshman    schedule 12.08.2015


Ответы (2)


Я бы рекомендовал Node.js. Причина в том,

  • Его масштабируемость. Поддерживает более высокий параллелизм.
  • Хорошая поддержка Websocket (в отличие от Django).
  • Вы стартап и наверняка будете небольшой командой. Node.js — это чистый Javascript (серверный JS). Таким образом, для отдельного человека легко поддерживать код JS как во внешнем, так и в бэкэнде.
  • Node имеет активное сообщество, разрабатывающее и поддерживающее пакеты. Ознакомьтесь с npm (диспетчером пакетов узлов)
  • Что касается веб-фреймворка, вы можете использовать expressJS. Это минимальная структура веб-приложений, которую легко настроить.
  • Mongoosejs, ORM для Mongo также является исчерпывающим и впечатляющим.
  • Вы можете использовать Nginx для балансировки нагрузки внешнего интерфейса.

Кроме того, для интерфейса есть предложение. Если вы планируете создать мощный интерфейс на основе JS, используйте BackboneJS. Если вы просто планируете использовать простой JQuery, вы получите дерьмовый JS-код с бесконечными селекторами и отвратительным спагетти-кодом. Backbone поможет вам структурировать ваш интерфейсный код.

Я использовал все вышеперечисленное в своем проекте в течение последних 8 месяцев, и это был потрясающий опыт для меня. Раньше я был больше похож на Джанго.

person Sushant Gupta    schedule 04.09.2013
comment
Я тоже думаю об Angular.js. Как вы думаете, будет ли достаточно Node.js, когда мое приложение станет намного больше? - person Kamil Lelonek; 04.09.2013
comment
Его масштабируемость наверняка. Yahoo и Microsoft используют Node.js. Я надеюсь, что этого будет достаточно, чтобы утешить вас :) (Это так забавно, у меня был точно такой же вопрос год назад) github.com/joyent/node/wiki/ - person Sushant Gupta; 04.09.2013

Возьмите Node + Mongo + Express + Backbone.js

Хорошо описано в Создание приложений Node с помощью MongoDB и Backbone

Инвестиции времени/программные результаты здесь очень высоки, поэтому, если у вас есть идея, это может быть очень полезно в начале.

person Viliam    schedule 04.09.2013