05 lutego 2009

Groovy i Grails, Bloger Roku 2008, 4Developers i Refaktoryzacja

Skończyłem książkę o Groovy i Grails - Beginning Groovy and Grails: From Novice to Professional, co czytelnicy mojego bloga mogli dostrzec przez ostatnie 2 tygodnie. Od razu wziąłem się za recenzję i opublikowałem ją u siebie w Wiki Book review: Beginning Groovy and Grails: From Novice to Professional, którą również opublikowałem na Amazonie - The book made me a single-technology addict. Wystarczył jeden dzień i "1 of 1 people found the following review helpful". Nie spodziewałem się tak szybkich reakcji.

Skoro wszedłem w nastrój na czytanie książek poprosiłem o kolejne z Apressu:
Nie trwało długo, zanim otrzymałem odpowiedź z Apressu od Cheryl Martinez (osoba odpowiedzialna za kontakty z JUGami):

Thanks so much Jacek! What a great review. We will indeed have the books you requested out to you soon.

Zdaje się, że Groovy i Grails nie opuszczą mnie tak prędko, czego sobie i Wam życzę ;-)

Jeden konkurs minął, a zaczął się kolejny - Bloger Roku 2008. Ten będzie trochę tańszy, bo nie wymaga żadnych SMSów, tylko 3 sekundy Twojego czasu. Wchodzimy na stronę konkursową dla Notatnika (niestety bez potwierdzenia, że faktycznie na niej jesteście!), wpisujemy poprawny adres email i OK. Wdzięczność gwarantowana!

Jeśli jeszcze nie masz planów na 7 marca 2009 (sobota) i będziesz w pobliżu Krakowa warto rozważyć udział w konferencji "dla programistów tworzona przez programistów" - 4Developers. Będzie wiele ciekawych osób (Grzegorz Duda z "Java Underground", Waldemar "Waldi" Kot ze swoim CEPem i Adam Bien, nie zapominając o Nealu Fordzie) , więc i Ciebie nie powinno zabraknąć. Będę i ja z tematem "Zwinne i lekkie aplikacje webowe w Javie z Groovy, Grails i Project Zero". Jest jeszcze trochę czasu, aby podstroić temat i przygotować się na serię pytań, których spodziewam się nie będzie mało. Może warto rozważyć przesłanie mi kilku zawczasu, abym przygotował odpowiedź inną niż "Zapiszę i sprawdzę"? Czekam z niecierpliwością, bo szkoda byłoby powtarzać coś, co wielu dobrze już zna.

Mimo, iż pojawia się jako ostatnia wiadomość, lektura książki "Jak odmienić sposób programowania używając refaktoryzacji" zajęła mi dłuższą chwilę w ostatni weekend. Przyznaję, że nigdy wcześniej nie rozważałem refaktoryzacji jako specjalnego tematu do rozważań - po prostu temat wydawał mi się na tyle integralny w zestawie "narzędzi" programisty, że nie było się czym zajmować. Po prostu był i sądziłem, że wiedza jaką posiadałem była wystarczająca. Właśnie ta książka ukazała mi jak bardzo się myliłem, a w tym całe piękno refaktoryzacji i...prozy Mariusza Sieraczkiewicza. 110 stron czyta się niezwykle przyjemnie dzięki odpowiednio dobranej fabule. Czyta się ją z podobnym zacięciem jak inne książki sensacyjne, w których znajdziemy wprowadzenie do tematu, aby później rozwiązać go bardzo wyrafinowanymi acz prostymi w użyciu metodami. Nie inaczej było w tej książce - (trochę przydługawy) wstęp bodajże przez 2 czy 3 rozdziały, aby w kolejnych pokazać, co w trawie piszczy. Na bazie przykładowej aplikacji Mariusz przedstawia poszczególne kroki w dobrze przemyślanym procesie refaktoryzacji. Jakkolwiek w wielu miejscach, nie popełniłbym tak karygodnych błędów jak krótkie nazwy zmiennych, nieodpowiadające treści nazwy metod, przydługie ify, to nie przeszkodziło to wcale znaleźć w przykładzie wartościowych refaktoryzacji - oczywistych, a wciąż za rzadko stosowanych przeze mnie (zbyt często technika Copy-Paste'a zwycięża). Pora to zmienić i mam świadomość, że książka miała na tą decyzję niemały wpływ. Teraz stałem się wrażliwy refaktoryzacyjnie. Czujcie się ostrzeżeni! ;-)

4 komentarze:

  1. Widzę, że ostatnio idziemy podobnymi ścieżkami...
    Groovy, Grails i podobna tematyka książek :D
    Ponieważ dopadła mnie choroba mam czas aby skończyć "Refaktoryzację" Fowlera, polecam ją szczególnie,ta książka to podstawa jeśli chodzi o refaktoryzację.

    Radek

    PS. Jeszcze brakuje żebyś się zabrał za Scalę i Lifta :)

    OdpowiedzUsuń
  2. Jacek,

    pamiętam jak jakieś dwa lata temu na jednym z projektów rozmawialiśmy o "convention over configuration", o którym to paradygmacie wypowiedziałeś się mniej więcej tak, że to jest dobre dla zabawy, tudzież w fazie rozwoju aplikacji, ale ZDECYDOWANIE NIE w aplikacjach uruchomionych produkcyjnie. Czyżby coś się zmieniło od tamtego czasu?

    OdpowiedzUsuń
  3. CoC (ang. Convention over configuration) może znaczyć wiele rzeczy, a domyślna konfiguracja nie musi odpowiadać...przyzwyczajeniom. 2 lata to kawał czasu i wiele się w tym czasie nauczyłem. CoC jest wartościowe, ale możne być również czynnikiem ograniczającym. Pomysł jednej osoby na CoC nie musi nawet przypaść do gustu innym, więc samo określenie konfiguracji jako domyślnej nie musi oznaczać, że CoC oparty na niej jest właściwe. Z tej perspektywy powiedziałbym, że CoC jest wspaniałe, bo tnie koszty (początkowe) przy rozwoju aplikacji, a jeśli uda się utrzymać CoC bez większych modyfikacji, nawet tnie koszty utrzymania (wdrożenie nowych osób w projekt oparty o CoC to kwestia nauczenia ich raz i wykorzystania w innych projektach korzystających z tego CoCa*). Zmieniło się wiele w moim myśleniu i już Maven był tego powodem. Teraz Grails.

    * Pojawiło się CoCa - brakuje jeszcze Cola ;-)

    OdpowiedzUsuń
  4. Dzięki za polecenie kolejnej książki, i takiej bardziej dla każdego programisty, nie szczególnie Javy

    OdpowiedzUsuń