1 lutego 2010
Aktualnie czytam “Clean Code” Roberta Martina, więc pewnie pojawi się jeszcze kilka postów związanych z tą książką
Właśnie skończyłem czytać rozdział 6 i chciałbym tutaj zamieścić tłumaczenie podsumowania tego rozdziału.
Obiekty prezentują zachowania (funkcje) i ukrywają dane – to sprawia, że łatwo jest dodawać nowe rodzaje obiektów bez potrzeby zmiany zachowań (funkcji) istniejących obiektów. Kolejną konsekwencją jest to, że trudniej jest dodać nowe zachowanie do istniejących obiektów (wszystkie obiekty muszą się zmienić).
Struktury danych prezentują dane i nie mają żadnego znaczącego zachowania (funkcji). To sprawia, że łatwo jest dodać nowe zachowanie obsługujące istniejące struktury danych, ale trudniej dodać nowe struktury danych (bo wszystkie funkcje muszą się zmienić).
W każdym systemie będziemy chcieli czasem mieć elastyczność w dodawaniu nowych typów danych, więc wybierzemy obiekty dla tej części systemu. Kiedy indziej, będziemy chcieli łatwości w dodawaniu nowych funkcji i dla tej części systemu wybierzemy struktury danych i procedury. Dobry inżynier oprogramowania rozumie powyższe sprawy i bez uprzedzeń wybiera podejście, które najlepiej rozwiąże dany problem.
Co wy na to? Sam muszę to przemyśleć, na razie sugerowanie użycia struktur danych i procedur
wydaje mi się trochę podejrzane, ale z drugiej strony? ..
Zaszufladkowany do Programowanie | Brak komentarzy »
29 stycznia 2010
Jak pisać dobry kod? 
W TDD pracujemy w cyklach RED GREEN REFACTOR. Kiedy pierwszy raz spotkałem się z tym podejściem jednym z problemów było znalezienie odpowiedzi na pytanie: “Co i jak poprawiać w kodzie?“.
Jeśli też stawiasz sobie te pytanie, polecam Ci książkę Clean Code – można się z niej dowiedzieć wiele przydatnych rzeczy.
Tutaj znalazłem podsumowanie rozdziału 17, gdzie zebrane są wszystkie “heurystyki” i “brzydkie zapachy” związane z kodem.
Napisałem prościutki plugin do Eclipsa, który wyświetla listę tych heurystyk w okienku, dając nam możliwość sprawdzenia naszego kodu pod kątem tych heurystyk (oczywiście najpierw trzeba je znać i rozumieć) – taka ściągawka. Jeśli jesteś ciekawy tego pluginu, daj znać na maila lub w komentarzach, wyśle Ci
Zaszufladkowany do Programowanie | Brak komentarzy »
25 stycznia 2010
Ciekawy artykuł o programowaniu w parach (którego jestem zwolennikiem).
Streszczenie treści.. Programowanie w parach działa bo:
- Kiedykolwiek “oświeciło” cię samo zadania komuś pytania? Podobny efekt występuje podczas rozmów programistów w czasie programowania w parach.
- Kojarzysz eksperyment z liczeniem piłek do kosza?*. Często nie widzimy tego, czego nie szukamy lub co nie wydaje nam się być istotne (uliczni magicy korzystają z tego od dawna). Gdy pracujemy w parze i popełnimy błąd (ale go przeoczymy) jest duża szansa, że nasz partner go wychwyci.
- Para nawzajem się nakręca w korzystaniu z dobrych praktyk. Piszemy testy, refactorujemy bo inaczej “zawiedziemy” partnera. Poza tym, partner sam z siebie będzie wywierał pozytywną presję. A dlaczego korzystamy ze złych praktyk? Np można powiedzieć, że code & fix jest podobne do grania na jednorękim bandycie. Jednoręki bandyta to jedna z najbardziej uzależniających gier w kasynie.
- Zespół wymienia i dyskutuje doświadczenia.
* Jeśli nie kojarzysz tego eksperymentu, obejrzyj ten filmik http://viscog.beckman.illinois.edu/flashmovie/15.php. Możesz go zobaczyć tylko raz, twoim zadaniem jest policzyć ile razy piłka została podana pomiędzy uczestnikami w białych koszulkach. Gdy już będziesz znał wynik, odwiedź tą stronę http://free.mailinfo.com/web/reality/step2.htm.
Zaszufladkowany do Agile | Brak komentarzy »
22 stycznia 2010
Książką, którą mogę polecić jest The Five Dysfunctions of a Team: A Leadership Fable.
Opisuje ona model problemów, które mogą zaistnieć w zespole, który wydaje mi się bardzo sensowny.

Model ten omawia 5 problemów, przy czym z problemu na poziomie niższym wynikają problemy na poziomach wyższych i mamy tak (od dołu do góry)
- Brak zaufania
- Obawa przed konfliktem
- Brak zaangażowania
- Unikanie odpowiedzialności (również chodzi o zwracanie uwagi innym)
- Nieprzejmowanie się wynikami
Książka w bardzo przystępny sposób opisuje te zagadnienia (historyjka) oraz daje wskazówki jak sobie z nimi radzić. Polecam
Zaszufladkowany do Ciekawostki | Brak komentarzy »
21 stycznia 2010
Właśnie przeczytałem stary wpis znaleziony na blogu Joel on Software.
Wpis daje parę przykładów tłumaczących “prawo przeciekających abstrakcji”. Chodzi mniej więcej o to, że mimo iż korzystamy z abstrakcji, to by poradzić sobie w trudnych sytuacjach ciągle musimy rozumieć mechanizmy, które kryją się za abstrakcją.
All non-trivial abstractions, to some degree, are leaky.
Wszystkie nie trywialne abstrakcje, do pewnego stopnia przeciekają.
Np abstrakcja TCP pretenduje, że można coś przesłać przez sieć w sposób, który gwarantuje dostarczenie. Jednak TCP jest zbudowane przy użyciu protokołu IP, który takiej gwarancji nie daje. Korzystając z TCP możemy się więc spotkać z sytuacją, że coś nie zostaje dostarczone, żeby zrozumieć czemu musimy sobie zdawać sprawę z istnienia IP.
Zaszufladkowany do Programowanie | Brak komentarzy »
20 stycznia 2010
Podczas letniej praktyki miałem okazję wypróbować ciekawą technikę zarządzania czasem, do której ciągle sięgam.
Technika jest bardzo prosta.
- Ustal co chcesz zrobić i nastaw timer na 25 minut.
- W czasie tego 25 minut intensywnie pracuj (wyłącz poczte, gg, poproś aby Ci nie przerywano).
- Po upływie 25 minut nastaw timer na 5 minut przerwy.
- W czasie przerwy, zajmij się czymś zupełnie nie związanym z pracą. Kawa, toaleta, spacer po biurze.
- Zrób 4 takie cykle. Po 4 cyklu przerwa powinna być dłuższa, np 20 minut.
Prawda, że proste?
Strona na której można dowiedzieć się jeszcze więcej.
Przeczytaj resztę tego wpisu »
Zaszufladkowany do Agile, Ciekawostki | Brak komentarzy »
19 stycznia 2010
Właśnie wróciłem ze spotkania lokalnej grupy agile.. Temat: Why scrum works while implemented properly?
Było bardzo fajnie, a ja chciałbym zwrócić tu uwagę tylko na jedną kwestię
Agenda spotkania:
- 1800-1900 prezentacja
- 1900-2000 pytania, rozmowy, itp.
A jak było naprawdę?
- Start spotkania 1810 osobiście uważam, że to wysyła zły sygnał – można się spóźniać
- Koniec spotkania 2140 uważam, że to trochę za późno, ja jestem bardzo zmęczony
Bardzo ciekawy był też przebieg prezentacji.. Mówcom co kilka slajdów przerywano i toczyła się bardzo żywa dyskusja. Uważam, że to było świetne! Miałem okazję wysłuchać dużo ciekawych historii i punktów widzenia i działo się to w bezpośrednim sąsiedztwie tego co działo się na slajdach. Fajnie by było, gdyby ta forma została zachowana na kolejnych spotkaniach
Jedyne co proponuje zmienić to dodać: “Kończymy o 2100, jest OK nie wyrobić się ze wszystykimi slajdami, trudno..” Slajdy można wrzucić na www i umożliwić ich komentowanie.
To tyle spostrzeżeń na świeżo
Zaszufladkowany do Agile | 2 komentarzy »
19 stycznia 2010
Właśnie dowiedziałem się o nowo powstałym magazynie agileowym – Agile Record.
Pierwszy numer można pobrać za darmo stąd.
Czy warto? Jeszcze nie miałem czasu się przyjrzeć, na pewno napiszę coś więcej później.
Właśnie miałem okazje przeczytać pierwszy artykuł “Be the worst”. Polecam, mi się podobał. Myśl przewodnia: “Otaczaj się ludźmi od których możesz się uczyć”
Zaszufladkowany do Agile | Brak komentarzy »
18 stycznia 2010
Wczoraj rano zainteresowałem się Android SDK.
Napisanie Hello World okazało się szybkie i przyjemne (dobra integracja z Eclipsem).
Gdy znajdę więcej czasu to może napiszę jakąś prostą aplikację. Kilka pomysłów mam
Aplikacje można publikować na Android Market
Zaszufladkowany do Programowanie | Brak komentarzy »
18 stycznia 2010

Właśnie kończę czytać Agile Coaching. Bardzo podoba mi się ta książka i mogę ją polecić każdemu, kto jest zainteresowany niesieniem pomocy zespołowi jako trener.
Jedną z ciekawostek znalezionych w tej książce jest http://toastmasters.org/
ToastMasters jest to społeczność, która organizuje spotkania na których ćwiczy publiczne przemawianie. Istnieje grupa we Wrocławiu i mam zamiar dowiedzieć się czegoś więcej na ten temat. Myślę, że pojawię się na następnym spotkaniu
Zaszufladkowany do Agile, Ciekawostki | Brak komentarzy »