Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > EJB vs JSF


Автор: tux 4.10.2006, 14:24
Цитата(Sun @  4.10.2006,  19:20 Найти цитируемый пост)
парадигма ближе к обычному вэб-приложению на JSP

Я бы сказал, что ближе к Velocity/Webmacro, синтаксис языка похож.

Автор: y3u 4.10.2006, 14:45
Цитата(Sun @  4.10.2006,  14:20 Найти цитируемый пост)
С ними гемора больше, чем удобства.

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

Автор: Sun 4.10.2006, 15:11
Цитата(y3u @  4.10.2006,  11:45 Найти цитируемый пост)
попахивает холивором  smile когда делается подобное утверждение, обычно приводятся веские аргументы в пользу данного утверждения. Т.к. эту точку зрения могут не все разделять  smile  

Я просто по-дружески советую  smile  Если есть желание возиться с этой прогрессивной технологией - нет проблем. У меня только один аргумент - чем система проще - тем она лучше. EJB в данном случае, на мой взгляд, простоты не добавят.

Автор: chief39 4.10.2006, 17:03
Цитата(Sun @  4.10.2006,  15:11 Найти цитируемый пост)
Я просто по-дружески советую  smile  Если есть желание возиться с этой прогрессивной технологией - нет проблем. У меня только один аргумент - чем система проще - тем она лучше. EJB в данном случае, на мой взгляд, простоты не добавят. 

Тяжеловесная, но для определённых задач - самое то.
Это как сравнить самолёт и танк.

Конечно, возиться с EJB2.1 - это своего рода подвиг smile Но уже есть 3.0 .... 

Всё-таки вэб приложение - это вэб приложение. Изначально для интерактивного общения с юзером.
То есть можно самолёт забронировать и сделать летающий танк но... лучше не надо smile

еджиби надо пользовать там, для чего были задуманы. Есссно, вэб - тоже в своей нише.


Автор: y3u 4.10.2006, 22:04
Цитата(chief39 @  4.10.2006,  17:03 Найти цитируемый пост)
еджиби надо пользовать там, для чего были задуманы. Есссно, вэб - тоже в своей нише


чтобы не быть голословным, обратимся к http://java.sun.com/javaee/5/docs/tutorial/doc/Overview9.html#wp86355 smile Вообще, технология бинов, в том числе и энтерпрайз, по большому счету, нужна для разработки API транспортного уровня бизнеслогики. Использование бинов дает дополнтельный уровень абстракций, т.е. я рисую нужные, скажем, энтити бины, пишу логику работы между этими бинами, скажем, на сейшен бинах, пакую эту логику и все - я автоматом получаю: персистанс - раз, тразакции - два, CORBA - три, модульность - четыре, etc. etc. etc.. Я пишу юниттесты, которые будут тестить мой жарник и усе. Все, теперь я отдаю это джарник вебщикам, которые как их душе угодно делают к этой бизнеслогике обертку, хоть на вебе, хоть на стендэлоне, хоть вебсервисы прикручивают. Пофик. Красотисча smile В тьюториле, кстати, очень подробно в овервью расписано про Development Roles. Моя позиция - надо пользоваться тем, что дают контейнеры как можно в большей мере. Потом ведь будут появляться проблемы как в соседних топиках - как сделать кластер, да легко - на еджебях, которые изначально проектировались под распределенные приложения, даже переписывать ничего не придется. Перенастраивай контейнеры и усе. Проблемы коммуникации между различными приложениями, которые можно бы было попробовать решить посредством Resource Adapter Modules... вобсчем, что-то я увлекся, потводя итог всему напечатанному, выбор технологий сильно зависит от преследуемых целей. Серьезное приложение только на вебконтейнере не вытянешь, может вообще проще оставить часть кода на PHP и пустить жабу в тандеме с апачем, так народ тоже частенько делает... 

Автор: Sun 4.10.2006, 22:20
Цитата(y3u @  4.10.2006,  19:04 Найти цитируемый пост)
Использование бинов дает дополнтельный уровень абстракций, т.е. я рисую нужные, скажем, энтити бины, пишу логику работы между этими бинами, скажем, на сейшен бинах, пакую эту логику и все - я автоматом получаю: персистанс - раз, тразакции - два, CORBA - три, модульность - четыре, etc. etc. etc.. Я пишу юниттесты, которые будут тестить мой жарник и усе. Все, теперь я отдаю это джарник вебщикам, которые как их душе угодно делают к этой бизнеслогике обертку, хоть на вебе, хоть на стендэлоне, хоть вебсервисы прикручивают. Красотисча 

Это всё в теории так красиво. На деле достаточно глючная технология, которая с большим трудом поддаётся отладке и диагностике. Entity Beanы наверно самое неудачное изделие и многие от них отказались, заменив тем же Hibernate.

Автор: Stampede 4.10.2006, 22:32
Цитата(y3u @  4.10.2006,  13:04 Найти цитируемый пост)
Я пишу юниттесты, которые будут тестить мой жарник и усе


Скажите, а как вы тестите логику в компонентах? Каждый раз перезапускаете контейнер? Я не имею в виду полный прогон, а именно юниты. Вот написали небольшую функцию, которая чего-то там делает, причем вроде бы сугубо локально, а за ней тянется поезд зависимостей. Как проверить, что все правильно? Деплоите вживую? Перезхапускаете контейнер?

Просто любопытно.

Автор: y3u 4.10.2006, 22:46
Цитата(Stampede @  4.10.2006,  22:32 Найти цитируемый пост)
Скажите, а как вы тестите логику в компонентах? Каждый раз перезапускаете контейнер? Я не имею в виду полный прогон, а именно юниты. Вот написали небольшую функцию, которая чего-то там делает, причем вроде бы сугубо локально, а за ней тянется поезд зависимостей. Как проверить, что все правильно? Деплоите вживую? Перезхапускаете контейнер?

Просто любопытно. 


лично я в данный момент не делаю ни как smile Мы все еще сидим на старых еджебях и будем сидеть еще довольно долго. И все EJB уже давно протестированы, "старцы" вещали, что делали с помощью http://www.junitee.org/. Я просто описал ситуацию, которую хотел бы видеть в идеале smile с юнит тестами, действительно, что-то я по горячился, но можно найти како-нить удобный техпроцесс...

Автор: Stampede 4.10.2006, 23:16
Цитата(y3u @  4.10.2006,  13:46 Найти цитируемый пост)
Я просто описал ситуацию, которую хотел бы видеть в идеале smile с юнит тестами, действительно, что-то я по горячился


Очент приятно услышать честный ответ smile

Я ведь неспроста задал вопрос про юнит-тесты. Это одна из причин, по которым я в свое время отказался от идеи юзать EJB. И с большим облегчением отправил на свалку истории то, что уже успел к тому времени наваять. Позднее я нашел очень толковые рассуждения на эту тему у Рода Джонсона.в его J2EE Development Without EJB.

Не исключаю, что в EJB 3.0 ситуация малость улучшилась, но не представляю, как все-таки можно раскрутить цепочку зависимостей без (пере)запуска контейнера.

Автор: COVD 4.10.2006, 23:25
удалил

Автор: y3u 4.10.2006, 23:39
Цитата(Stampede @  4.10.2006,  23:16 Найти цитируемый пост)
Не исключаю, что в EJB 3.0 ситуация малость улучшилась


вобсчем что-то я заинтересовался этим вопросом smile пока нашел самое удачное решение http://www.oracle.com/technology/pub/articles/debu_testability_of_ejb.html... надеюсь будет время по исследовать эту тему и по щупать в деле...

Автор: chief39 5.10.2006, 13:12
Цитата(Sun @  4.10.2006,  22:20 Найти цитируемый пост)
Это всё в теории так красиво. На деле достаточно глючная технология, которая с большим трудом поддаётся отладке и диагностике. 

Хм... Не самая простая вещь... но мы используем и довольны. Как нельзя лучше подходит для задач в стиле, описанном y3u. Что бы делали с голым томкатом и джсп - даже не представлю себе...

Цитата(Sun @  4.10.2006,  22:20 Найти цитируемый пост)
Entity Beanы наверно самое неудачное изделие и многие от них отказались, заменив тем же Hibernate. 

Однозначно. Согласен на все 100%. Хотели на хибернейт перевести. Но сейчас порсто немного подождём и пересядем на EJB3.0.

Цитата(Stampede @  4.10.2006,  22:32 Найти цитируемый пост)
Скажите, а как вы тестите логику в компонентах? Каждый раз перезапускаете контейнер? Я не имею в виду полный прогон, а именно юниты. Вот написали небольшую функцию, которая чего-то там делает, причем вроде бы сугубо локально, а за ней тянется поезд зависимостей. Как проверить, что все правильно? Деплоите вживую? Перезхапускаете контейнер?

Просто любопытно. 


У нас очень мало(ничтожно мало) методов, которые поддаются джиюнит-тестированию без хвостов.
Те, которые есть, просто запускаются - и всё. зАчем контейнер стопорить-то???
Основная функциональность - завязана на сложныую бизнес-логику и базу.
То есть основные тесты - это те же юниты, которые прогоняют целые процессы. Для них уже нужен рестарт с переподготовкой датасета базы.
Всё отлично.

Упрощённо, полный цикл сборки:
Сборка, поготовка датасета(скл-скрипты и джава-лоадеры), деплой, 
тесты(все), андеплой, стоп сервера, опять чистый датасет, старт сервера, деплой - Всё чистенькое и готово!
То есть - подготовка, тесты, ре-подготовка

Всё под антом и круизконтролем. Очень удобно. (Если бы ещё грёбаный ЦВС не заглюкавил пару раз  smile )


ЗЫ: можно чуть подробнее о "хвостах", которые так сильно мешают жить? smile



Автор: Sun 5.10.2006, 15:14
Немного название темы неподходящее. Я лично не предлагал вместо EJB использовать JSF. Я предлагал для случая описанного sergejzr не использовать EJB, хотя можно и вообще разрабатывать распределенные  приложения без всяких EJB. Просто EJB требуют высокой квалификации разработчиков, чего как правило сильно не хватает во время разработки. Поэтому если кто-то не имеет хорошего экспириенса в их использовании, пускай даже не начинает проектирование новой системы с их использованием, потому что рискует превратить её в тихий ужас. Хотя если система "для дома, для семьи", то можно и потренироваться на кошках  smile 

Автор: chief39 6.10.2006, 13:25
Цитата(Sun @  5.10.2006,  15:14 Найти цитируемый пост)
потренироваться на кошках

Я бы попросил!!!  smile    smile 

Браузер и апач - это уже распределённая система - (Функцииональность распределена, работают в связке, на различных хостах, логически - единое целое.)
Другое дело - как распределена система.

Можно, конечно, обойтись вэб-сервисами...

Но большую, сложную как отдельное государство, систему лучше конструировать из того, что для этого предназначается.
Всё-таки Вэб эволюционировал из простого отображения хтмла с принудительным впихиванием через попу несвойственных ему функций.
Иногда вышло неплохо, иногда - так себе.
Я согласен, иногда проще и логичней маленькое деревце снести тесаком, но рубить, обливаясь потом, толстую сосну - это изврат. Лучше уж брать двуручную пилу.
Вот так... 

Автор: sandello 10.10.2006, 13:08
Цитата(Sun @  5.10.2006,  01:20 Найти цитируемый пост)
Entity Beanы наверно самое неудачное изделие и многие от них отказались, заменив тем же Hibernate. 

Посмотри, кто принимал участие в создании EJB3. Если я правильно помню - всем известный Hibernate. Кроме того, в JBoss  EJB3 Persistence на этом самом хибернате и сделано.
А вот в EJB2 использовать Entity Bean... Хотя сам не использовал :-)

Цитата(Stampede @  5.10.2006,  01:32 Найти цитируемый пост)
Скажите, а как вы тестите логику в компонентах? Каждый раз перезапускаете контейнер?

Мы для тестирования подняли тестовый сервер :-)
Можно придумать вариант, когда вся логика лежит не напрямую в классах бинов, а в отдельных классах. А бин только обеспечивает ресурсы (доступ к БД, конфигурирование бизнес-классов и т.д.). В этом случае для "первичного" тестирования бизнес логики можно создать свою обертку, выполняющую ту же роль, что и бины (доступ к ресурсам, ...). Для обкатки логики вполне подойдет.
В любом случае, для испытаний большого проекта необходимо создавать специальный комплекс программно-аппаратных средств. Наивно было бы считать, что что-то "большое и тяжелое" можно качественно проверить одним только JUnit'ом.

Цитата(Stampede @  5.10.2006,  02:16 Найти цитируемый пост)
но не представляю, как все-таки можно раскрутить цепочку зависимостей без (пере)запуска контейнера.

Не понял мысль, можешь пояснить?

Цитата(chief39 @  5.10.2006,  16:12 Найти цитируемый пост)
Но сейчас порсто немного подождём и пересядем на EJB3.0

Чего стоим, кого ждем? (с) не мой :-)

Автор: chief39 10.10.2006, 14:26
Цитата(sandello @  10.10.2006,  13:08 Найти цитируемый пост)
Чего стоим, кого ждем? (с) не мой :-) 

Есть много неотложных задач, от нашего желания не зависящих.
Плюс, чем позже версия АПП сервера с еджиби 3 - тем понадёжнее должна быть smile

Хотя хочется уже побыстрее.... Энтити - это, конечно, песня...  Будем торопиться smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)