Действительно ли веб-фреймворки Java действительно стоят хлопот? - PullRequest
10 голосов
/ 17 апреля 2009

Я относительно новичок в программировании на Java (около 2 лет), но не в веб-разработке. Я начал с HTML и ASP (до .NET), а недавно начал возиться с J2EE. Я чувствую, что хорошо разбираюсь в JSP / Servlets (я считаю, что они похожи на ASP) и недавно начал работать с JSF и Facelets. Хотя я понимаю, почему людям нравится JSF, я нахожу это огромным бременем, и это на самом деле замедляет время моей разработки. Я предполагаю, что это связано с кривой обучения, но я часто думаю, что я бы закончил со страницей / заданием, если бы я просто использовал JSP / Servlets.

Это часто встречается у тех из вас, кто нашел время, чтобы изучить основы? Вы когда-нибудь вкладывали время в изучение фреймворка, и, как только вы овладели им, просто решили вернуться к методу, который не был таким сложным, но вы чувствовали себя комфортно с ним?

Я также задаюсь вопросом, правильно ли я выбрал рамки. Я действительно надеялся найти что-то, что не мешало бы добавить возможности AJAX.

Ответы [ 7 ]

12 голосов
/ 17 апреля 2009

JSF может быть сложно начать, и его сложнее освоить, чем многие веб-фреймворки Java. Возможно, вам будет проще использовать JSF с Seam, что значительно упрощает работу с JSF и заменяет JSP на Facelets, что является большим улучшением.

Кроме того, вы можете попробовать SpringMVC, который многие люди находят более легким в использовании.

5 голосов
/ 17 апреля 2009

Я использую лицевые маски чуть больше года. Одним из основных преимуществ, которые я вижу в веб-инфраструктурах Java, является то, что он помогает поддерживать чистоту кода и способствует его повторному использованию. Например, в Facelets вы не получаете никаких скриплетов на своих страницах, как вы делаете в JSP. Я видел ASP-файлы в производстве, длина которых превышает 3000 строк. В ASP или JSP нет ничего плохого по сути, но с его помощью довольно легко объединить некоторую бизнес-логику на странице. Без вреда, верно? Пока кто-то другой не должен поддерживать это.

Большинство фреймворков пытаются «помочь» вам придерживаться более строгого разделения MVC или любой другой модели, которую они предпочитают, что, в свою очередь, приводит к более чистым шаблонам (jsp, facelets и т. Д.), А также к бизнес-и доменному коду, который автоматически тестируется на единицу. Использование многих платформ может занять немного больше времени, но сэкономит вам много раз, когда дело доходит до обслуживания и рефакторинга.

1 голос
/ 15 января 2010

я второй SpringMVC. Это очень легко понять, и код очень семантический, если вы используете аннотации . Как и эти рекламные ролики Budweiser ... Сервлеты слишком легкие ... Struts слишком тяжелые.

Я бы хотел, чтобы у Java были Леса. Это можно сделать с Grails, но это еще один фреймворк для встраивания в фреймворк.

1 голос
/ 17 апреля 2009

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

Я обнаружил, что JSF и Facelets определенно стоят хлопот, если вы можете пережить кривую обучения. Это довольно круто, но когда вы понимаете это, с ним очень легко работать. Они значительно облегчают работу с объектами области сеансов и приложений, а не только с использованием необработанных JSP и сервлетов, и я обнаружил, что могу писать более чистую Java, когда мне не нужно думать о сети в бизнес-логике. В общем, я считаю, что фреймворки помогают мне систематизировать свои мысли (и, соответственно, мой код) в последовательном и простом для понимания виде.

Facelets, в частности, мой любимый движок веб-шаблонов. Мне нравится тот факт, что мои страницы действительные XML, и что у меня нет скриплетов повсюду. Это делает код намного чище и легче следовать , если вы знакомы с фреймворком. Опять эта кривая обучения.

Кстати, добавить AJAX в Facelets легко, если вы используете что-то вроде RichFaces или IceFaces. Они имеют встроенные компоненты AJAX, которые вы можете легко добавить в свое приложение.

Тем не менее, это не лучший вариант для всех проектов, YMMV и так далее. В конце концов, использование любой основы - это суждение. Если это не поможет вам решить вашу проблему, то это того не стоит. Не боритесь со своими инструментами, используйте их правильно. Если инструмент на вашем пути, используйте другой инструмент. JSF и facelets - действительно не очень хороший выбор для очень маленького приложения. Они действительно не вступают в свои права, пока у вас не будет достаточно сложной модели предметной области и сложной бизнес-логики. По сути, вам нужно, чтобы проект был достаточно сложным, чтобы преодолеть объем стандартного кода, который необходимо написать для начала работы.

1 голос
/ 17 апреля 2009

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

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

Мои любимые бесполезные фреймворки - это те, которые требуют большого количества конфигурации и неуклюжего стандартного кода для выполнения основных задач, таких как отправка нескольких байтов в сокет или вставка некоторых параметров в подготовленный оператор и запуск его в базу данных. Еще один из моих фаворитов - целый набор «технологий XML», особенно «подключаемых» или «настраиваемых». (Почему мне нужна «подключаемая структура парсера», а не только один парсер, который всегда работает ...?) Назовите меня Виктором Мелдрю, но удивительно, как люди могут превратить 10-минутную проблему с регулярными выражениями в двухдневную проблема "сделай сам, сделай это" с X-in-the-title-do-it.

Теперь, несмотря на это, есть люди, которые абсолютно процветают на Spring, Hibernate, JSF, MVCJammer, Joomajamaventilate, вещах с 'X' в них и т. Д. И т. Д. Так что для некоторых людей в некоторых ситуациях очевидно, что они чудо и Я просто пропускаю жизнь.

Возможно, это зависит от того, имеете ли вы или ваша организация в основном опыт "конфигурации" и "объединения вещей" или "программирования"? Я полагаю, у меня есть больше последних.

1 голос
/ 17 апреля 2009

Я думаю, что простой ответ - как вы протестируете его и убедитесь, что он работает, когда вносите изменения?

Здесь простые решения ломаются, и вы попадаете в адское обслуживание. К сожалению: (

0 голосов
/ 17 апреля 2009

SpringMVC стоит хлопот. J2EE нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...