metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-04-19 09:56 pm

Ояебундестаг

http://juick.com/zamotivator/2317894
Забиватор мутит веб-приложение на Scala+Lift.
Я сдуру решил глянуть, чо там за проблемы. В целом, надо как-то прекращать практику заглядывания "ради интереса" в чужие проекты, ибо голова не казенная.
Во-первых, гит я знаю плохо и переключится на ремоте branch так и не смог. Ну, тут все очевидно - надо изучать и пользоваться, это мне просто лень. А так - скачал просто архив
Во-вторых, слава богу, что ждевелоп заставил забиватора использовать мавен - он хоть и безумный, но по крайней мере, нормально документирован и я его уже использовал.
В-третьих, эта хреновина на mvn jetty:run выкачала половину интернета, по-моему. Этот странный фетиш разработчиков на тему "повторного использования кода" им боком вылезет еще неоднократно - когда ради 1 функции тащится целый фреймворк, а он за собой еще 100500 зависимостей - шансы налететь на конфликты версий и прочее червие сильно возрастают. А мавен это делает очень легким, оказывая медвежью услугу. Ну, там хотя бы лишние зависимости исключить можно и то хлеб.
В-четвертых, оно ругается на то, что там используются две разных версии Scala-compiler. Т.е. см. выше - про версии, "с приездом вас".
В-пятых, оно собирается ровно один раз. Второй раз надо удалять target, иначе конфликты типов вида

https://gist.github.com/metametaclass/5422381


В-шестых, забиватор частично прав насчет Lift - там просто реальный майндфак и хипстерство, документация в гугло-группе и на SO, разобраться конкретно с его проблемой можно, но радости от этого не наблюдается никакой.
Причина, в целом, классическая - веб-фреймворки (в отличие от библиотек) - очень негуманная штука. Стоит выйти за рамки HelloWorld и монолитных приложений и оказывается, что любая задача выливается в копание по исходникам, SO, форумам и раскиданной по сотне мигрирующих туда-сюда сайтов.

ЗЫ: Забиваторъ утверждает (http://juick.com/2320702) что мавен выбрал самостоятельно.

[identity profile] fantaseour.livejournal.com 2013-04-21 10:49 am (UTC)(link)
Раз уж Вы 7 лет эту почву топчите, то странно, что удивляетесь таким явлениям. Просто в вебе не прижились привычные десктопные контролы, а попытки их сделать ведь были. Но как-то не приросло. Из-за исторических причин наверное

А с календариком причины могут быть совершеннно не мистичиеские:

1) несколько раз инициировали календарик и ожидаете не тех эффектов
2) сколнировали кусок с календариком через jQuery и пробуете его навесить заново
3) у контрола уже были классы, которые просигналили, что календарик уже навешен.

Такого рода баги отлаживаются, хотя они и неприятны и трудно находимы.