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

Scala web microframeworks

Я ищу веб-фреймворк Scala, который имеет некоторые из следующих свойств.

  • Модульность, в случае (скажем), я не хочу использовать конкретный язык шаблонов или интерфейс БД, к которым по умолчанию относится каркас.
  • Избегайте "магических" или yucky решений по дизайну (с общим предпочтением Unfiltered функционального стиля) - такие вещи, как поточно-локальные объекты запроса/ответа, отражение (см. определение имени пользователя Bowler-функции) и т.д.
  • Интерфейсы DB. Любые, поддерживающие такую ​​же степень гибкости, как SQLAlchemy (поддержка ORM и SQL с плавными перехватами и побегами)?
  • Шаблоны/просмотр языков. Здесь довольно гибкая, хотя меня интересуют основанные на компонентах подходы.
  • Производительность, масштабируемость (поддержка Comet).

Какая лучшая веб-микрофотография Scala, которая подходит для счета? Некоторые рамки, на которые я смотрел:

  • Scalatra
  • Боулер (строит на Scalaтре)
  • Воспроизведение (интерфейс Scala)
  • Метасимвол
  • Нефильтрованная (минимальная обработка HTTP-запросов, отсутствие интерфейса интерфейса/шаблона DB)

Но, не тратя время на все это, трудно сказать, что использовать.

4b9b3361

Ответ 1

Bowler - это в значительной степени Scalatra + Scalate, с некоторым принуждением/подталкиванием разработчика к хорошему RESTful таких как правильное использование Content-Type и Accept HTTP Headers для ответа и испускания HTML и JSON, а также с GET, POST, DELETE и PUT соответствующим образом (и плохое использование GET и DELETE сложнее).

Если вам интересно узнать о компонентах, ориентированных на пользовательский интерфейс, Bowler делает поддержку стиля Scalate Scuery, который в сочетании с Bowler дает очень сложный стиль пользовательского интерфейса, сильно влияющий от Apache Wicket.

В терминах front-end vs. serverside, Боулер довольно убедительно видит, что клиентский код (JavaScript/CSS) является клиентом -side код и serveride-код - serveride. Никакая противная "интеграция" JavaScript с serveride Scala, вместо этого вы должны использовать лучшие в своем классе на клиенте и сервере, интегрированные в общий, хорошо понятный формат, такой как JSON.

Ответ 2

Мне нравится Play Framework с Scala. Но модуль Scala еще не поддерживает асинхронный материал (например, websockets). А также аббревиатура Anorm - база данных еще не очень зрелая.

Но мне нравится фреймворк, потому что он очень легкий, имеет хорошую производительность и легко понять.

Play Framework вдохновлена ​​Ruby on Rails и имеет очень короткий цикл разработки - просто сохраните исходные файлы Scala и обновите веб-браузер. Исходные файлы скомпилируются автоматически с помощью фреймворка, и он показывает информационные сообщения об ошибках компилятора непосредственно в браузере. Он также имеет хорошую интеграцию с системами тестирования, включая Selenium.

Play Framework использует высокопроизводительную серверную инфраструктуру (Netty), которая построена с помощью архитектуры, управляемой событиями, и это может дать лучшую производительность в приложениях комет, чем серверы на основе потоков, такие как традиционные контейнеры Java Servlet.

Ответ 3

Не уверен, что он квалифицируется как "микрокарт", но мне нравится Lift. Я действительно не посмотрел на другие, которые вы предлагаете, но вот несколько комментариев о Lift:

  • Это большой, но вы можете выбрать, какие части вы хотите использовать
    • Я никогда не беспокоился о больших его частях: например, Интерфейс БД, магические формы, Экраны, Мастера,...
  • Дизайнерские представления/шаблоны действительно приятны
  • Мне нравится, как правила перезаписи выполняются
  • Производительность очень хороша в моем опыте
  • Box отлично.
  • Большое, полезное сообщество

В лифте есть переменные с запросом и сеансом. Мне они нравятся, но они могут попасть в ваше описание "yucky" дизайна.

Он также включает реализацию кометы, которая должна быть очень хорошей, хотя я не использовал ее сам.

Работа и работа здесь.

Ответ 4

Лучшие из них - игра и подъем. Подъем настолько сложный и сдержанный. Игра очень легкая, легкая и безгосударственная, поэтому можно масштабировать очень легко. Typesafe.com(scala home) производится с воспроизведением / scala, а также проигрывается, а scala имеет тенденцию к увеличению. Модульность и производительность на стероидах в игре, есть много модулей для игры, а производительность системы шаблонов близка к исходному коду java/scala (намного лучше, чем лифт или jsp). Интерфейс DB Anorm в игре намного проще и эффективнее, чем ормы, такие как спящий режим, также легко отлаживаемый. Система шаблонов в игре /scala почти такая же, как и система asp.net mvc 3 для бритвы, это современное искусство, лучшее в мире IMO, и вы можете использовать другие, такие как scalate (с модулем масштабирования игры), но бритва много намного лучше.

С уважением, Сердар Ирмак