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] oldmann.livejournal.com 2009-12-16 04:27 pm (UTC)(link)
ребе, при всем кровавом кошмаре корпоративной жабы, у нее есть главное достоинство - она есть под все мыслимые и немыслимые платформы.

[identity profile] eleon.livejournal.com 2009-12-16 04:27 pm (UTC)(link)
Может проще найти человека, который будет способен сперва научиться у тебя писать нормальный код, а потом обучить этому других?

[identity profile] dmzlj.livejournal.com 2009-12-16 04:41 pm (UTC)(link)
Йа думаю, надо сначала написать язык, а потом на нем колбасить миддлтьиры. Безумие --- это так увлекательно.

[identity profile] henu3detb.livejournal.com 2009-12-16 04:41 pm (UTC)(link)
А вы не используйте 83% готовых фреймворков. Возьмите этот, а остальное при острой нудже. Для middle tier-а без наворотов возможно, его одного и хватит.

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

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

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

[identity profile] enternet.livejournal.com 2009-12-16 05:51 pm (UTC)(link)
Когда несколько лет назад до меня дошло, что перспектива именно типа "сеньор-девелопер в ООО Говна и Торфа", я серьезно заявил руководству что не заинтересован в статус-кво и намерен свернуть у них карьеру. Надо заметить, что люди серьезно обеспокоились, махали кнутами и пряниками, с год пытались вручить других проектов или развести на доверие методом "завтра всё будет". С разной степенью успешности. Интересный опыт. Нужно будет как-нибудь обезличенно описать )

Сейчас встречаю иногда бывших коллег, основная тема - "ты вовремя скипнул", или "я и сам планирую". А про бывшее руководство такого рассказывают, что даже непонятно как они сами там сейчас живут )

А про ответственность перед фирмой ты забудь. Это фикция. Я тебе как менеджер говорю - учет рисков, это обязанность руководителя. Это проблемы руководства, не твои. Но меру знать нужно. Расставаться нужно клянясь в любви и улыбаясь. А то мир тесен.

Начать можно с оценки реальной доходности своих проектов (она не определяется количество труда). По итогам поймешь свою ценность для конторы.

[identity profile] aliaksei.livejournal.com 2009-12-16 06:03 pm (UTC)(link)
шансов на то, что хотя бы когда-нибудь я займусь только архитектурой и управлением проектами, вместо того, чтобы самостоятельно писать код, внедрять и обслуживать - не останется никаких
Почему же? Предлагаешь достойную оплата за сей труд, фильтруешь соискателей - и манагерствуй сколько душе угодно.

[identity profile] nivanych.livejournal.com 2009-12-16 06:15 pm (UTC)(link)
> т.к. это выносит проверку правильности
> с времени сборки на время деплоймента и запуска

Не посчитай, что я это говорю "свысока",
но таки знакомство с хаскелем очень даже хорошо повлияло ;-)
Прям читаю, и душа радуется :-)

[identity profile] altmind.livejournal.com 2009-12-16 07:40 pm (UTC)(link)
пиши на том, что потом сможет быть быстро и легко отрефакторено - все равно первая версия любой опердени будет переписана. лучше подумай об удобном расширяемом интерфейсе, чтобы не завязываться на язык, на котором реализуешь.

[identity profile] freiksenet.livejournal.com 2009-12-16 08:13 pm (UTC)(link)
Вам не кажется, что где-то есть работа, где вам не придётся сходить с ума? Не верю что вы находитесь в самой лучшей конторе Минска.

[identity profile] bopm.livejournal.com 2009-12-16 08:21 pm (UTC)(link)
Сейчас меня будут закидывать дерьмом, но я все равно замечу, что чтобы быстро и без вышеописанного ада как минимум прототипировать, а то и конечно разрабатывать middle тир достаточно RoR.

[identity profile] permea-kra.livejournal.com 2009-12-16 11:39 pm (UTC)(link)
ребе, c++ server pages вполне себе есть. Я думаю, раздавать с него xml и крутить в QT тамошним движком xquery, с высасыванием результатов в гуй не является проблемой. Это если неадекват.

[identity profile] alex73mi.livejournal.com 2009-12-17 04:37 am (UTC)(link)
В том то и прелесть, что фреймворки можно найти на любой вкус.

Ребе, на сегодняшний день в J2EE главное - не использовать некоторые вещи, составляющие основу J2EE ;) Например, Entity Beans. Потому как доступ к базе делается гораздо лучше на других фреймворках(iBatis, или Hibernate, но Hibernate гораздо хуже).

Если нужно именно middle tier - чтобы поднять вебсервис подойдёт вполне Tomcat. Хочется JMS и прочих сложностей - Glasfish.

И не юзайте spring с его извращённой конфигурацией.
(deleted comment) (Show 21 comments)

[identity profile] black-angel-by.livejournal.com 2009-12-17 10:26 am (UTC)(link)
Ребе, не знаю, может не совсем по теме, но могу отсыпать разных книжек по Жаббе, вдруг чего полезного попадется. Рекомендовтаь ничего не могу - просто как то скачал на случай "авось пригодиться" На венике бардак пока, так что могут дублироваться. Соре за длинный и возожмно бессмысленный пост.

Java and SOAP (O`Reilly).pdf
Java Persistence For Relational Databases.chm
Java в примерах. Справочник.pdf
Секреты программирования для Internet на Java.pdf
JavaServerPages - Д.М.Гери/
J.Flanagan - Java в примерах.pdf
Вартан Пирумян - Платформа Программирования J2ME.djvu
Горнаков С.Г. - Программирование мобильных телефонов на J2ME.djv
Документы Sun/
Дэвид Флэнаган Java в примерах - справочник.pdf
Ильдар Хабибулин - Разработка Web-служб средствами Java.pdf
К.Арнольд, Д.Гослинг - Язык программирования Java.pdf
Картузов А.В. - Программирование на Java.chm
П.Ноутон, Г.Шилдт - Java2. Наиболее полное руководство.pdf
Предисловие Sun/
Программирование на JAVA (бр. Фроловы).chm
Программирование на языке JAVA.chm
Прогр на JAVA Лекции МФТИ/
Руководство по JDBC v.1/
Руководство программиста Enterprise JavaBean v4.0. Inprise Corporation. 1999.pdf
Самоучитель по Java.chm
Секреты программирования для Internet на Java.pdf
Статьи/
Х.М. Дейтел, П.Дж. Дейтел, С.И. Сантри - Технологии программирования на Java. Том 1. Графика, Jav.djv
Х.М. Дейтел, П.Дж. Дейтел, С.И. Сантри - Технологии программирования на Java. Том 2. Распределенн.djv
Х.М. Дейтел, П.Дж. Дейтел, С.И. Сантри - Технологии программирования на Java. Том 3. Корпоративны.djv

Java SOA Cookbook (2009).pdf
Java Cookbook Solutions and Examples for Java Developers.pdf
Java Web Services_ Up and Running (2009).pdf
java_script.djvu
JavaScript.pdf

на энглише

Addison.Wesley,.Hibernate.A.J2EE.Developers.Guide.(2004).LiB.chm
AddisonWesley - J2EE Connector Architecture and EAI.pdf
Addison Wesley - J2EE Connector Architecture And Enterprise Application Integration.pdf
Addison Wesley - JavaT Message Service API Tutorial and Reference Messaging for the J2EE Platform.pdf
Agile_Java_Development_with_Spring,_Hibernate,_and_Eclipse_(Sams-2006).chm
Ajax - Jakarta Struts Cookbook (2005).pdf
Ajax - Struts In Action - Building web applications with the leading Java framework.pdf
Apress.Enterprise.JavaBeans.2.1.eBook.LiB.chm
Apress.Java.Collections. John Zukowski. 2001.pdf
Apress.Java.Persistence.for.Relational.Databases.eBook-LiB.chm
Apress.Pro.Jakarta.Struts.Second.Edition.eBook-LiB.chm
Apress.Wireless.Java.Developing.with.J2ME.Second.Edition.eBook-LiB.chm
A.Trottier - Java2 Little black book.pdf
BaseBeans - Struts Fast Track J2EE JSP Framework, draft - 2002.pdf
Comparing Web Frameworks; Struts, Spring Mvc, Webwork, Tapestry & Jsf.pdf
Core JSTL - Mastering the JSP Standard Tag Library.pdf
developerworks - integrating struts, tiles, and javaserver faces.pdf
eBook.OReilly.Hibernate.A.Developers.Notebook.chm
eBook.OReilly.Hibernate.A.Developers.Notebook.pdf
Exploring Java by Patrick Niemeyer & Joshua Peck.chm
FileTree.txt
Hungry Minds - Java 2 Bible Enterprise Edition.pdf
Hungry Minds - Java Data Access - JDBC, JNDI, and JAXP.pdf
Hurbain - Jakarta Struts, A beginner's tutorial by Isabelle Hurbain - 2002.pdf
Java 2 Network Security. 1999.pdf
Java_AWT_Reference. John Zukowski. 1997.chm
Java Fundamental Classes Reference by Mark Grand,Jonathan Knudsen.1997.chm
Java In A Nutshell by David Flanagan. 1997.chm
Java Open Source Programming with Xdoclet, JUnit, WebWork, Hibernate.pdf
Java Struts Tutorial.pdf
Java Tools For Extreme Programming- Mastering Open Source Tools Including Ant, Junit, And Cactus.pdf
JUnit Quick Reference.pdf

блин, ограничение на размер камента

[identity profile] guamoka.livejournal.com 2009-12-17 03:19 pm (UTC)(link)
Нашел AppFuse. Вроде все описано понятно, есть QuickStart, написано откуда качать зависимости, итд, итп.

Ребе, имхо, AppFuse на первый взгляд- тяжкий кошмар:) Т.е. вещь на самом деле исчерпывающая и вроде толковая, но когда в тестовом приложении оно при помощи своих плагинов нагенерила мне целое веб-приложение, и я не знал, откуда оно что взяло, я как-то поостыл:-)

Вообще, под экслипс (не обращал внимание, как с другими средами) идет Maven плугин, который умеет подсасывать мавеновские archtype и создавать автоматом темплейтные проекты, типа jee: spring + hibernate + spring mvc и т.п.
скачиваете eclipse jee, плугин мавен, потом новый проект мавен, проект арчтайп.

Вообще, MasteringEJB4ed.pdf (EJB30, JEE5), Sun JEE5 Tutorial, посмотри помощь и туториалы на сайте Weblogic- имхо, достаточно толково и исчерпывающе (правда, слегда Вебложик специфик местами), конечно, Spring в качестве мощной либы писать jee и не только приложения на POJO (plain java objects), Hibernate как ORM.

И еще. Задайте себе вопрос, а вам надо транзакционность (в т.ч. распределенная), многопоточность, масштабируемость, лоадбалансинг, отказоустойчивость, обеспечиваемые жирным сервером jee приложения? Что вам от сервера нужно: http, RMI-IIO (EJB), Webservices, (COBRA)? может, вам просто жава-веб нужны, а jee навиг?

[identity profile] ikato.com (from livejournal.com) 2009-12-17 09:23 pm (UTC)(link)
> Ссылки "Download" на сайте нету.

Таки есть:

http://appfuse.org/display/APF/Source+Repository
http://github.com/myabc/appfuse

[identity profile] zhengxi.livejournal.com 2009-12-20 12:57 pm (UTC)(link)
> Вот, к примеру: я считаю, что любой, кто сталкивался с статической типизацией и выводом типов, резко перестанет делать проекты "мегапереконфигурируемыми" с помощью сотен xml-конфигов, т.к. это выносит проверку правильности с времени сборки на время деплоймента и запуска. Ошибся в xml-файле в одной букве и вешайся, читай 100-строчные стеки вызовов и это еще хорошо, если у тебя доступ к продакшен-серверу есть.

Кстати, а разве статическая типизация от этого спасёт ?
Например, у + - и * одникаковый тип (a -> a -> a), ошибся в одной букве (- вместо +, < вместо >, и так далее) - и проверка правильности выносится с времени сборки на время деплоймента и запуска.

[identity profile] theiced.livejournal.com 2009-12-21 06:26 am (UTC)(link)
Хм. А почему я проебал этот срач?

[identity profile] zamotivator.livejournal.com 2009-12-21 07:58 am (UTC)(link)
буду банален - python + django?

JustPavlov

(Anonymous) 2011-03-04 11:46 pm (UTC)(link)
Russia

Девушки :)