Александр Темерев - Circumflex - веб-фреймворк на Scala comme il faut (обсуждение)

Apr 13, 2011 16:33

Веб-фреймворк Circumflex - одна из сравнительно недавних разработок на Scala, и, на взгляд автора, гораздо менее известная, чем она того заслуживает. В статье описываются отличия Circumflex от других веб-фреймворков, применение языковых средств Scala для создания необходимых фреймворку DSL, подход к структурированию Scala-проектов, применяемый ( Read more... )

#7

Leave a comment

Comments 20

tonsky April 13 2011, 13:56:28 UTC
Хотел бы поправить насчет Django, это совсем не convention over configuration framework. Они как раз следуют заветам Дзена: «явное лучше неявного».

Reply


tonsky April 13 2011, 14:01:55 UTC
Александр, отличная статья, но из текста непонятно, почему именно circumflex заслуживает известности, как заявлено в аннотации. Где и кому он может быть более полезен, чем его аналоги? Мне было бы интересно про это тоже прочитать, помимо вашего замечательного туториала. Спасибо за статью!

Reply

sorhed April 13 2011, 15:02:19 UTC
На Scala веб-фреймворков мало. Все знают Lift, некоторые знают Scalatra, но Circumflex знают немногие. Лично мне в нём нравится объединение подхода Sinatra с мощными DSL, и хорошая документация.

Reply

kurilka April 14 2011, 21:23:58 UTC
На самом деле довольно стройный, но очень минималистичный фреймворк с прикольным ОРМ.
Имхо неплохо подходит для REST-based решений или какиех-то нетиповых проектов (т.е. когда итак велосипеды придётся собирать).
Плюшек довольно мало.
Вот, скажем валидация формы как в post("/ask/?") из https://github.com/RyuuGan/scalaqa/blob/master/src/main/scala/main.scala мне кажется большей похожей на мешанину, чем те же django.forms, в которых есть валидация на уровне поля и (если нужно) на уровне самой формы и где имеется биндинг формы к инпутам html, который в случае Circumflex делается "ручками" (правда тут, возможно, есть привязка к DTL тогда как Circumflex более-менее шаблонизаторонезависим)

Reply

sorhed April 14 2011, 21:58:10 UTC
Он так и задумывался - очень стройный, но очень минималистичный (но не такой минималистичный как Scalatra).

Впрочем, валидация действительно для фреймворка важна, насчёт этого можно поговорить с авторами. Форму же байндить к инпутам не надо, потому что в современных веб-приложениях форма всё равно через AJAX всегда сабмитится, и валидация нужна просто на уровне REST-ответа (что, кстати, несложно сделать и самостоятельно).

Reply


tonsky April 13 2011, 14:04:12 UTC
Да, и последнее: как у circumflex обстоят дела с live reloading, фичей, на мой взгляд, №1 для веб-разработки?

Reply

sorhed April 13 2011, 15:04:39 UTC
Как у всех. Можно средствами jetty (sbt поддерживает через prepare-webapp), можно через JRebel, у которого есть бесплатная лицензия для всех Scala-разработчиков. Работает в общем.

Reply

anton_arhipov April 13 2011, 15:55:27 UTC
видимо в сам фреймворк хуки то нужны, как и с Lift, чтобы не только классы перегружались (это я про ребель)

Reply

sorhed April 13 2011, 15:57:21 UTC
А «не только классы» - это что, например? Внутренний стейт там только какой сам написал (we don't need no freakin' state), ресурсы и веб-часть Jetty сам релоадит, а если поменялась, скажем, схема БД, так это лучше всё равно перезапустить от греха. :)

Reply


Офигенная тулза... ex_juan_gan April 16 2011, 02:08:53 UTC
Всё как найденное. Убедительно очень. И вкрапления джейквери тоже по делу; спасибо!

Reply


Leave a comment

Up