metaclass: (дзедline)
metaclass ([personal profile] metaclass) wrote2013-03-09 11:59 pm
Entry tags:

scala spray slick restful ад заборы коровники коворкинги хипстеры

В целях недопущения упрощения жизни, а так же чтобы псить, при необходимости, со знанием дела, осиливаю скалу.
Причем начал практически с конца - клепаю RESTful сервис на основе spray с всякими json-маршалингами внутри через имплициты и прочую адову содомию.
При достаточном количестве type-level магии оно выглядит, конечно, так же просто, как какое-нибудь руби, или как лиспы без скобок и с инфиксной записью, но внутренняя сложность, по-моему, зашкаливает. "Импортируй себе немножечко имплиситов и получи на халяву сериализаторы в json для всего", "Оберни маршруты в директивы логгера" и прочее такое.

Сборку завел, сначала через sbt (простой способ), потом импортировал в IDEA (условно простой) и потом стырил у [livejournal.com profile] jdevelop конфигурацию для мавена (нормальный способ). Воедино надо это как-то свести, чтобы не редактировать при добавлении новых зависимостей все вручную. Плюс еще импорт sbt в IDEA выглядит как ад и смерть.

Завести то я это чюдо заведу, но вот что с ним дальше делать, не совсем понятно. На данный момент картина выглядит так: Clojure проще, но скобки и стектрейсы компилятора отпугнут новых пользователей, Scala дико сложнее, но поначалу она выглядит как "почти жаба", обработка ошибок более читабельна и есть шансы, что в эту западню попадутся и желающие новеньких языков и любители сойти с ума на почве вычислений на типах.

[identity profile] plumqqz.livejournal.com 2013-03-09 09:30 pm (UTC)(link)
Пилите, Шура, пилите.

[identity profile] jdevelop.livejournal.com 2013-03-09 11:32 pm (UTC)(link)
это ок

[identity profile] jdevelop.livejournal.com 2013-03-10 03:10 am (UTC)(link)
где ссылко на гитхаб вашего чюда? хочу оценить

[identity profile] metaclass.livejournal.com 2013-03-10 07:28 am (UTC)(link)
Доведу до рабочего состояния - выложу.

[identity profile] blackyblack.livejournal.com 2013-03-10 07:50 pm (UTC)(link)
Пфф... Кому на гитхабе интересно смотреть на рабочую версию... Все хотят смотреть как оно с нуля создавалось.

[identity profile] den shabalin (from livejournal.com) 2013-03-10 08:34 am (UTC)(link)
Почему-бы не попробовать вместо spray заюзать scalatra, а для json-а Jerkson?

Количиства ада уменьшиться на 2 единицы.

[identity profile] xeno-by.livejournal.com 2013-03-10 08:42 am (UTC)(link)
Блин насчет джейсона быстрее бы народ сообразил про имплисит макросы для этого дела, как сделали в плее. Натурально, один макрос и не надо больше никакой магии, даже импортов никаких не надо, даже явно писать ничего не надо - просто все начнет автоматически работать.

Впрочем, в 2.10.0 полной красоты не получится - для каждого класса надо все еще писать руками вызов генерирующего макроса (например, val fooSerializer = genSerializer[Foo]). Я сам дурак конечно, что оставил SI-5923 в 2.10.0, но я ж тогда ничего не понимал в тайпчекере. О, а ведь этот фикс можно легко бэкпортить из 2.11.0-SNAPSHOT в 2.10.2! Следите за новостями.

[identity profile] metaclass.livejournal.com 2013-03-10 10:15 am (UTC)(link)
В jerkson 2.8 или 2.9 скала в требованиях :)

[identity profile] metaclass.livejournal.com 2013-03-10 09:59 am (UTC)(link)
Скалатра захотела giter8 для того, чтобы сделать пример проекта и я подумал, что это слишком далеко по направлению к зоопарку с яками.

[identity profile] metaclass.livejournal.com 2013-03-10 11:33 am (UTC)(link)
Да. Я не могу название сего хипстерства с первого раза никогда нормально написать.

[identity profile] den shabalin (from livejournal.com) 2013-03-10 05:09 pm (UTC)(link)
Согласен, g8 не фонтан, но сам фреймворк очень адекватный и очень прост в понимании. Чего сильно не хватает порой в scala екосистеме после python-a.

[identity profile] alexeyk77.livejournal.com 2013-03-10 09:39 am (UTC)(link)
класс, первый абзац почти уже не уступает по забористости эзотерическим текстам.

[identity profile] vp.livejournal.com 2013-03-10 02:45 pm (UTC)(link)

(Anonymous) 2013-03-10 04:39 pm (UTC)(link)
Если в слове "коворкинг" переставить буквы, получится "коровникг", бгг.