Подтвердить что ты не робот

Готово ли производство ракелей?

Спрей-каркас (spray.cc) кажется забавным и продуктивным способом создания служб REST с использованием Scala и Akka. Я пришел из школы Java + Spring, где все хорошо документировано, зрело и имеет хорошую поддержку сообщества.

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

Кто-нибудь использовал Spray в производственной среде? Что относительно сообщества с открытым исходным кодом вокруг Spray? Можно ли легко получить помощь?

ОБНОВЛЕНИЕ: Как спрэд сравнивается с BlueEyes (https://github.com/jdegoes/blueeyes)?

4b9b3361

Ответ 1

Мы используем Spray в прикладном программном обеспечении telco, и я бы сказал, что Spray готов к производству и

  • lite вес и плавно интегрируется с Akka
  • Может легко протестировать службы (нет необходимости запускать контейнер или микроядро Akka).
  • Хорошо документировано по сравнению с BlueEyes
  • Marshaling/unmarshaling JSON прост и эффективен
  • Может получить поддержку от группы писем с распылителем.

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

-Jestan

Ответ 2

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

Мы не обнаружили ошибок до сих пор.

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

Единственным недостатком, который повлиял на нас до сих пор, является относительный небольшой набор функций, но он неуклонно растет.

Я не знаю BlueEyes, поэтому я не могу ответить на вторую часть вопроса.

Ответ 3

Спрей - действительно приятная инфраструктура с некоторыми исключительно умными парнями за ней. Он дает вам простой код, который хорошо масштабируется с точки зрения как функций, так и одновременных пользователей. Если вы хотите закончить приложение, которое хорошо читает (хорошая структура, легко найти, какой URL-адрес сопоставляется с какой функцией и т.д.), Spray является удивительным.

Не все прекрасно, но.

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

В настоящий момент Spray (1.1M4) имеет очень ограниченную документацию для директив, поэтому вы сами по большей части читаете расширенный код Scala, царапая голову.

Обратная совместимость пока не воспринимается всерьез. Ожидайте касаться всего вашего кода при обновлении. Это так же виновато в Akka и Scala как на Spray. Если вам не нравится это, переходите к чему-то скучному и надежному, например, Spring MVC.

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

Я использую Spray в производстве и придерживаюсь его (возможно), но это нелегкая поездка. Ожидайте разочарования и удовлетворения в равных условиях.