Кто-то тупой, или я или гвозди
Dec. 16th, 2009 03:42 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сижу изучаю различные варианты реализации 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-строчные стеки вызовов и это еще хорошо, если у тебя доступ к продакшен-серверу есть.
Начал искать что-нибудь вроде "J2EE для начинающих с пошаговыми инструкциями". Нашел AppFuse. Вроде все описано понятно, есть QuickStart, написано откуда качать зависимости, итд, итп. Но таки вы будете смеятся - но я не могу найти, где качать исходники этого дела. Ссылки "Download" на сайте нету.
Я, конечно, счас попытаюсь произвести описанные там вуду-ритуалы, может мавен тот все что нужно сам скачает, но то, что начинать приходится с вуду-действий, как-то печалит.
Вообще говоря, у меня уже есть почти полностью готовая основа для этого миддл-тиера, на которой я бы проект сделал очень быстро: Firebird+Delphi+ASP.NET RESTful веб-сервис. Но проблема в том, что это означает полную и окончательную привязку проектов к виндам, отказ от любых потенциальных работ с юниксами в будущем и сгнаивание мозга до состояния "сеньор-фокспро-девелопер в ВЦ НИИ Говна и Торфа, 50 лет, 30 лет опыта рисования формочек в дизайнере".
Кроме того, если дать объявление "требуется разработчик на дельфи" - приходят такие долбаные мышевозы с паттернами "magic button" что рыдать хочется, соответственно шансов на то, что хотя бы когда-нибудь я займусь только архитектурой и управлением проектами, вместо того, чтобы самостоятельно писать код, внедрять и обслуживать - не останется никаких.
PS: Есть кстати, еще одна, еще более неадекватная альтернатива: сойти с ума и ударится в нетривиальщину вроде ерланга и хаскеля, начать писать самодельный миддл-тиер на чистом С и изобретать прочие велосипеды. То, что это гарантированно будет легче для нервной системы, чем J2EE и ASP.NET, я уверен. Там комьюнити меньше и не будет такого, что половина интернетов забита разнообразными фреймворками, каждый из которых настолько наворочен, что позволяет не писать код, а всего лишь парой сотен xml-конфигов сделать любое приложение.
Я вспоминаю 90-е годы, когда никаких интернетов не было, проекты были более мелкие и выбора "на чем писать" особо не было, можно было велосипеды изобретать хоть годами.
В этом, кстати, и проблема с J2EE - я уверен, что 83% авторов готовых фреймворков думают совершенно не так как я, то бишь неправильно, хаскель не изучали, и вообще делали эти фреймворки по наитию левой задней пятки.
Вот, к примеру: я считаю, что любой, кто сталкивался с статической типизацией и выводом типов, резко перестанет делать проекты "мегапереконфигурируемыми" с помощью сотен xml-конфигов, т.к. это выносит проверку правильности с времени сборки на время деплоймента и запуска. Ошибся в xml-файле в одной букве и вешайся, читай 100-строчные стеки вызовов и это еще хорошо, если у тебя доступ к продакшен-серверу есть.
no subject
Date: 2009-12-16 08:12 pm (UTC)Причина ухода комплексная:
1) Осознание стагнации и смерти любимого инструмента. Delphi RIP.
2) Следом осознание, что как разработчик, я никому на стороне не нужен уже. А новых технологий попробовать негде. Самообразование рулит, но без практического коммерческого применения немногово стоит.
3) Осознание того, что как проектировщик я имею все шансы зациклиться на достаточно простых мелких оперденях, а крупных проектов не предвиделось.
4) Осознание того, что как менеджер я обречен остаться руководителем небольшого отдела. Иерархия предприятия плоская - выше остались только учредители. Расти некуда. В учредители не берут.
5) Осознание того, что в зарплате я больше не получу. Могу, но костьми лечь буквально надо даже за тысячу евро. Вроде как и невысок прыжок от штуки баксов к штуке евро, но заколебался брать, за каждые 50 баксов рубиться приходилось.
6) Осознание того что мне не у кого больше учиться. Догнал тех, кого уважал, а тех кого не уважал, натурально научился насковозь видеть.
7) Осознание того что как предприниматель я тоже кое-чего могу попробовать.
8) Достало всё. Устал от всего. Уходил просто в никуда. Первое время ничего не делал, так, стул протирал.
Походил по минским фирмам. Разным. Понял, что меня везде ставят в ситуацию "вы ничего не знаете". И вполне аргументированно везде тебе объясняют, что как менеджер ты гавно, мол процессы у вас были неправильные, а правильных ты не знаешь, как казработчик ты гавно, не опыт нужен а знание шаблонов, а названия шаблонов ты знаешь плохо, проектировщики нигде не нужны - везде места заняты и т.д. Причин миллион, были и объективные, да. Причем когда я озвучивал желаемую планку зарплаты, а я накидывал баксов 150 к тому что имел ранее, натыкался на когнитивный диссонанс. Один раз дошло даже до оскорблений (завуалированных слегка) от потенциального начальника. После этого до меня дошло, как в Минске на самом деле всё хуёво.
В общем я полностью сменил весь инструментарий, все технологии и место. Европа/Москва рулят. Впрочем Минск на удаленке тоже неплох.
Резюме по себе и по знакомым:
1) В Минске искать нечего. шансы бывают, но очень редко. Раз в год.
2) В Минске все связаны, жить нужно в ладу со всеми и не гадить. Хотя этот принцип по жизни везде поможет, я считаю.
3) Самообразование рулит.
4) За рубежом жизнь есть. И хорошая. А язык учится и на месте.
5) Сам не сделаешь - за тебя никто этого не сделает. Даже если ты лучший друг у руководства, пьешь с ним пиво и ходишь в сауну, оно тебе зарплату не прибавит. Иди и скажи чего ты хочешь. На слова "будет завтра" смейся в лицо. Никто ценного сотрудника не уволит, нужно это понимать. Ничего лишнего не подписывать несмотря на страшные угрозы, наоборот не лишне требовать расширения условий контракта. Можно даже пунктами, не имеющими юридической силы. Это отрезвляет людей.
6) Кредит на работе не брать! За сослуживцев в кредитах не поручаться!
7) Профессиональный круг общения расширять любыми способами!
8) Оказывается у руководства столько способов удержать нужного сотрудника, атас. Способов миллион. Но все называются кратко - "развод". Даже если ты не знаешь в чем он - он есть.
9) Времени всегда мало. Обидно его тратить бесцельно или бесполезно.
Может что и забыл. Спрашивай.
no subject
Date: 2009-12-16 08:19 pm (UTC)no subject
Date: 2009-12-16 08:57 pm (UTC)У нас очень близкая ситуация, за несколькими но:
Шеф привык, что контора "работает сама по себе", без его участия, чисто на том что ведущие специалисты болеют за дело и т.п. Но время идет, ситуация меняется. Некоторые ведущие специалисты подвинулись на голову и практически открытым текстом чуть ли не посылают шефа, понимая, что им ничего он не сделает. Другие - саботируют работу. Короче, клуб по интересам. Это на фоне того, что контора архиживая, все живое, проекты денежные, контора сидит на инфраструктуре страны. Но уход в нирвану руководителя + замыкание ВСЕХ процессов на себя, даже технических (где их ждет перманентный тупик), порождает ситуацию, когда никто ничего не может сделать :) Причем не может сделать буквально на любых уровнях.
Например, смешно сказать. К нам в комнату по какой-то причине стала "нерегулярно" ходить уборщица. Ну кажется в чем проблема? Пинком ее под зад и вперед, другую позвать. Нельзя. Этот вопрос финансовый и замкнут на руководство, а там дальше он и остается. И в таком все духе, совершенно :)
Апофеоз - это предельное превышение нагрузок, когда складывается постоянная ситуация отсутствия запаса по мощности. Соответственно, нет никаких ни курсов, ни передачи опыта, ничего. Даже рост клиентской базы в 2 раза должен, по идее, вызвать в 2 раза рост обслуживающего персонала. И даже на таком уровне не происходит.
У меня еще есть вопрос по поводу приведенного комментария.
Вот ты говоришь, что пошел по пути переквалификации. Меня интересует момент переквалификации (на прошлой работе, в паузе между работами, методом шока на новой работе). Как проходило? Сколько времени заняло?
Второй вопрос. Во что переквалифицировался?
no subject
Date: 2009-12-16 09:08 pm (UTC)1) Самообразование во время старой работы - HTML/CSS/Ruby/JavaScript
2) В промежутке - ActionScript/LISP/XSLT. О!!! XSLT это божественная вещь! А CommonLISP на вкус странен. Его логотип хорошо это передает.
3) На новом месте шоковое погружение в C# + ASP + ASP.NET + немного Java. Кстати прошло легко. Языки реально классные, богатые платформы. Всё под них есть.
no subject
Date: 2009-12-16 09:20 pm (UTC)no subject
Date: 2009-12-17 08:52 am (UTC)Хоть и оффтоп, но интересно: почему именно XSLT, а не равномощный ему XQuery?
Это же кошмар:
no subject
Date: 2009-12-17 08:59 am (UTC)Кстати, у майкрософта dotNet-XSLT-процессор еще и работает в 30 раз быстрее самых быстрых конкурентов.
Синтаксис первоначально вызывает отторжение, это да. Но потом привыкаешь и понимаешь что он очень даже логичен, пользоваться можно.
no subject
Date: 2009-12-17 10:47 am (UTC)http://www.w3.org/XML/Query/#implementations
no subject
Date: 2009-12-17 10:55 am (UTC)Собственно, скажу прямо - мне лично эта технология сейчас не интересна. XSLT прост и отлично покрывает мои потребности. Принципиально нового аналога XPath всё равно не изобрести, а к синтаксису XSLT быстро привыкаешь.
no subject
Date: 2009-12-21 01:46 pm (UTC)А так, XSLT хороший функциональный язык программирования.
no subject
Date: 2009-12-21 01:53 pm (UTC)В принципе для явы есть ещё супербыстрый Gregor, судя по дизайну он может тягаться с дотнетовскими компилировными шаблонами. Но он похоже заброшен, его сейчас даже купить нельзя.
2) Нет, XSLT не функциональный язык, функции в нем не являются объектами первого порядка, передать их никуда нельзя.XSLT - декларативный язык. Как и SQL например.
no subject
Date: 2009-12-21 03:56 pm (UTC)2) да, чуть сбился с терминологии. Сбило что переменные в нём неизменяемые.