Вопрос

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

Я нашел:

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

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

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подумайте о том, чтобы попробовать Лифт Рамка.Это действительно здорово.

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

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

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

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

Я не знаю о платформе воспроизведения, но чтобы ответить на второй вопрос, мы делаем некоторые проекты с Google Веб-инструментарий.Возможно, стоит проверить.
Удачи!

Как насчет JRoR

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

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

Спринг Роо утверждает, что является решением.

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

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

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

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

Я не знаю, как насчет Play Framework, но Весенний MVC или Стойки вместе будем Спящий режим будет предлагать аналогичную функциональность.

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

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

Редактировать:ах, вы уже упоминали Граали в своем вопросе...

если Grails является вариантом (который на самом деле является не Java, а отличной платформой), то основанный на Scala Поднимать framework тоже будет вариантом.

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

Как насчет VRaptor?- он использует Spring в качестве DI-контейнера и механизм контроллера/представления, аналогичный Rails Action-Pack.

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

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

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

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