Имеет ли смысл использовать фреймворк для простого веб-приложения Java?

StackOverflow https://stackoverflow.com/questions/403825

Вопрос

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

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

Итак, мой вопрос таков - имеет ли смысл использовать фреймворк для простого веб-приложения Java?

Обратите внимание, что я не спрашиваю, какой фреймворк использовать (если действительно фреймворк рекомендуется), поскольку это уже было задано здесь.

Это было полезно?

Решение

В этом есть большой смысл.Моя команда провела большую часть пяти лет с нашим стеком с открытым исходным кодом, и это неважно, и у нас есть "начальный" проект (работает как appfuse), который мы используем для создания всех новых веб-приложений.Даже простые два пейджера с точки зрения обслуживания приложения, они выглядят как любое другое приложение, только меньше.

Короче говоря, вы не получите никакой отдачи от инвестиций прямо сейчас, но получите по мере развития проекта и его поддержания.

Другие советы

Если вы не используете веб-фреймворк, вы обычно заканчиваете тем, что пишете его - плохо.

Да, я бы использовал веб-фреймворк по следующим причинам:

  1. Расширенные навигационные возможности и элементы управления.Даже если они вам могут не понадобиться, вы всегда можете ими воспользоваться, если они вам понадобятся в любое время
  2. Как указывали другие, приложения растут с течением времени, и в какой-то момент в будущем вы почувствуете потребность в фреймворке.Когда вам нужно добавить дополнительные страницы и навигацию
  3. Функции, которые позволяют подключаться к другим фреймворкам, таким как security и DB access framework.Spring - яркий пример в мире Java.Вам никогда не придется использовать Spring, но он так хорошо сочетается со Struts, Spring MVC, Hibernate, Acegi и т.д.В конечном итоге это избавляет вас от необходимости самостоятельно выполнять все сантехнические работы.
  4. Поддержите!!!У хороших фреймворков почти всегда есть активное сообщество, которое поддерживает их, задает вопросы и отвечает на них.

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

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

Да, в этом действительно есть смысл.Приложения могут расти и меняться, и им может потребоваться что-то, что фреймворк сможет легко предоставить в будущем.

Например, на моем рабочем месте у нас есть простое приложение jsp / servlet.Его нужно переписать только из-за того, что я объяснил выше.Если бы кто-то потратил время на простую настройку фреймворка, мы были бы сегодня в лучшей форме.

Да, в этом есть смысл.Однако в вашем вопросе подразумевается, что неправильная (для вас) структура может причинить больше боли, чем того стоит, - и это правда.Существует огромная разница между каким-нибудь тяжелым фреймворком J2EE и чем-то легким и жизнерадостным, вроде grails.

Какая есть альтернатива?Сворачиваешь свой собственный?Встраивать всю навигацию и логику в JSP?

Я согласен с теми, кто говорит, что веб-фреймворк того стоит.Сейчас их буквально сотни (например, Стойки, JSF, Пружины, Калитка и т.д.).Выберите тот, который подходит именно вам.

Существует два вида приложений:

1) такой, который вы выбрасываете и никогда больше не используете, и поэтому не стоит беспокоиться о модульности, ремонтопригодности и наглядности.

2) настоящий вид.

Иногда может показаться, что вашему приложению, возможно, никогда не придется расти, масштабироваться или обслуживать больший набор функций / базу пользователей, чем вы планируете в данный момент....Уверяю вас, такое восприятие всегда ошибочно.

Фреймворки, в частности такие вещи, как Struts для MVC в Java, Spring для MVC и внедрения зависимостей, Hibernate для объектно-реляционного моделирования - все это чрезвычайно ценные инструменты, которые обеспечивают модульность, ремонтопригодность и ясность вашего кода.Итак, чтобы ответить на ваш первоначальный вопрос....Да, решительно.

Нет, это не так, если только:

  1. у вас нет опыта работы с Java в вашей команде
  2. вы делаете всего лишь прототип, который должен быть готов через несколько часов
  3. вы не доверяете своим разработчикам достаточно, чтобы позволить их написать свое приложения
  4. вы не планируете позволять своим разработчикам учиться и совершенствоваться

Опасности при использовании фреймворков включают, но не ограничиваются ими:

  1. вы получите все дефекты каркаса сверху самостоятельно
  2. вы не сможете делать реалистичные оценки, пока не будете в совершенстве знать структуру
  3. ваша команда не научится программировать веб-сервер
  4. вы найдете свою команду проезжают более и больше времени на Google вместо этого устранение проблемы путем написания кода.

Единственное, что хуже всего при выборе фреймворка с открытым исходным кодом, - это наличие в компании отдельной команды НИОКР, которая должна создать "big complete ultimate company framework".

но мое впечатление о фреймворках таково, что они в основном используются для больших приложений J2EE и требуют много сложной конфигурации

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

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

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

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

Однако вы также можете медленно перейти с существующего фреймворка на пользовательский.

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

Итог, фреймворк того или иного типа всегда будет полезен.

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

  1. Масштабируемость
  2. Ремонтопригодность
  3. Четкое разделение вашей модели (например,MVC)
  4. Готовые компоненты (управление сеансами, аутентификация и т.д.)
  5. Плагины третьих лиц
  6. Модульность, унаследованная от фреймворка
  7. Многие другие.

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

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

Кроме того, если бы я мог проголосовать за пост Самберана, я бы это сделал.Начало работы с фреймворком будет включать в себя несколько моментов типа "о, здорово!Мне не нужно снова писать все это шаблонно!".

Я бы сказал, используйте один - как вы сказали, довольно утомительно запускать даже простое веб-приложение Java.Если фреймворк помогает вам выполнять работу быстрее и предоставляет необходимые вам услуги, я бы сказал, что это имеет смысл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top