czwartek, 26 listopada 2009

Zasada dobrego harcerza

Witam!

Przeglądając blogi polskiej społeczności Javowej natknąłem się ostatnio na bardzo ciekawy wpis na blogu Piotra Paradzinskiego - IT Researches mówiący o dobrych cechach programisty. Pojawiło się tam pojęcie "Zasady dobrego harcerza" (ang. "The Boy Scout Rule"). Mówi ona o tym, byśmy pozostawiali miejsce naszego pobytu w stanie lepszym, niż je zastaliśmy. Oczywiście można tą zasadę zastosować do naszego codziennego życia programisty. Przykładowo, gdy korzystamy z jakiegoś modułu/biblioteki, postarajmy się ją trochę poprawić: czy to przez poprawienie/dopisanie dokumentacji, czy to przez poprawniejsze/bardziej intuicyjne nazwanie zmiennych etc. Sam często łapię się na tym, że jak po raz któryś korzystam z wcześniej napisanego kawałka kodu staram się go ulepszyć, bo znam już jego słabsze strony. Dzięki temu w późniejszym czasie pracuje mi się z nim łatwiej i przyjemniej i żyje w przekonaniu, że jest mniej awaryjny. Nie mówimy tu o drastycznych zmianach, tylko takich małych, które nie zabiorą nam zbyt wiele czasu a przyniosą w przyszłości znaczne korzyści.

Szersze omówienie tematu można znaleźć na stronie O'REILLY commons.

Pozdrawiam, Łukasz

środa, 11 listopada 2009

Eclipse and Java Using the Debugger

Witam!

"Eclipse and Java Using the Debugger" jest trzecim z rzędu video tutorialem, który przerobiłem z serii "Eclipse And Java: Free Video Tutorials". Mimo iż w często się słyszy, że Debuggera nie powinno się używać, a zamiast tego powinno się pisać testy jednostkowe (o czym mam nadzieję napisać coś więcej w przyszłości) to jednak wydaje mi się, że początkujący programista powinien poznać to narzędzie. Osobiście długo unikałem wszelkiej maści debuggerów (C, C++, C#), ale nie można przed tym wiecznie uciekać :)

W kursie, o którym mowa, zawarto wiele podstawowych informacji. Czasem ma się wrażenie, że prowadzący narzuca zbyt wolne tępo, ale może to wynikać z mojej przerwy w kursie i dłuższej już pracy z Eclipsem. Jednak jak sam się na własnej skórze przekonałem warto przeczekać "wolniejsze momenty", bo bardzo łatwo może nam coś umknąć i potem będzie trzeba szukać tego po całym filmie. Tutorial jest podzielony na dwie części:
  • podstawy (odcinki 1 - 4)
  • techniki zaawansowane (5 - 7)
Z pierwszej części co warto sobie zanotować (przyswoić) na przyszłość to na pewno skróty klawiaturowe:
  • Ctrl + R = Run to line - wykonuje wszystkie instrukcje między aktualną pozycją a pozycją kursora,. Dzięki temu nie musimy używać wielu breakpoint'ów, wystarczy przejść w odpowiedni kawałek kodu i przeskakujemy nie interesujący nas w danej chwili fragment programu
  • Alt + Shift + Up - zaznaczenie kolejnego elementu kodu
  • Alt + Shift + Down - odznaczenie kolejnego elementu kodu

Z istotnych własności debuggera warto pamiętać, że gdy wykonamy jakieś zmiany na kodzie, który aktualnie debuggujemy, Eclipse automatycznie zrestartuje aktualną sesję z nową wersją kodu.

Ostatnią bardzo ciekawą i przydatną funkcją tego narzędzia jest "Drop to frame". Zawsze zastanawiałem się, dlaczego nie zaimplementowano żadnej opcji powracania do wcześniejszego stanu sesji, zamiast restartowania sesji i przechodzenia wszystkich kroków od nowa? Otóż okazuje się, że w obrębie danego bloku możemy powracać do kodu, który już się wykonał (a przez to przywracać wcześniejszy stan aplikacji). W tym celu zaznaczamy przechodzimy kursorem w wybrane miejsce i naciskamy przycisk "Drop to frame" (obok pozostałych przycisków pozwalających sterować przebiegiem procesu debuggowania). W tym momencie wszystkie zmienne zostaną zmienione do stanu wcześniejszego, a my możemy w bardzo szybki i wygodny sposób przeanalizować ponownie wybrany fragment kodu.

Część zaawansowana tutorialu trochę mnie zawiodła. Oczywiście pojawiły się ciekawe informacje jak np. Hit Count, Conditional Breakpoint, Watchpoints, czy akternatywne JRE przeznaczone z myślą o debuggowaniu i umożliwiające śledzenie działania metod systemowych (na przykładzie LinkedList). Jednakże ostatnie dwie lekcje (o referencjach do obiektów oraz metodach rekurencyjnych) były nużące i poza niewielką liczbą informacji o debuggerze opiewały samą Javę i jej cechy. Oczywiście jest to tutorial nie tylko do Eclipse, ale także do samej Javy, lecz uważam, że takie lekcje powinny się znaleźć w innym kursie.

Ogólnie kurs oceniam na 7/10. Mogłoby być lepiej, ale i tak nie uważam czasu nad nim spędzonego za zmarnowany i polecam przejrzenie go każdemu, kto jest nowy (i nie tylko) w Eclipse.

Warty zaznaczenia jest fakt, że prowadzący korzysta z Eclipse w wersji 3.3. W najnowszej wersji Galileo istnieją pewne różnice w interfejsie, lecz sama funkcjonalność pozostaje niezmieniona.

Na koniec stadardowo garść linków:

Pozdrawiam, Łukasz.

Reaktywacja i zmiany na blogu

Witam serdecznie po sporej przerwie!

Wiele się działo przez ostatnie trzy miesiące. Wielu rzeczy się nauczyłem, wiele rzeczy poznałem i wiele rzeczy się wydarzyło. Niestety w tym całym natłoku zajęć nie starczyło czasu na rozwijanie bloga, a szkoda. Teraz nadszedł czas, by to wszystko naprawić.

Zaczynamy od zmienionego wyglądu bloga! Wiem, że to niewiele i że styl nie jest doskonały, ale tak to jest, gdy korzysta się z gotowych szablonów i nie ma się czasu/umiejętności na ich dostosowywanie. Osobiście skorzystałem z serwisu Blogger Templates. Ale i tak efekt jest znacznie lepszy niż przy poprzedniej szacie graficznej. Wraz z nowym szablonem dodałem nowy moduł - "Subskrybuj", który osobiście bardzo lubię na innych blogach, a który znacznie ułatwia zarządzanie kanałami RSS/Atom.

Na razie to tyle zmian. Przyszedł czas na zapoznanie się dokładne z Debuggerem Eclipse'a ("Eclipse and Java Using the Debugger") i o tym właśnie będzie kolejny wpis.

Pozdrawiam!