среда, 4 июля 2012 г.

Мысли о фреймворках java

Выдалось время подумать о том, как можно улучшить написание богатых приложений, работающих в браузере. Сразу приходит в голову множество разных фреймворков:
  • jsf/myfaces + facelets
  • struts
  • jsp+servlet+jstl, возможно tiles
  • gwt
  • apache click
  • apache wicket
  • spring mvc
От такого количества библиотек голова идёт кругом.
Первое с чего начинают разработчики это jsp + sertvlet + jstl. Это сравни ассемблеру. Идея хорошая. Реализация простая и надёжная. Однако богатые приложения на такой связке быстро не создашь.

Struts в этом плане лучше. Есть поддержка валидации, описание правил перехода по страницам. Богатые приложения на такой связке быстро не создашь.

JSF. Пожалуй, единственным плюсом данного каркаса является то, что он входит в J2EE с версии 5. Эта библиотека максимум для чего подходит - быстрое прототипирование приложений. Кроме того, если разработчику дали вёрстку и сказали использовать её в JSF приложении, то это будет геморрой. А если потом эту jsf страничку понадобится модифицировать верстальщику, то верстальщик в этих jsf компонентах ничего не поймёт.
Существует большое количество jsf библиотек. Каждая со своими глюками и компонентами. Поэтому, кроме головной боли, эта библиотека в продуктивных системах ничего более не принесёт.

Gwt. Приложения, которые создаются на этой библиотеке поистине богаты.

Apache click. Утверждается, что это отличная библиотека для богатых приложений, не занимающихся работой с хранением состояния.

Apache wicket. Это библиотека ориентирована на создание богатых приложений, которые часто и много имеют дело с хранением состояния приложения. Как утверждается на сайте библиотеки, в ней решена проблема кнопки Back в браузерах. Пожалуй, стоит уделить немного внимания данной библиотеке.

Spring mvc. Эта библиотека сделана разработчиками spring. Сам я дела с ней не имел и отзывов никаких не слышал. Поэтому упомянул её здесь для галочки.

3 комментария:

  1. Было бы интересно узнать Ваше мнение о фреймворке HybridJava.

    ОтветитьУдалить
  2. Честно говоря, про неё не слышал. Поэтому сказать про неё ничего не могу.
    На мой взгляд, я описал наиболее популярные решения, на которых делают продуктивные системы. Это не полный перечень, а лишь те библиотеки, с которыми я сталкивался лично в работе или же читал о них.
    Выбор того или иного фреймворка задача непростая, и здесь надо исходить из исходных условий проекта.

    ОтветитьУдалить
  3. Я и не думал что Вы слышали. Почитайте сайт - там всего страниц 15. Будет интересно и многое поймёте. А за деньги можно и на чём угодно программировать - чем толще книжки тем больше зарплата.

    ОтветитьУдалить