Я лично начал с спрея давным-давно и перепробовал все остальное, что было там для Scala.Хотя Scala, Spray, Akka, бесформенный и Scalaz, безусловно, имеют некоторую кривизну обучения, как только вы начинаете копаться и действительно изучаете, как вы должны использовать технологии, они имеют смысл, и я сразу увидел преимущества, особенно для такого рода.работы, которую я делаю прямо сейчас.
Лично я думаю, что на самом деле ничего не стоит, чтобы спрятать для создания обоих серверов, остальные API, HTTP-клиентов и все, что вы хотите.Что мне нравится в спреях, так это то, что они созданы с учетом акки.Возможно, это был действительно ранний проект, когда я впервые начал его использовать, но архитектура имела смысл.Эти ребята знали, что они делают с точки зрения использования преимуществ использования актерской модели и отсутствия каких-либо операций блокировки.
Хотя актерам может понадобиться немного привыкнуть, мне они нравятся.Они сделали мои системы очень масштабируемыми и дешевыми в эксплуатации, потому что мне не нужно такое мощное оборудование, как в прошлом.Кроме того, спрей имеет DSL с маршрутизацией распылением, поэтому создание API для отдыха относительно простое, если вы следуете правилам ... не блокируйте.Это, конечно, означает, что не стоит заходить и подключать http-клиент apache commons для выполнения клиентских запросов от API или актеров, потому что вы вернетесь к блокированию моделей.
Пока что я очень доволен спрей, типизированныйи акка.Их модели, естественно, пригодны для создания очень устойчивых систем, которые самостоятельно восстанавливаются, если что-то случится, и вы выберете отказоустойчивый подход.Единственное, что у меня есть со спреем (и это не вина спрея) - это проклятая поддержка IDE для DSL маршрутизации.Я абсолютно презираю Eclipse и всегда был пользователем IDEA.Когда я начал использовать плагин Scala, все казалось нормально.Тогда моя маршрутизация dsl естественным образом превратилась в более крупных зверей.Кое-что о том, как IDEA анализирует этот код, заставляет его срать в штаны каждый раз, когда он сталкивается с чем-либо с разбрызгиванием или бесформенным.Дело дошло до того, что его невозможно использовать (я набираю 2-3 буквы, и мне нужно подождать 5 минут, чтобы восстановить контроль).
Итак, для любого кода с разбрызгиванием или тяжелого бесформенного кода я запускаю emacs с помощью ensime,ensime-sbt и scala-mode2.Теперь, если бы я мог получить только библиотеку Cassandra с качеством astyanax, созданную с использованием более неблокирующей архитектуры.