metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-12-16 03:42 pm

Кто-то тупой, или я или гвозди

Сижу изучаю различные варианты реализации middle-tier, который планируется использовать в будущем для нескольких проектов. Решил пересилить свой страх и взглянуть на J2EE. А надо сказать, что для неподготовленного ума ентерпрайз жаба выглядит совершенно ирреально бредовой: миллиарды фреймворков, утилит, серверов, сотни страниц документации, проекты на ней содержат over 9000 папок и мелких исходников и xml-конфигов и вообще я не уверен, что в здравом уме и имея некую начальную свободу выбора инструментов, с этим стоит вообще связываться.

Начал искать что-нибудь вроде "J2EE для начинающих с пошаговыми инструкциями". Нашел AppFuse. Вроде все описано понятно, есть QuickStart, написано откуда качать зависимости, итд, итп. Но таки вы будете смеятся - но я не могу найти, где качать исходники этого дела. Ссылки "Download" на сайте нету.

Я, конечно, счас попытаюсь произвести описанные там вуду-ритуалы, может мавен тот все что нужно сам скачает, но то, что начинать приходится с вуду-действий, как-то печалит.

Вообще говоря, у меня уже есть почти полностью готовая основа для этого миддл-тиера, на которой я бы проект сделал очень быстро: Firebird+Delphi+ASP.NET RESTful веб-сервис. Но проблема в том, что это означает полную и окончательную привязку проектов к виндам, отказ от любых потенциальных работ с юниксами в будущем и сгнаивание мозга до состояния "сеньор-фокспро-девелопер в ВЦ НИИ Говна и Торфа, 50 лет, 30 лет опыта рисования формочек в дизайнере".

Кроме того, если дать объявление "требуется разработчик на дельфи" - приходят такие долбаные мышевозы с паттернами "magic button" что рыдать хочется, соответственно шансов на то, что хотя бы когда-нибудь я займусь только архитектурой и управлением проектами, вместо того, чтобы самостоятельно писать код, внедрять и обслуживать - не останется никаких.


PS: Есть кстати, еще одна, еще более неадекватная альтернатива: сойти с ума и ударится в нетривиальщину вроде ерланга и хаскеля, начать писать самодельный миддл-тиер на чистом С и изобретать прочие велосипеды. То, что это гарантированно будет легче для нервной системы, чем J2EE и ASP.NET, я уверен. Там комьюнити меньше и не будет такого, что половина интернетов забита разнообразными фреймворками, каждый из которых настолько наворочен, что позволяет не писать код, а всего лишь парой сотен xml-конфигов сделать любое приложение.
Я вспоминаю 90-е годы, когда никаких интернетов не было, проекты были более мелкие и выбора "на чем писать" особо не было, можно было велосипеды изобретать хоть годами.

В этом, кстати, и проблема с J2EE - я уверен, что 83% авторов готовых фреймворков думают совершенно не так как я, то бишь неправильно, хаскель не изучали, и вообще делали эти фреймворки по наитию левой задней пятки.

Вот, к примеру: я считаю, что любой, кто сталкивался с статической типизацией и выводом типов, резко перестанет делать проекты "мегапереконфигурируемыми" с помощью сотен xml-конфигов, т.к. это выносит проверку правильности с времени сборки на время деплоймента и запуска. Ошибся в xml-файле в одной букве и вешайся, читай 100-строчные стеки вызовов и это еще хорошо, если у тебя доступ к продакшен-серверу есть.

(Anonymous) 2009-12-16 04:51 pm (UTC)(link)
> В этом, кстати, и проблема с J2EE - я уверен, что 83% авторов готовых фреймворков думают совершенно не так как я, то бишь неправильно, хаскель не изучали, и вообще делали эти фреймворки по наитию левой задней пятки.

все гораздо хуже - это могли писать студенты в виде лабы/курсового/диплома.

сейчас плотно работаю с 3-м курсом - меня поражает, что большинство студентов не воспринимают систему, как целостную причинно-связанную систему. Вместо этого наблюдаю уровень средневековья: "взять жабий глаз, тритонью икру и пару дохлых тараканов. варить до готовности, помешивая куриной лапкой в полнолуние, стоя лицом на север". понимания почему нужны именно эти ингридиенты у большинства нет в принципе и желания понимать - тоже. типичная отмазка "в доке написано сделать так-то и так-то"

[identity profile] metaclass.livejournal.com 2009-12-16 04:57 pm (UTC)(link)
Вот в этом и проблема, я пытаюсь это дело воспринимать как целостную систему, понимая, что я делаю. А это, похоже, не принято.

[identity profile] b00ter.livejournal.com 2009-12-16 06:48 pm (UTC)(link)
Угу, либо культ карго, либо дурка.

[identity profile] d4s.livejournal.com 2009-12-16 08:14 pm (UTC)(link)
именно поэтому, ребе, у нас с вами всегда будет работа, не глядя на всякие кризисы. разве что неолуддиты победят ;-)

[personal profile] ex0_planet 2009-12-16 06:49 pm (UTC)(link)
А потому что если попытаться понять - долбанешься: поменял одну букву xml-конфига и пожалте парсить тыщи строк дампа стека.

[identity profile] volodymir-k.livejournal.com 2009-12-16 09:47 pm (UTC)(link)
А типа на Си не так. Или Эрланге.

[personal profile] ex0_planet 2009-12-16 09:55 pm (UTC)(link)
Это в кровавом энтерпрайзе так. А язык тут совершенно не при чем.

[identity profile] volodymir-k.livejournal.com 2009-12-19 01:39 am (UTC)(link)
То есть убрали претензию к языку xml. Да, в энтерпрайзе диагностика чуть посложнее коре дампа от хелловорлда.

[personal profile] ex0_planet 2009-12-19 06:06 pm (UTC)(link)
А подход "выполнить магические пассы и позвать того-кто-Знает если не сработало" - он вообще оказывается наиболее эффективной (в очень многих смыслах) стратегией, только пользователи в конечном счете оказываются в проигрыше.
К xml'ю претензий вообще не было, он здесь чисто привычным жупелом работает :-)

[identity profile] slonopotamus.livejournal.com 2009-12-17 07:24 am (UTC)(link)
окошко 'приложение совершило недопустимую операцию и будет закрыто' гораздо информативнее, да.

[identity profile] metaclass.livejournal.com 2009-12-17 09:21 am (UTC)(link)
Это окошко в норме тоже сопровождается 100 строчным стеком.
Я не про ошибки сами по себе и их обработку, а про то, что вынос конфигурации в xml это сознательный отказ от проверки валидности программы при компиляции. Я понимаю, зачем это делают("при деплойменте можно будет перенастроить") но это на самом деле маразм.

[identity profile] slonopotamus.livejournal.com 2009-12-17 09:51 am (UTC)(link)
если валидность xml'ей проверяется при запуске, то это тоже приемлемо. ну и кагбе есть spring javaconfig и среды разработки, проверяющие валидность прямо в процессе написания этих конфигов.

[identity profile] henu3detb.livejournal.com 2009-12-17 11:35 am (UTC)(link)
эта валидность проверяется IDE прямо во время долбления по клавишам. И еще при компиляции, если компилировать из IDE. Про idea слышали?

[personal profile] ex0_planet 2009-12-17 10:24 am (UTC)(link)
При чем тут окошко? Вы голоса-то в вашей голове озвучьте.

[identity profile] veter-r-r.livejournal.com 2009-12-16 10:31 pm (UTC)(link)
А уже и невозможно воспринимать систему причинно-связанно.
Потому что там действительно пятьсот каталогов и три тыщи файлов. И это только в рабочей папке! А что творится в каталоге с либами, просто страшно подумать.

И я понимаю, за что хорошим Java программистам так платят. В этом разбираться могут только очень, очень талантливые люди.

[identity profile] guamoka.livejournal.com 2009-12-17 03:27 pm (UTC)(link)
А что потом с этим всем еще на рантайме делается, когда весь стек забит вызовами автоматически сгенерированными прокси!

[identity profile] veter-r-r.livejournal.com 2009-12-17 03:40 pm (UTC)(link)
Ага. У меня лог 90 мегабайт за примерно час работы набегает.