Подтвердить что ты не робот

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

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

Я нашел:

Кто-нибудь когда-либо пробовал эти рамки, или вы знаете другого? Являются ли они быстрее, чем django/RoR?

4b9b3361

Ответ 1

Я обнаружил Грайля около года назад и не оглянулся назад. Для Ruby on Rails требуется много идей (оригинал был назван Groovy on Rails) и имеет богатые экосистемы плагинов/расширений. Grails и базовый язык Grails (надмножество Java) дают радость программе - вы действительно можете сосредоточиться на сути. Его функциональность GORM (слой поверх гибернации) также очень эффективна, и в дополнение к плагиновой системе это одна из двух огромных причин, чтобы проверить ее (вы можете использовать ее и в своих приложениях 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 не был бы выбором. Тем не менее, в любом веб-приложении любой сложности вы бы сделали все возможное для решения кэширования, так же, как и здесь.

Ответ 2

Stripes кажется довольно легким и охватывает Конвенцию по конфигурации.

Ответ 3

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

Он поддерживает

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

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

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

Подробнее о том, почему здесь.

Ответ 5

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

Вы упомянули следующие проблемы:

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

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

Ответ 6

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

Ответ 7

Как насчет JRoR

Ответ 8

Не пробовал это сам, но мои колледжи наслаждаются использованием stripes

Там книга и все такое.

Ответ 9

Spring Roo утверждает, что это решение.

Ответ 10

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

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

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

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

Ответ 11

Я не знаю о Play Framework, но Spring MVC или Struts вместе Hibernate предложит аналогичную функциональность.

Есть много других доступных вариантов. В основном вам нужна инфраструктура MVC (Spring MVC, Struts, Wicket) и инструмент ORM (Hibernate, iBatis). Конечно, вам нужно будет самостоятельно интегрировать необходимые компоненты, но это уже сделано много раз, и вы сможете найти много информации.

Ответ 12

Я не уверен, что Spring MVC и Hibernate обеспечивают такую ​​же легкость использования, что и Ruby on Rails (на самом деле, я уверен, что это намного сложнее...). Play Framework гораздо больше похожа на Ruby on Rails, я думаю, однако я сам не сделал это сам и только смотрел скринкаст и читал документацию по нему, поэтому, если вы хотите иметь похожий опыт разработки с использованием RoR, я думаю, вы можете лучше попробовать что-то вроде Play вместо Spring MVC с Hibernate. Преимущество последнего заключается в том, что он очень мощный и способен адаптироваться к существующей datamodel, например (из того, что я знаю на RoR, что не очень тривиально в RoR). Другая структура, которую вы могли бы рассмотреть, - Groovy на Grails. Хотя он не использует Java (он использует Groovy), он очень похож на RoR. Он использует Spring и Hibernate под капотом (если я прав), а преимущество Groovy заключается в том, что у вас нет строгой статической типизации Java. Ruby on Rails и Django в значительной степени зависят от динамического характера языка, на котором он реализован, функция Java пропускает из-за ее статической типизации.

Править: ах, ты уже упоминал о Грейлзе в своем вопросе...

Ответ 13

если grails - это опция (на самом деле это не java, а фреймворк groovy), а Scala - Lift также будет вариантом.

Ответ 14

Другим вариантом является RIFE, который пытается иметь минимальную конфигурацию RoR, все еще находясь на Java. В вашем списке только Play Framework имеет эту функцию, остальные находятся в JVM, но не являются Java (если это важно для вас вообще).

Ответ 15

Как насчет VRaptor? - он использует Spring как контейнер DI и контроллер /View, похожий на Rails Action-Pack.

Ответ 16

AribaWeb также поддерживает Groovy. Ознакомьтесь с нашими другими функциями в http://aribaweb.org/ и узнайте наш подход к созданию продуктивной веб-разработки.

Ответ 17

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

Ответ 18

Я использую http://www.ninjaframework.org/ для микросервисов, и он очень близок к большинству парадигм mvc, если вы использовали рельсы, asp.net mvc или nancyfx, вам хорошо идти. Это очень близко к этой философии и действительно удивительно и легко тестируется. Лишь в нижней части документации не так много, но она довольно точно соответствует шаблону mvc. Он не использует ничего проприетарного в рамках, поэтому это чистое решение на основе Java. Таким образом, это компенсирует отсутствие документации.