Веб-фреймворки Java - PullRequest
       19

Веб-фреймворки Java

17 голосов
/ 01 декабря 2009

Я искал вокруг, чтобы увидеть, есть ли в java эквивалент django / RoR.

Я нашел:

Кто-нибудь когда-нибудь пробовал эти фреймворки, или вы знаете какие-нибудь другие? Они быстрее, чем Django / RoR?

Ответы [ 18 ]

17 голосов
/ 01 декабря 2009

Я обнаружил Grails около года назад и не оглядывался назад. Он берет много идей от Ruby on Rails (первоначально он назывался Groovy on Rails) и имеет богатую экосистему плагинов / расширений. Grails и базовый язык Grails (расширенный набор Java) делают программирование приятным делом - вы действительно можете сосредоточиться на самом главном. Его функциональность GORM (слой поверх hibernate) также очень мощный, и в дополнение к системе плагинов, это одна из двух огромных причин, чтобы проверить это (вы также можете использовать его в своих java-приложениях).

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

Что касается производительности, то она, безусловно, меньше, чем у чистой Java, но у вас есть все, от spring / hibernate / J2EE, доступная для оптимизации, и вы всегда можете перейти на чистый java для некоторых критических фрагментов кода. В последнее время были проведены эксперименты с возможностью запуска части кода Groovy с использованием статического разрешения методов, что в сочетании с поддержкой invokedynamic должно обеспечить огромный прирост производительности.

Другие, которые нужно проверить на Java, это Spring Roo и AribaWeb.

Обновление на основе дополнительных квалификаций

Масштабируемость, Производительность, Документация и достойные ресурсы потребление

  • Масштабируемость - вы получаете проверенный стек Java / Spring / Hibernate, хотя я не могу сказать, что Grails предоставляет многое сам.
  • Производительность - это основная причина использования Grails. У вас есть проблемы с производительностью, но Grails - это то, что вы используете, когда время разработки / производительность важнее.
  • Документация - документы Grails великолепны, и только на Grails написано по крайней мере три хороших книги. Сообщество процветает и очень полезно.
  • Потребление ресурсов - это единственный компромисс. Grails (частично из-за лежащего в основе стека Java) является ресурсоемким. Если бы я создавал что-то вроде Google, Grails не был бы выбором. Тем не менее, в любом веб-приложении любой сложности вы бы неплохо применили решение для кэширования, то же самое применимо и здесь.
3 голосов
/ 01 декабря 2009

Полосы кажутся достаточно легкими и включают в себя соглашение о конфигурации.

2 голосов
/ 01 декабря 2009

Попробуйте попробовать Lift Framework . Это действительно здорово.

2 голосов
/ 03 декабря 2009

Каждый раз, когда вы рассматриваете стек приложений (язык, фреймворк и т. Д.), Вам также необходимо учитывать, что вы пытаетесь решить, и какие навыки программирования у вас есть в вашем распоряжении. Я обнаружил, что более опытные Java-программисты очень продуктивно работают со стеком Groovy и Grails по сравнению с более младшими программистами.

В качестве проблемных областей вы упоминаете следующее:

  • Масштабируемость: что именно? (просмотры страниц / секунда, # транзакции / секунда и т. д.) В общем, Groovy & Grails будут масштабироваться, когда дело доходит до рендеринга страниц, однако, как и в любом стеке приложений, использующем ORM (в случае с Grails у вас есть GORM), там некоторые издержки для рассмотрения.
  • Производительность: одно из главных преимуществ здесь - быстрое создание прототипов, быстрая разработка - дело простое с Groovy & Grails, хотя помогает персоналу, работающему на Java или Ruby, понять, что на самом деле делает среда Grails " под капотом". Для пользовательского интерфейса существует множество плагинов, которые помогают очень быстро создавать страницы, похожие на web 2.0.
  • Документация: все больше качественных справочников пишется для Groovy & Grails. Оба очень хорошо взрослеют за последние 2 года. Вещи, конечно, не очень хорошо документированы в отношении большей части внутренней работы структуры Grails, когда встречаются ошибки / проблемы (большая часть вывода из структуры является неясной или не существует в лучшем случае, когда возникает ошибка). Если вы готовы засучить рукава и быть находчивыми, проходя через внутреннюю работу, вы не будете разочарованы этим стэком. Опять же, опытные программисты сочтут это второй натурой, в то время как более молодые люди могут иногда разочарованно поднимать руки.
  • Потребление ресурсов: существуют накладные расходы, однако, учитывая то, что большинство аппаратного обеспечения, найденного сегодня (локальное или облачное), не слишком беспокоится о потреблении физических ресурсов для данного экземпляра приложения.

Надеюсь, это поможет.

2 голосов
/ 01 декабря 2009

Пользуясь распорками, калиткой, перилами и гобеленами, я рекомендую заглянуть в Гобелен 5 .

Поддерживает

  • при перезагрузке класса контейнера (так что вам не нужно перезапускать ваше веб-приложение каждый раз, когда вы вносите изменения)
  • быстрое время разработки и повышенная производительность - используется модель на основе компонентов с декларативной разводкой
  • минимальная конфигурация, которая в большинстве случаев в коде, соглашение по конфигурации - и т.д ..
  • Нет базовых классов для расширения
  • Язык выражений для использования в файлах шаблонов
  • хорошая поддержка AJAX
  • отличная поддержка отладки, как на стороне клиента, так и на сервере
  • хорошая интеграция доступа к данным
  • активное сообщество
  • написано с нуля с учетом производительности в виду. например пул страниц (для минимизации использования ресурсов), сжатие страниц, удаление пробелов, весь динамический код компилируется в нативный.
  • хороший бин и поддержка форм - упрощение общих задач. Сортируемая база данных с поддержкой drid может быть закодирована с помощью одной строки кода шаблона и минимальной серверной части скелета.

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

(Кроме того, обязательно смотрите только на T5, а не на T4,3,2,1 ....., поскольку они сильно отличаются от текущей версии)

Подробнее о здесь .

1 голос
/ 01 декабря 2009

Сам не пробовал, но моим колледжам нравится использовать полосы

Есть книга и все.

1 голос
/ 01 декабря 2009

Как насчет JRoR

1 голос
/ 01 декабря 2009

Я не знаю о Play Framework, но чтобы ответить на второй вопрос, мы делаем несколько проектов с помощью Google Webtoolkit . Может быть стоит проверить.
Удачи!

1 голос
/ 01 декабря 2009

Spring Roo утверждает, что является решением.

1 голос
/ 03 апреля 2011

Я сделал проект с Grails и нашел его очень быстрым для некоторых задач, но он делает много «магии» за кулисами, что затрудняет его отладку.

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

Что касается Play! Я обнаружил, что это удивительно просто и быстро для разработки, легко учиться и запоминать. Сообщество кажется меньше, чем Grail, но оно более активно и быстрее отвечает. Единственным недостатком является то, что он не зависит от API сервлета, поэтому некоторые сторонние фильтры или другие вещи сложно интегрировать, но не невозможно. Важно отметить, что вы можете развернуть приложение Play на любом традиционном веб-сервере, упаковав его как войну.

На мой взгляд, Grails - это здорово, но вам нужно иметь большой опыт работы с ним, чтобы быть продуктивным, иначе вы потеряете много времени с руководствами. Так что, если это не ваш случай, я должен порекомендовать Play! Особенно, если вы не знакомы с Groovy

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