2009-07-13 4 views
23

Если у меня мало опыта ни в одном из них, но достаточно хорошо знаю, что Java и Ruby должны быть удобными, это одна основа, более сложная для изучения, чем другая? Легче ли использовать для новичков?Является ли весна тяжелой по сравнению с Ruby on Rails?

Я знаю, что трудно ответить. Просто ищите общие мысли по этому поводу.

ответ

9

И Spring, и Ruby on Rails делят «условное над конфигурацией» мото. Это значительно сокращает количество строк кода. Ruby on Rails - это веб-платформа, и ее можно сравнить с Spring MVC вместе с инструментом ORM, таким как Hibernate.

Можно сказать, что Spring вместе с Spring MVC или другой инфраструктурой MVC и Hibernate являются самыми близкими, с которыми вы можете добраться до Ruby on Rails для Java-мира.

Однако весна имеет гораздо более широкий охват, чем RoR.

+8

Какие аспекты весны вы считаете использующими Конвенцию по конфигурации? Для версии Spring, с которой я знакомы, вам нужно написать множество XML-конфигурации. Более поздние версии позволяют вместо этого использовать аннотации, но это все еще конфигурация, по крайней мере, некоторых вещей, которые, вероятно, можно было бы сделать. –

+5

Весной 2.x + весна представила CoC в MVC, см. Http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html#mvc-coc. Также использование аннотаций значительно уменьшает конфигурацию XML, необходимую для всех других весенних аспектов. –

+18

Конфигурация через аннотации по-прежнему конфигурируется –

4

Дело в том, весна, что это в основном две вещи:

  1. Это, по существу, «адаптер» или «фасад» для существующих технологий и библиотек; и
  2. философски отличается от J2EE тем, что речь идет о введении или инверсии зависимостей, что принципиально отличается от того, что было раньше.

Для (1), например, Spring может делать такие вещи, как облегчение боли того поставщика JMS, который вы используете, или делать такие вещи, как переводить исключения, созданные разными базами данных, в среду выполнения DataAccessException.

По этой причине весной обычно обозначают легкий контейнер. В Spring Spring («контекст приложения») различия между поставщиками обычно становятся просто проблемой конфигурации. Инъекционная инъекция делает много вещей, как сделать тестирование намного проще (сделано правильно).

Самая большая проблема в обучении и использовании Spring - это научиться думать таким образом, если вы раньше не делали ничего подобного.

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

Как только вы попадете в образ мышления DI/IoC.

2

Весна довольно большая, она имеет две грани , что я знаю инъекции зависимостей и АОП. Ruby on rails очень ориентирован на создание веб-приложений.

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

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

1

Я подозреваю, что этот вопрос действительно о Spring MVC. Одним из отличительных признаков Ruby on Rails является «соглашение по конфигурации». Если вы используете правильные имена, вы сэкономите много работы, записывая файлы конфигурации.С весной вам, вероятно, придется идти вперед и набирать много этой конфигурации.

Также маршрутизация Rails намного более мощная и лаконичная, чем альтернативы весной. В последних выпусках Spring попыталась перейти к более условному сравнению с моделью конфигурации, но она все равно будет обременительной для разработчика Rails.

16

После работы с Rails, Spring (и практически любой другой Java-код) чувствует себя утомительным и трудоемким.

+0

ditto для .net и его различных фреймворков –

+16

Пока вы не получите очень сложное бизнес-приложение, требующее сотни классов, и вы не можете понять, какой класс должен пройти к тому, что конструктор –

+0

@JohnBaker, очень верно. Я согласен с вами в моем личном опыте. Весна может потребовать немного больше работы, но для меня это лучший выбор, когда речь идет о больших и сложных приложениях. –

10

Сравнение RoR с весной напрямую не является прямым или простым сравнением.

RoR фокусирует довольно плотно на разработке сайтов легко. RoR делает большую работу по созданию крафтинговых страниц, их объединению и сохранению данных очень легко. RoR был разработан специально с учетом веб-разработки и является отличным инструментом для этого. Тем не менее, когда вам нужно сделать больше «корпоративных» разработок (обмен сообщениями, интеграция и т. Д.), Или вам нужно сделать что-то, что не вписывается в соглашения RoR, вы почувствуете некоторую боль.

Тем не менее, весна имеет много аспектов: Spring IoC, Spring AOP, SpringMVC и т. Д., Которые направлены на решение множества различных проблем развития, с которыми сталкиваются разработчики. Весна имеет очень широкий спектр технологий, которые облегчат большинство проблем развития, с которыми вы столкнетесь.

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

Одна из аспектов, которые, как мне кажется, часто отсутствуют в этом обсуждении, - это доступность возможностей сообщества, инструментов и библиотек. Java/Spring - это зрелая платформа с обширной поддержкой сообщества и инструментами, в то время как Ruby/RoR имеет отличное сообщество, инструментарий все еще догоняет IMO.

+5

Я не вижу никаких доказательств того, что Java/Spring дает вам больше «гибкости и мощности», чем Rails. Вы также подчеркиваете, что Rails лучше для новичков, подразумевая, что это еще хуже для ветеранов. Просто потому, что вначале что-то сложно или просто в использовании, это не значит, что для ветеранов это будет сильным или худшим. –

+2

Я действительно не получил «для новичков», копаю его ответ. i, однако, развиваются как в Java, так и в RoR и полностью понимают комментарий «гибкость и мощность» ... RoR имеет гораздо более ограниченную область с точки зрения производительности и предписанных шаблонов проектирования. Это просто факт, в значительной степени .... Rails - это особый тип интерфейсного приложения, в то время как Spring - нет. – jm0

34

Мне не нравится это сравнение.

Вы должны сравнить Grails или Spring Roo to Rails. Groovy Grails - это система типа RoR, построенная на Spring, которая использует Groovy для рельсовых DSL. Roo - это смутно-рельсовая чистая Java-DSL для RoR, как приложения.

Мне очень жаль это говорить, но весна - это платформа. Вы используете его для соединения технологий Java вместе. Вы можете использовать его для приложений, отличных от веб-приложений, а не для баз данных, нулевого пользователя. Вы можете использовать его для создания пакетных серверов. Вы можете использовать его для написания клиентов.

Рельсы не совпадают. Мне очень нравятся рельсы для веб-приложений, управляемых данными, но я содрогаюсь от мысли написать систему пакетной обработки в рельсах.

+0

Это правильный ответ. Весна! = Рельсы. Весна больше похожа на Express.js или Flask.py. У них разные цели и их нельзя сравнивать напрямую. – Banjocat

1

Я работал с некоторыми из них довольно широко, и я нашел Spring и самые популярные «сложения» спящего режима, JSF, JSP, Rich Faces и т. Д., Чрезвычайно трудные в использовании.

В основном это было из-за личной неудовлетворенности документацией и доступными книгами и учебниками по полному стеку. Кроме того, это просто не так удобно, как дружественный к среде Rails. По-настоящему кажется, что он просто показал лучший способ разработки веб-приложений практически всеми способами.

+3

Весна - невероятно хорошо документированная структура. http://static.springsource.org/spring/docs/3.1.0.RELEASE/reference/htmlsingle/ – npiv

+2

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

+0

Сумма здесь не является проблемой. Я считаю, что Spring предназначен для более высокого технического уровня, Enterprise. Rails не требует наличия сплошного фона для создания веб-приложений. –

12

Я недавно перешел на использование Spring MVC + WebFlow с 4 лет на рубине на рельсах.

Ruby - отличные рельсы - производительность egde. Однако весна MVC больше ориентирована на предприятие со слоями дизайна и узоров по шаблонам.

Я не говорю, что это мусор, интересно узнать другой подход к разработке пользовательского интерфейса.

Вы не можете сравнить эти два. Spring MVC более адаптирован к проектам, которые могут быть повторно использованы в разработке Portlet или разработке веб-потоков, которые могут быть изменены без изменения большого количества Java-кода.

Есть подрамники, такие как безопасность весны и не говоря уже о аспектах во всех формах и видах. Я нахожу все это большой кривой обучения. Представления могут отображаться с помощью JSF или JSP/JSTL.

Честно говоря, я думаю, что Java - это язык, который не развивался в возрасте, и люди имели значительные инвестиции в этот стек, который они взломали и перезаписали. Аннотации и XML или будь то Generics, они все с целью заставить язык обслуживать постоянно растущий и развивающийся мир вокруг него.

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

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

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

Проблема в том, что рельсы получили много негативной рекламы на протяжении многих лет. Я не уверен, что это будущее в это время, и выбор между чем-то доказанным против того, что клонируется в каждой новой веб-инфраструктуре, - это риск.

ASP.net mvc, grails cakePHP В каждой популярной структуре MVC есть клонированные рельсы.

Является ли весна тяжелой по сравнению с рельсами?

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

+1

Я согласен с вами в целом, но можете ли вы определить «предприятие»? Что такое предприятие и почему Spring (особенно) лучше подходит для него? – cbmeeks

Смежные вопросы