Инфраструктура веб-сайта - СУБД для слоев браузера - PullRequest
0 голосов
/ 10 ноября 2011

Я занимаюсь разработкой и разработкой некоторых аналитических инструментов для веб-сайта.

Я хочу, чтобы сервер использовал Apache, MySQL и Java. Размеры наборов данных будут скромными: от 1K до 10K пользователей, добавление 1M записей / год максимум.

Интерфейс будет использовать HTML, CSS, javascript, jQuery и некоторые плагины jQuery. У нас будет несколько десятков веб-страниц, управляемых данными.

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

Тогда у меня два вопроса.

  1. ORM: Мы могли бы использовать Hibernate, который, как я знаю, широко используется и очень функционален. Но я также знаю, что это несколько громоздко и имеет проблемы с производительностью. Есть ли другие ORM, которые можно порекомендовать?
  2. Каркас веб-приложения: с сервлетами Java все в порядке, но я использовал JSP, и мне не нравится, как они встраивают Java и HTML, затрудняя модульное тестирование Java и что-либо менять. Альтернативы, которые я рассматриваю, - это Struts, Wicket (но, честно говоря, я редактирую большие файлы XLM, это больно) и Grails. Grails включает в себя объектно-реляционное отображение Grails (GORM), в котором используется Hibernate. Есть ли другие, чтобы рассмотреть? Что бы вы использовали?

Спасибо A

Ответы [ 3 ]

3 голосов
/ 10 ноября 2011

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

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

Каркас веб-приложения: с сервлетами Java все в порядке, но я использовал JSP, и мне не нравится, как они встраивают Java и HTML, делая этоТрудно провести модульное тестирование Java и что-либо изменить.Альтернативы, которые я рассматриваю, - это Struts, Wicket (но, честно говоря, я редактирую большие файлы XLM, это больно) и Grails.Grails включает в себя объектно-реляционное отображение Grails (GORM), в котором используется Hibernate.Есть ли другие, чтобы рассмотреть?Что бы вы использовали?

Рекомендуемая практика для разработки JSP - инкапсулировать логику представления в теги и использовать теги в JSP вместо того, чтобы помещать код скриптлета (Java) непосредственно в JSP.

Существует множество потенциальных веб-фреймворков Java, которые следует учитывать.Если вы ищете зрелую, широко используемую, хорошо документированную и спроектированную среду Java, я бы выбрал SpringMVC.Если вы хотите рассмотреть что-то более передовое, то инфраструктура Play стоит посмотреть.

Лично я бы использовал Grails, но я уже достаточно хорошо знаю Groovy / Grails, что, возможно, не совсемкейс для вас.

Обновление

Как указано в комментариях Тодд , GORM теперь можно рассматривать как абстрактный API персистентности.Хотя стандартная реализация использует Hibernate, также возможно (путем установки плагинов) использовать JPA или различные базы данных NoSQL.

2 голосов
/ 10 ноября 2011

ORM: мы могли бы использовать Hibernate, который, как я знаю, широко используется и очень функциональны. Но я также знаю, что это несколько громоздко и имеет проблемы с производительностью. Есть ли другие рекомендованные ОРМ?

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

Grails включает в себя реляционное отображение объектов Grails (GORM), которое использует Hibernate. Есть ли другие, чтобы рассмотреть? Что бы вы использовали?

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

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

0 голосов
/ 12 ноября 2011

Каркас веб-приложения: с сервлетами Java все в порядке, но я использовал JSP, и мне не нравится, как они встраивают Java и HTML, затрудняя модульное тестирование Java и что-либо менять.Альтернативы, которые я рассматриваю, - это Struts, Wicket (но, честно говоря, я редактирую большие файлы XLM, это больно)

Не уверен, что я вас понял, но если бы я это сделал, я бы хотел уточнить: ApacheWicket не требует «редактирования больших [XML] файлов».Это строго Java и HTML.Если вы уже знаете объектно-ориентированную Java (и вам это нравится), Wicket может подойти вам.

Кроме того, если большинству вашего приложения необходим внешний интерфейс CRUD для доменной модели, которая сохраняется в базе данных.Стоит серьезно рассмотреть Spring Roo.Он выполняет большую часть работы за вас - постоянство, настройку и даже может генерировать веб-интерфейс CRUD с помощью нескольких команд.Думайте об этом как о Java-эквиваленте Rails.

...