Комментарии 9
Try {
params("id").toInt
} match {
case Success(id) => DB.getUserById(id)
case Failure(ex) => pass()
}
Кошмарный бойлерплейт. В Play достаточно объявить аргумент метода — и он будет считаться параметром запроса. А проверки на валидность реализованы на уровне фреймворка.
Mutability в контроллере тоже доставило. :(
0
Безусловно, лучше при объявлении маршрута написать регулярку, которая будет пропускать только Int значения, но хотелось продемонстрировать возможность pass().
Про mutability в контроллере — поясните, пожалуйста.
Про mutability в контроллере — поясните, пожалуйста.
0
contentType = formats("json")
basicAuth()
По мне очевидно, что первая строчка устанавливает какую-то переменную в недрах фреймворка, а вторая ну просто должна тоже что-то установить — в противном случае как фреймворк поймет, что надо проверять аутентификацию?
Регулярку писать — тоже плохой тон — оно нечитаемо в сложных случаях.
0
Пробовал его, года два назад. Приложение до сих пор стоит в продакшне. Сам фреймворк нормальный, но смущает несколько вещей:
1) Редко обновляется (последний релиз больше чем полгода назад).
2) Много боли и геморроя с sbt
3) Шаблонизатор по-умолчанию Scalate имеет очень неприятные баги и не совсем интуитивен. Кроме того шаблоны нужно компилировать, а это дополнительное время.
4) Для базы данных пробовал Slick — интересный фреймворк, но на тот момент он был сыроват и не везде интуитивен.
В общем Scala — это как раз один из тех случаев, когда распространению крутого языка мешает его чрезмерная крутость (т.е. сложность) и отсутствие сопоставимой хотя бы с Java инфраструктуры разработки.
1) Редко обновляется (последний релиз больше чем полгода назад).
2) Много боли и геморроя с sbt
3) Шаблонизатор по-умолчанию Scalate имеет очень неприятные баги и не совсем интуитивен. Кроме того шаблоны нужно компилировать, а это дополнительное время.
4) Для базы данных пробовал Slick — интересный фреймворк, но на тот момент он был сыроват и не везде интуитивен.
В общем Scala — это как раз один из тех случаев, когда распространению крутого языка мешает его чрезмерная крутость (т.е. сложность) и отсутствие сопоставимой хотя бы с Java инфраструктуры разработки.
0
Скала сложна только первый год, а потом ничего, втягиваешься.
А что подразумевается под «инфраструктурой разработки» — не совсем понятно. IDE для скалы давно есть, а библиотеки можно и от явы использовать — в этом плане скала как раз уделывает не только всякие-там-пыхапы, но и вполне себе активно развивающиеся Ruby и Javascript
А что подразумевается под «инфраструктурой разработки» — не совсем понятно. IDE для скалы давно есть, а библиотеки можно и от явы использовать — в этом плане скала как раз уделывает не только всякие-там-пыхапы, но и вполне себе активно развивающиеся Ruby и Javascript
0
Скала не так уж сложна, но вот, например, добивает подход к написанию библиотек на имплиситах. Сложно разбираться в коде. Макросы, используемые в коде sbt — это вообще что-то запредельное. Очень бесит то, что нужно собирать библиотеки с поддержкой разных версий Scala (почему 2.10 несовместима с 2.11 ?!!!). В общем местами кажется, что ребята идут не по правильному пути.
0
почему 2.10 несовместима с 2.11 ?!!!
Для этого есть огромное количество причин. Самая простая и наглядная: если в 2.11 в стандартной библиотеке добавили хотя бы 1 не абстрактный метод в 1 трейт, то весь код уже требует перекомпиляции — Java 7 не поддерживает не абстрактные методы в интерфейсах.
Но они очень стараются найти этот правильный путь. Например проект TASTY.
0
1. Релиз 2.3.1 был в конце марта, сейчас активно готовится релиз 2.4.0 (https://github.com/scalatra/scalatra/releases). Примеры, как раз, с 2.4.0-RC2.
2. Sbt очень активно развивается, попробуйте еще раз. Боль все еще есть, но уже, имхо, не хуже всяких там maven/grandle/ant.
3. Есть еще инструкция по настройке twirl, использующемся в Play. Скорее соглашусь, меня Scalate тоже не слишком впечатлил.
4. Как раз думал в следующей статье написать про Slick. Если есть еще интересующие вопросы — пишите, постараюсь разобрать.
2. Sbt очень активно развивается, попробуйте еще раз. Боль все еще есть, но уже, имхо, не хуже всяких там maven/grandle/ant.
3. Есть еще инструкция по настройке twirl, использующемся в Play. Скорее соглашусь, меня Scalate тоже не слишком впечатлил.
4. Как раз думал в следующей статье написать про Slick. Если есть еще интересующие вопросы — пишите, постараюсь разобрать.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пишем веб-сервис на Scalatra