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-строчные стеки вызовов и это еще хорошо, если у тебя доступ к продакшен-серверу есть.

[identity profile] vp.livejournal.com 2009-12-16 06:32 pm (UTC)(link)
А можно бардаками померяться?
У вас причина ухода какая была?
Потому что у нас с хозяином ЖЖ вроде на конторе все живо и динамично, деньги платят исправно, но.. бардак. Вот он то и угнетает. То есть сугубо моральный прессинг. Но я сколько не советовался с людями - все говорят, что надо лечить голову, ибо на второй работе будет директор-пидор, на третьей будет начальник департамента псих, который будет тебя ненавидеть просто так, и т.п. в любых комбинациях.

в принципе так и есть

[identity profile] golomeen.livejournal.com 2009-12-16 08:04 pm (UTC)(link)
все любят говорить "поставлен/не поставлен ли в конторе NNN процесс".
Правильнее говорить лишь о степени бардака. Команда с Шапито и конями - это вообще дрим-тим. Ведь против червей и гусениц это куда как лучше.

Дело в общем-то даже не в мозгах и тараканах. "Это наша Родина, сынок". Процесса нет в стране, стало быть и в конторе его быть не может. Сферический вакуумный конь быстро дохнет в городском воздухе.

[identity profile] enternet.livejournal.com 2009-12-16 08:12 pm (UTC)(link)
Буду рад если мой опыт кому-нибудь пригодится. Лучше на "ты".

Причина ухода комплексная:
1) Осознание стагнации и смерти любимого инструмента. Delphi RIP.
2) Следом осознание, что как разработчик, я никому на стороне не нужен уже. А новых технологий попробовать негде. Самообразование рулит, но без практического коммерческого применения немногово стоит.
3) Осознание того, что как проектировщик я имею все шансы зациклиться на достаточно простых мелких оперденях, а крупных проектов не предвиделось.
4) Осознание того, что как менеджер я обречен остаться руководителем небольшого отдела. Иерархия предприятия плоская - выше остались только учредители. Расти некуда. В учредители не берут.
5) Осознание того, что в зарплате я больше не получу. Могу, но костьми лечь буквально надо даже за тысячу евро. Вроде как и невысок прыжок от штуки баксов к штуке евро, но заколебался брать, за каждые 50 баксов рубиться приходилось.
6) Осознание того что мне не у кого больше учиться. Догнал тех, кого уважал, а тех кого не уважал, натурально научился насковозь видеть.
7) Осознание того что как предприниматель я тоже кое-чего могу попробовать.
8) Достало всё. Устал от всего. Уходил просто в никуда. Первое время ничего не делал, так, стул протирал.

Походил по минским фирмам. Разным. Понял, что меня везде ставят в ситуацию "вы ничего не знаете". И вполне аргументированно везде тебе объясняют, что как менеджер ты гавно, мол процессы у вас были неправильные, а правильных ты не знаешь, как казработчик ты гавно, не опыт нужен а знание шаблонов, а названия шаблонов ты знаешь плохо, проектировщики нигде не нужны - везде места заняты и т.д. Причин миллион, были и объективные, да. Причем когда я озвучивал желаемую планку зарплаты, а я накидывал баксов 150 к тому что имел ранее, натыкался на когнитивный диссонанс. Один раз дошло даже до оскорблений (завуалированных слегка) от потенциального начальника. После этого до меня дошло, как в Минске на самом деле всё хуёво.

В общем я полностью сменил весь инструментарий, все технологии и место. Европа/Москва рулят. Впрочем Минск на удаленке тоже неплох.

Резюме по себе и по знакомым:
1) В Минске искать нечего. шансы бывают, но очень редко. Раз в год.
2) В Минске все связаны, жить нужно в ладу со всеми и не гадить. Хотя этот принцип по жизни везде поможет, я считаю.
3) Самообразование рулит.
4) За рубежом жизнь есть. И хорошая. А язык учится и на месте.
5) Сам не сделаешь - за тебя никто этого не сделает. Даже если ты лучший друг у руководства, пьешь с ним пиво и ходишь в сауну, оно тебе зарплату не прибавит. Иди и скажи чего ты хочешь. На слова "будет завтра" смейся в лицо. Никто ценного сотрудника не уволит, нужно это понимать. Ничего лишнего не подписывать несмотря на страшные угрозы, наоборот не лишне требовать расширения условий контракта. Можно даже пунктами, не имеющими юридической силы. Это отрезвляет людей.
6) Кредит на работе не брать! За сослуживцев в кредитах не поручаться!
7) Профессиональный круг общения расширять любыми способами!
8) Оказывается у руководства столько способов удержать нужного сотрудника, атас. Способов миллион. Но все называются кратко - "развод". Даже если ты не знаешь в чем он - он есть.
9) Времени всегда мало. Обидно его тратить бесцельно или бесполезно.

Может что и забыл. Спрашивай.

[identity profile] metaclass.livejournal.com 2009-12-16 08:19 pm (UTC)(link)
Ну, в общем, у нас та же самая ситуация, один в один.

[identity profile] vp.livejournal.com 2009-12-16 08:57 pm (UTC)(link)
Спасибо за расширенный комментарий.
У нас очень близкая ситуация, за несколькими но:
Шеф привык, что контора "работает сама по себе", без его участия, чисто на том что ведущие специалисты болеют за дело и т.п. Но время идет, ситуация меняется. Некоторые ведущие специалисты подвинулись на голову и практически открытым текстом чуть ли не посылают шефа, понимая, что им ничего он не сделает. Другие - саботируют работу. Короче, клуб по интересам. Это на фоне того, что контора архиживая, все живое, проекты денежные, контора сидит на инфраструктуре страны. Но уход в нирвану руководителя + замыкание ВСЕХ процессов на себя, даже технических (где их ждет перманентный тупик), порождает ситуацию, когда никто ничего не может сделать :) Причем не может сделать буквально на любых уровнях.
Например, смешно сказать. К нам в комнату по какой-то причине стала "нерегулярно" ходить уборщица. Ну кажется в чем проблема? Пинком ее под зад и вперед, другую позвать. Нельзя. Этот вопрос финансовый и замкнут на руководство, а там дальше он и остается. И в таком все духе, совершенно :)
Апофеоз - это предельное превышение нагрузок, когда складывается постоянная ситуация отсутствия запаса по мощности. Соответственно, нет никаких ни курсов, ни передачи опыта, ничего. Даже рост клиентской базы в 2 раза должен, по идее, вызвать в 2 раза рост обслуживающего персонала. И даже на таком уровне не происходит.

У меня еще есть вопрос по поводу приведенного комментария.
Вот ты говоришь, что пошел по пути переквалификации. Меня интересует момент переквалификации (на прошлой работе, в паузе между работами, методом шока на новой работе). Как проходило? Сколько времени заняло?
Второй вопрос. Во что переквалифицировался?

[identity profile] enternet.livejournal.com 2009-12-16 09:08 pm (UTC)(link)
Переквалификация шла так:
1) Самообразование во время старой работы - HTML/CSS/Ruby/JavaScript
2) В промежутке - ActionScript/LISP/XSLT. О!!! XSLT это божественная вещь! А CommonLISP на вкус странен. Его логотип хорошо это передает.
3) На новом месте шоковое погружение в C# + ASP + ASP.NET + немного Java. Кстати прошло легко. Языки реально классные, богатые платформы. Всё под них есть.

[identity profile] vp.livejournal.com 2009-12-16 09:20 pm (UTC)(link)
Спасибо!

[identity profile] palm-mute.livejournal.com 2009-12-17 08:52 am (UTC)(link)
>XSLT это божественная вещь
Хоть и оффтоп, но интересно: почему именно XSLT, а не равномощный ему XQuery?
Это же кошмар:
<xsl:for-each select="employee[salary&lt;1000]">

[identity profile] enternet.livejournal.com 2009-12-17 08:59 am (UTC)(link)
Потому что XQuery никто не поддерживает, а XSLT есть почти везде, даже в браузерах.

Кстати, у майкрософта dotNet-XSLT-процессор еще и работает в 30 раз быстрее самых быстрых конкурентов.

Синтаксис первоначально вызывает отторжение, это да. Но потом привыкаешь и понимаешь что он очень даже логичен, пользоваться можно.

[identity profile] palm-mute.livejournal.com 2009-12-17 10:47 am (UTC)(link)
Как это никто не поддерживает?
http://www.w3.org/XML/Query/#implementations

[identity profile] enternet.livejournal.com 2009-12-17 10:55 am (UTC)(link)
Этого мало. По сути в списке только крупные вендоры, это _очень_ плохой признак.

Собственно, скажу прямо - мне лично эта технология сейчас не интересна. XSLT прост и отлично покрывает мои потребности. Принципиально нового аналога XPath всё равно не изобрести, а к синтаксису XSLT быстро привыкаешь.

[identity profile] belpartizan.blogspot.com (from livejournal.com) 2009-12-21 01:46 pm (UTC)(link)
Не совсем так: saxon примерно так же быстр (если не быстрее) по сравнению с MS XSLT.

А так, XSLT хороший функциональный язык программирования.

[identity profile] enternet.livejournal.com 2009-12-21 01:53 pm (UTC)(link)
1) Нет, я неправильно сформулировал. Быстрее MS Compiled XSLT из dotNet 3.5 похоже нет ничего. разница в 30 раз для меня типовая.
В принципе для явы есть ещё супербыстрый Gregor, судя по дизайну он может тягаться с дотнетовскими компилировными шаблонами. Но он похоже заброшен, его сейчас даже купить нельзя.

2) Нет, XSLT не функциональный язык, функции в нем не являются объектами первого порядка, передать их никуда нельзя.XSLT - декларативный язык. Как и SQL например.

[identity profile] belpartizan.blogspot.com (from livejournal.com) 2009-12-21 03:56 pm (UTC)(link)
1) Тут вы не правы. Полтора года назад saxon обрабатывал большие XML файлы (мегабайт по 500) за минуты 3 (чтение/запись на диск). При этом немалая часть времени из 3 минут уходило на загрузку / сохранение. Saxon (в платной версии) тоже умеет компилировать (правда только xpath выражения), но это даст прирост всего раза в полтора.

2) да, чуть сбился с терминологии. Сбило что переменные в нём неизменяемые.