Направляющие или Grails? [закрытый]

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

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

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

import org.junit.Test;
import java.util.function.IntUnaryOperator;
import static org.junit.Assert.assertEquals;

public class RecursiveTest {
    private IntUnaryOperator operator;

    @Test
    public void factorialOfFive(){
        IntUnaryOperator factorial = factorial();
        assertEquals(factorial.applyAsInt(5), 120); // passes
    }

    public IntUnaryOperator factorial() {
        return operator = x -> (x == 0) ? 1 : x * operator.applyAsInt(x - 1);
    }
}
26
задан James McMahon 28 July 2009 в 13:39
поделиться

13 ответов

Еще одна вещь, которую стоит упомянуть: принципы проектирования обеих платформ несколько отличаются когда дело доходит до модели. Grails более "ориентирован на домен", в то время как направляющие более "ориентированы на базу данных".
В направляющих, Вы по существу запускаете путем определения таблиц (с именами полей и их специфическими особенностями). Тогда ActiveRecord отобразит их на классы Ruby или модели.
В Grails, это - реверс: Вы запускаете путем определения моделей (классы Groovy) и когда Вы совершите нападки выполненный, GORM (эквивалентный Grails ActiveRecord) создаст связанную базу данных и таблицы (или обновит их). Который может также быть, почему у Вас нет понятия 'миграций' в Grails (хотя я думаю, что это прибудет в некоторый будущий выпуск).
я не знаю, лучше ли Вы, чем другой. Я предполагаю, что это зависит от Вашего контекста.

Это сказанное, я все еще самостоятельно задаюсь вопросом который выбрать. Как Tom говорил, если Вы зависите от Java, можно все еще пойти для JRuby - таким образом, повторное использование Java не должно быть единственным критерием.

33
ответ дан Rollo Tomazzi 28 November 2019 в 06:11
поделиться

Я думаю, это зависит от среды, в которой вы работаете.

У Grails, кажется, больше признания на корпоративном уровне.

У Rails есть Koolaid-vibe, и он очень приемлем для стартапов без устаревших систем.

Лично я использую оба. Хотя на самом деле это только начало в мире Grails - мне нравится, что аутентификация / авторизация проще в Grails-one, простом плагине; Широ. Мне нравится, что Rails не зависит от JVM и не занимает минуты или около того для запуска.

Я считаю, что настройка BDD / Cucumber в Rails была намного проще, но это может быть просто потому, что это то, с чем мне удобно! В мире Grails определенно предпринимаются усилия (cuke4duke и т. Д.), Чтобы сделать это проще - и активное сообщество разрабатывает Grails.

Только мои 2p ·

Попробуйте оба:)

0
ответ дан oceanician 28 November 2019 в 06:11
поделиться

Я использовал turbogears и направляющие немного. Перед использованием направляющих я пытался использовать чаши Грааля, потому что я использовал отличный для моих сценариев. Grails был трудным опытом.

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

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

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

0
ответ дан Peter Kahn 28 November 2019 в 06:11
поделиться

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

1
ответ дан Hank Gay 28 November 2019 в 06:11
поделиться

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

4
ответ дан Karsten Silz 28 November 2019 в 06:11
поделиться

Я могу предложить Merb? Это является основанным на стойке, модульным, ORM-агностическим, создается для скорости из размолотого Ezra Zygmuntowicz. Это начинает получать некоторое тепло теперь...

2
ответ дан Marcin Gil 28 November 2019 в 06:11
поделиться

Я раньше использовал рельсы, и мне это очень понравилось. Однако в моей нынешней компании было много унаследованного Java-кода, и поэтому естественным выбором был Grails.

Когда я начал с рельсов, очень немногие сайты использовали его, и документация была ужасной. Был Railscast, который был великолепен, и railsforum.com, но ничего необычного, вы сами по себе. Развертывание было кошмаром, а использование беспорядочных кластеров не было готово к производству. Как сейчас все видят, это совсем другое дело, гораздо более зрелое и развернутое повсюду.

Более года назад мне пришлось изучать грааль по причине, указанной мной выше. Переход на Grails был очень легким, так как он очень похож на Rails. Опять же, это было очень похоже на ранние этапы рельсов, с одной огромной разницей. Поскольку вы можете легко импортировать Java-код, пользователи Grails могут использовать почти все доступные для тестирования библиотеки Java. Я смог успешно интегрировать наши устаревшие Java-проекты в Grails-проекты, и требуется совсем немного доработок. Вы также заметите, что разработка плагинов была быстрой, в основном потому, что разработчики просто пишут "крючки" для grails, а базовый код - это старые библиотеки Java. Развертывание Grails также просто развертывание файла WAR.

Еще одна вещь, на которую вы должны обратить внимание - это IDE. Если вы чувствуете себя комфортно с затмением, то Eclipse-STS для грааля даст вам все навороты. Я до сих пор вижу, что многие разработчики рельсов используют textmate, хотя rubymine добился больших успехов (ранняя версия rubymine использовалась, чтобы остановить мою Ubuntu)

.

Суть в том, что оба являются отличными средами MVC. RoR гораздо более зрелый и имеет гораздо больше разработчиков. Grails - это то, где RoR был 3-4 года назад, но я вижу прогресс намного быстрее. Надеюсь, это поможет.

5
ответ дан ibaralf 28 November 2019 в 06:11
поделиться

Это зависит от Ваших навыков с Ruby и/или Groovy, есть ли у Вас системы Java прежней версии для контакта с, и где Вы хотите развернуть свои приложения.

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

За пределами работы, Ruby легче найти хостинг для на нижнем уровне ценового спектра. Поскольку Grails использование много существующего Java предполагает, что .war файлы, даже для небольшого приложения, имеют тенденцию быть большими. Если у Вас есть выделенный сервер, это не проблема, но пытающийся работать на общем хостинге с RAM на 128 МБ не работает.

2008 является годом Groovy и книг Grails, но существует еще намного больше доступных ресурсов направляющих.

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

5
ответ дан Ed.T 28 November 2019 в 06:11
поделиться

Я говорю Grails, так как существует так много библиотек Java. Но я немного пристрастен из-за того, что я родом из Java.

Если приложение не будет большим, то и того будет достаточно - и выбор должен зависеть от существующей инфраструктуры. Скажем, если у вас уже запущен сервер-контейнер Java-сервлетов, вы можете также придерживаться grails вместо того, чтобы предоставлять другой сервер для rails.

6
ответ дан Chii 28 November 2019 в 06:11
поделиться

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

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

9
ответ дан tomafro 28 November 2019 в 06:11
поделиться

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

16
ответ дан Scott Anderson 28 November 2019 в 06:11
поделиться

Наблюдение как, как парни, которые делают Grails просто, были вчера выкуплены источником Spring, я скажу Grails.

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

Grails полностью!

4
ответ дан hendrixski 28 November 2019 в 06:11
поделиться

Как разработчику Grails, пришедшему с Java, мне он понравился с самого первого раза.

Теперь я начинаю копаться в Rails и у меня проблемы с gem. Хотя установка MySQL-соединения с Grails была довольно простой, я все еще пытаюсь заставить ее работать с Rails.

Команда gem install mysql не работает, очевидно из-за того, что у меня не установлен XCode.

Если бы не проблема с потреблением памяти, я бы сказал, что Grails идеален.

2
ответ дан 28 November 2019 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: