2009-12-01 3 views
17

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

я нашел:

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

+0

Какие элементы веб-структуры важны для вас? Масштабируемость, производительность, документация и т. Д. – Joel

+0

Масштабируемость, производительность, документация и достойное потребление ресурсов (Даже если все говорят, что это не так важно для веб-приложения, в облаке, это будет) – Roch

+0

контрольная точка рельсов, калиток, гравий, игра, список, jsp: http : //www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/ –

ответ

17

Я узнал о Граале около года назад и не оглянулся. Это требует много идей от 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 (частично из-за базового пакета Java) ресурсоемкий. Если бы я строил что-то вроде Google, Grails не был бы выбором. Тем не менее, в любом веб-приложении любой сложности вы бы сделали все возможное для решения кэширования, так же, как и здесь.
+1

Ну да, Грааль кажется замечательным. Но думаю, что я собираюсь попробовать «Играть», это выглядит действительно привлекательно.единственное, что меня беспокоит, - это потребление ресурсов и хуже или лучше, чем php/python/ruby, мне не удалось найти много об этом в google. – Roch

+1

Звучит неплохо - игра выглядит круто. Также посмотрите видео AribaWeb - выглядит очень мило. Просто имейте в виду, что с Grails вы также получаете мощь Groovy, что само по себе является преимуществом (хотя, конечно, производительность - это компромисс). –

+0

Хорошо, я посмотрю AribaWeb. Play Framework использует Groovy тоже для своих шаблонов ;-) – Roch

1

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

0

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

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

1

Как насчет JRoR

+2

JRuby on Rails не является веб-картой Java! Это Ruby on Rails, работающий на JVM. –

+1

Такая же ошибка возникает и в самом вопросе, поэтому, по-видимому, вопрос не означает только java :) – Bozho

+0

Да, я не знал, что сейчас редактирую. – Roch

0

Я не уверен, если Spring MVC и Hibernate обеспечивает такую ​​же простоту использования, что Рубин на 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 пропускает из-за ее статической типизации.

Edit: ах, вы упомянули Grails уже в вашем вопросе ...

0

если Грааль варианта (который на самом деле не является Java, но заводная рамка), тем Scala на основе Lift рамки будет вариантом , слишком.

1

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

Там в book и все.

0

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

3

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

+0

Полосы выглядят очень интересно. +1 –

0

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

2

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

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

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

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

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

Подробнее о том, почему here.

0

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

2

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

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

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

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

0

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

1

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

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

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

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

0

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