Intereting Posts
Как загрузить несколько файлов в selenium? @WebServlet аннотация web.xml приветственный файл Список строковых массивов, переписывающих себя Безопасные / Шифрованные файлы log4j Как проверить, является ли значение целым числом в java? org.hibernate.LazyInitializationException: не удалось инициализировать прокси – нет сеанса? Код требует try / catch в разделе объявления JSP, но не в секции сценария? добавить значок и разделитель в контекстное меню контекстного меню Windows XP JavaFx: Что делать, если я хочу сделать что-то после инициализации () перед представлением сцены, как я могу это достичь? MVC с javaFX Есть ли средство макросов для Java или C #? Как действительно закрыть JDialog с Java-кодом? Измените текущую карту в макете карты со слайдом в качелях Должен ли я использовать «long» вместо «int» на 64-битных языках с фиксированным размером шрифта (например, Java, C #), extends java.util.logging.Logger не работает

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

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

Однако мой опыт работы с веб-приложениями связан с JSP, сервлетами и JSTL … Я знаю идеи новых технологий, таких как Hibernate / Spring, но никогда не использовал их. Итак, мы написали собственные DAO, обработали AJAX, написав специальные мини-JSP-страницы, которые генерировали страницы XML / JSON и т. Д.

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

Я помню одну из ранних статей Джоэла (я перефразирую, так как не могу ее найти)

«Независимо от того, что круто, всегда используйте технологии, которые лучший разработчик (или команда разработчиков?) знает»,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Известны не все предостережения о новых, тогда как более старые – гораздо больше.

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

я лично определенно рекомендую посмотреть на весну, я нашел, что это спасло мне бесчисленные часы. Спящий режим также полезен, если вам нужен слой ORM (и весна имеет приятную интеграцию с спящим режимом). они, конечно, не являются «единственным» или даже «правильным» способом делать что-то (это довольно субъективно), но они оба спасли мне время и силы, особенно весну.

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

Обучение, которое займет время, и вам нужно иметь это в своих оценках. Кроме того, ваши оценки, скорее всего, будут слишком низкими …