Грууууувииии

Вчера решил что может стоит посмотреть что же такое груви ( 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 ) и делаю операции… Красота не какого экстра кода или чего-то подобного. Груви делает код на много меньше и самое удобное то что не надо особо думать о типах переменных, что для меня лично очень упрощает процесс быстрой разработки программы.

Ладно пойду отваливать, вообщем я груви ещё не изучил, но то что вижу сейчас вызывает большую улыбку у меня на лице. На сколько же упрощается процесс разработки…
Чирз!

Сервак будет в оффлайне.

Доброго времени суток всем.
Сегодня с 3-х до 6-ти утра по Московскому времени сервер будет находиться в оффлайне. Я собираюсь проводить некоторые работы на интернет линии, дабы улучшить или можно сказать ускорить работу интернета.
О деталях сообщу позже.
Удачи.