Выбрать 'лучше' или более знакомые технологии для нового проекта?

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

Однако мой опыт, делающий веб-приложения, включил JSP, Сервлеты и JSTL... Я знаю, что идеям позади более новых технологий нравится, в спящем режиме/Spring, но никогда не использовали их. Таким образом, мы записали наши собственные ДАО, обработанный Ajax путем записи специальных mini-JSP страниц, которые генерировали страницы XML/JSON и т.д.

Я не чрезвычайно в идею, что Spring/Быть в спящем режиме является 'единственным' или 'правильным' способом сделать любой веб-проект Java, но они широко используются. С другой стороны, не только был бы, пытаясь узнать, что они увеличивают время начального развития, но я использовал бы свое приобретение знаний попыток создать производственную систему.

Я помню, что в одной из ранних статей Joel было сказано (я буду перефразировать, так как я не могу найти его),

"независимо что в моде всегда используйте технологии что ведущий разработчик (или команда разработчиков?) знает лучше всего"

Я задался вопросом, какие люди думали об этом?

PS: это должно быть CW?

15
задан Anonymoose 25 May 2010 в 09:10
поделиться

8 ответов

Остерегайтесь соблазна новых крутых фреймворков! Сейчас я работаю над крошечным веб-приложением, в котором есть только логин, несколько в основном статических страниц и несколько форм для запроса информации по электронной почте. Это заняло бы у меня около двух дней, чтобы сделать традиционный Servlet/JSP в стиле MVC. Вместо этого, поскольку в расписании было свободное время, я решил использовать этот проект, чтобы быстрее освоить Spring, Spring MVC и Spring WebFlow. Вполне возможно, что я просто тупой, но мне потребовалось несколько недель, чтобы понять, как правильно все делать, я до сих пор не уверен, что все делаю правильно, и приложение все еще не готово. К счастью, благодаря простоям мне не грозит срыв общего графика проекта, но я все время спрашиваю себя, не придется ли мне все бросить и начать сначала.

Однако я усвоил урок: в следующий раз я не буду проталкивать новый фреймворк, если только он не используется в производственных проектах. Тем не менее, я рад, что теперь понимаю Spring (или, по крайней мере, думаю, что понимаю) и в следующий раз без колебаний буду использовать его снова.

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

1
ответ дан 1 December 2019 в 04:52
поделиться

Не пробуйте все сразу - беритесь за одну новую технологию за раз.

2
ответ дан 1 December 2019 в 04:52
поделиться

Я работаю консультантом и видел множество проектов, в которых разработчики начинали с сервлетов + JSP, потому что это то, что они знали, и с этим довольно просто начать. Однако это дает команде возможность / оправдание для написания собственной платформы , что более увлекательно, чем использование чужой и простое написание приложения .

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

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

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

6
ответ дан 1 December 2019 в 04:52
поделиться

Это зависит от того, чего хочет заказчик (в мире консалтинга). Вы должны изучать новые технологии. Хочет ли покупатель за это платить?

Не все недостатки новых известны, в то время как старые доказаны гораздо больше.

Конечно, если бы все так думали, в наши дни мы бы все застряли на VB. Вы должны найти правильный баланс и многому научиться сами, чтобы получить объективное представление о доступных технологиях, их достоинствах и недостатках.

0
ответ дан 1 December 2019 в 04:52
поделиться

Я лично определенно рекомендую обратить внимание на spring, я обнаружил, что он сэкономил мне бесчисленное количество часов. hibernate также полезен, если вам нужен уровень ORM (и у spring есть хорошие интеграции с hibernate). они, конечно, не "единственный" или даже "правильный" способ делать вещи (это довольно субъективно), но они оба сэкономили мне время и усилия, особенно spring.

0
ответ дан 1 December 2019 в 04:52
поделиться

Я могу точно сказать, что Spring стоит рассмотреть. Она дает вам столько, сколько вы можете взять, но не беспокоит вас тем, что вам не нужно.

Например, в самом начале вам, вероятно, нужна только инъекция зависимостей. Затем вам понадобится помощь по взаимодействию с базой данных и управлению транзакциями. Затем вы решите применить паттерн MVC к вашему веб-приложению. После этого, возможно, вы поймете, что компоненты вашей системы должны посылать друг другу JMS. И так далее, и так далее.

Для всех этих случаев у Spring есть собственное простое, интуитивно понятное, легкое решение.

1
ответ дан 1 December 2019 в 04:52
поделиться

Есть одна серьезная ловушка с любой неизвестной технологией. Вы не знаете, где находятся драконы, и не умеете тереть новую технологию «волосами».

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

0
ответ дан 1 December 2019 в 04:52
поделиться

При запуске нового проекта ограничьте количество используемых незнакомых технологий / фреймворков. Каждый фреймворк требует времени для изучения, и у каждого фреймворка есть проблемы, особенно если он реализован неправильно.

Если вы можете, я бы рекомендовал вам обратить внимание на Play framework. Это веб-фреймворк для Java, который фокусируется на производительности разработчика. Вы можете использовать Spring / Hibernate, если хотите, но вы не связаны этим. Он очень прост в освоении, и вы сможете получить хорошее представление в течение одного дня игры с ним, если это то, что вы ищете.

1
ответ дан 1 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: