Вчера решил что может стоит посмотреть что же такое груви ( Groovy )… конечно я не сам до этого докатил, меня уже год-полтора один товарищ с этим допекает… и наконец-то я сдался и решил выучить. Сегодня сел немного пописать код, конвертнул свой проект в груви проект ( раньше был Ява ) ну и начал писать новые классы.
Груви действительно мазовая вещь. По сути своей это надстройка над Явой, типо груви компилятор переводит груви код в яву, а дальше ява уже компилируется… Вообщем я в детали особо не вдавался, а просто сел и начал писать что нада… Если ты знаешь Яву то груви будет выучить/пользовать легко… Самое приятное так это что если забыл или не знаешь как написать что-то на груви то можешь просто написать на Яве. И все же груви это что-то. Буквально за час работы, я написал пару классов ( не особо сложных ) с минимальным кодом ( по сравнению с Явой ) и без заморочек. Например мне нужно сделать лист объектов… На яве нужно выбрать класс, задикларировать его и так далее… вот например так:
List name = new List();
А вот что нужно сделать на груви:
def name = []
Так же приятно писать методы… например мы пишем метод с возвратом чего нить там.
public String myMethod() {
String st;
return st;
}
Тут фишка в том что всегда надо указывать что за тип объекта будет возвращаться… в принципе не проблема, но вот груви:
public Object myMethod() {
def st;
return st;
}
Кто-то может заметить разницу сразу… в груви мы не знаем чем будет “st” это может быть номер или стринг или лист… кто знает! И при этом мы его спокойно возвращаем… Некоторые могу сказать… ну и что? Можно такое же сделать на Яве типо вернуть объект… Согласен, но в дальнейшем нужно будет кастить ( cast ) этот объект для использования… А в груви не надо.
Вот кусочек моего кода:
Config conf = new Config();
def ConfigList = conf.loadConfigFile(“config.xml”);
for ( e in ConfigList) {
println(e.filePath);
println(con.addTorrent(e.torrentPath.toString(), null))
}
Вторая строка получает какой-то объект… который просто лист… и тут же без чего либо я его использую в лупе ( loop ) и делаю операции… Красота не какого экстра кода или чего-то подобного. Груви делает код на много меньше и самое удобное то что не надо особо думать о типах переменных, что для меня лично очень упрощает процесс быстрой разработки программы.
Ладно пойду отваливать, вообщем я груви ещё не изучил, но то что вижу сейчас вызывает большую улыбку у меня на лице. На сколько же упрощается процесс разработки…
Чирз!