Groovy to jeden z wielu języków skryptowych w Javie, którego poznanie zawsze odkładałem. Po ciekawych i bardzo produktywnych doświadczeniach z Jython nadeszła pora na Groovy. Nie zamierzałem jednak tworzyć skryptów ręcznie. Ostatnio uaktualniałem Eclipse IDE do wersji 3.3M5 i na niego padło jako środowisko, w którym będę tworzył skrypty Groovy (w odwodzie oczekiwał niemile zaskoczony NetBeans IDE 5.5.1).
Rozochocony pomysłem postanowiłem jeszcze bardziej go uatrakcyjnić i...nakręcić film! Pora popróbować się z Wink. Pomysł jego wykorzystania pojawił się właściwie kilka dni temu, kiedy przeglądając jeden z blogów natrafiłem na filmy Winka. Krótkie acz treściwe filmiki o danej funkcjonalności znacznie uatrakcyjniały prezentowany słownie projekt, czy jego wybraną cechę. Pomyślałem dlaczego by nie wykorzystać go u mnie i tym samym postanowiłem wprowadzić Winka do narzędzi codziennego użytku. Inicjacja moich poczynań z Winkiem wymagała czegoś ekstra, a rozpoznawanie Groovy w Eclipse to był temat wręcz wymarzony.
Po kilku godzinach stworzyłem krótki film o instalacji wtyczki Groovy Eclipse Plugin, tworzeniu skryptu Groovy i ostatecznie jego uruchomieniu. Filmowanie nie jest takie proste, ale warto było, bo ostateczny efekt okazał się ciekawszy niż początkowo sądziłem.
A o możliwościach Groovy nie wspomnę. Nieźle się gimnastykowałem z domknięciami (ang. closures). Ich prostota mnie wręcz wykańczała. Wymagają one zupełnie innego myślenia o strukturze tworzonego programu. Mówi się, że raz poznawszy domknięcia, programista nie może bez nich żyć. Brrr, mnie to także czeka?!
Pierwszy skrypt w Groovy służy do zmiany nazwy plików w katalogach podanych na linii poleceń. Jego uruchomienie przedstawiam w filmie.
package pl.jaceklaskowski.groovy.renamer;
class Main {
static void main(args) {
println "Huuraa! Rozpoczynamy zabawę z Groovy!"
args.each { d ->
println "Katalog: $d"
def p = '^[0-9]+[-_]?'
new File(d).eachFileMatch(~"$p.*") { f ->
def newFileName = "${f.getName() - p}"
print " ${f.getName()} staje się $newFileName..."
f.renameTo(new File(d + '/' + newFileName))
println "zrobione"
}
}
}
}
Bardzo ciekawa jest obsługa sytuacji brzegowych - brak podania parametrów wejściowych na linii poleceń, wyrażenia regularne i same domknięcia. Starałem się ująć w skrypcie jak najwięcej ciekawych sztuczek Groovy, aby poczuć jego klimaty. Podsumowanie: Groovy podoba mi się!
Czołem,
OdpowiedzUsuńOsobiście uwielbiam takie dema fleshowe. Mówią, że obrazek jest wart tysiąca słow. a w takim filmie jest tych obrazków co nie miara.
Osobiście trochę dłużej pokazywał bym kolejne etapy prowadzące do osiągnięcia celu i na troszkę zatrzymywał bym się na komunikatach. bo trzeba się bardzo śpieszyć by je doczytać.
Pozdrawiam.
Michał Margiel
Dokładnie o tym samym myślałem, kiedy oglądałem film po jego opublikowaniu. Najbardziej bolesne było tworzenie filmu - ponad...6 godzin (!) Kiedy w końcu udało się, sam nie wiedziałem, czy co rusz podnoszę wymagania odnośnie filmu i czy faktycznie są one potrzebne.
OdpowiedzUsuńWierzę, że kolejne będą odpowiednie(jsze). Dzięki za komentarz, Michał!
Jacek
Witam,
OdpowiedzUsuńCiekawy film, a instrukcja zaiste pomocna! Mam jednak mały problem z Groovy w Eclipse - jak dodać dodatkowe biblioteki, aby były widoczne przez Groovy? Męczyłem się straszliwie, aż trafiłem tutaj. Może potrafisz pomóc?
Z góry dzięki