TDD is dead czyli telenowela dla jajogłowych

lodowka

David H Hannson, autor Ruby on Rails opublikował artykuł: http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html no i poszło… mleko się rozlało. Burza większa niż o sosnę (tą rozdartą – nie o brzozę, brzozy są niepolityczne).

tdd

Uncle Bob napisał http://blog.8thlight.com/uncle-bob/2014/05/11/FrameworkBound.html ale jak wieść gminna niesie to jest wersja politycznie poprawiona bo czyjeś uczucia religijne zostały obrażone – oryginalna wersja jest jeszcze w feedly i/lub cache googla. Generalnie wydarzyło się to tak szybki, że zanim przeczytałem artykuł to był już zmieniony – dobrze że koledzy z zespołu mi o tym powiedzieli bo dzięki nim przeczytałem oba te teksty.

Potem wielka debata Is TDD Dead z Martinem Fowlerem, Kentem Beckiem i Davidem Hannsonem, o której chyba pół internetu grzmiało (https://plus.google.com/events/ci2g23mk0lh9too9bgbp3rbut0k).

Następny odcinek czyli DHH problem http://codon.com/the-dhh-problem

W pracy pół poniedziałku TDD i tego samego dnia polska grupa celebryto.netowa wciągnęła się w telenowelę.

learn to use tdd

Co będzie dalej, gdzie ta telenowela się skończy? Podobno – znowu wieść gminna niesie że w 4 odcinku debaty Fowler – Beck – Hannson ma się okazać, że DHH jest synem (lub ojcem) Uncle Bob-a.

lodowka

Ci co oglądali South Park i pamiętają odcinek z piekłem i niebem wiedzą, że prawidłowa odpowiedź przyjdzie po śmierci (spoiler:  mormoni). Dla mnie na tą chwilę faktem jest to, że TDD jest trudne do ogarnięcia, ale nie trudne w podstawach bo te są łopatologicznie proste. Można je ogarnąć w kilka godzin czy dni. Problem jest taki, że wymaga to olbrzymiej determinacji od programisty oraz ciągłego trzymania się metodyki. Linijka po linijce, kawałek po kawałki dzień po dniu nabierać trzeba doświadczenia w TDD. Dzięki temu już po kilku latach jest szansa, że będziemy mieli wyczucie, kiedy używać TDD a kiedy nie, kiedy pisać wór testów na jedną mała klasę a kiedy napisać 5 testów na wór klas. Unit Testing testuje UNIT czyli jednostkę – jednostka to nie 1 klasa  czy 1 metoda, to może być zbiór klas. Żeby to czuć, kiedy iść w tą a kiedy w inną stronę to trzeba mieć dużo doświadczenia. Wydaje mi się, że czuję to, po ponad 4 latach z TDD (w różnym natężeniu), wydaje mi się, że to potrafię mimo, że jest jeszcze masa do nauczenia przedemną. Jedno jest pewne, TDD nie tworzy architektury i jej nie polepszy. TDD jedynie może zdegradować architekturę jeśli postawimy ołtarzyk tej metodyce. TDD to świetne narzędzie, które wymaga wprawy i umiejętności użycia.

Wg. mojej percepcji świata, TDD to przyszłość, to potężna umiejętność i warto w to inwestować. Jeśli mam rację to super, bo wszyscy przeciwnicy TDD odpadną z rynku i będzie jeszcze więcej miejsca. Jeśli się mylę, no cóż, zawszę mogę usunąć testy i wrócić do mozolnego „przeklikiwania” kodu lub zostać skrytym anonimowym tdd-owcem. Życie pokaże. Tymczasem czas iść do lodówki i mieć nadzieję, że telenowela tam nie zawitała, mieć nadzieję, że ostatni bastion spokoju u chłodu ostał się.

Windows 8 Pro za darmo !!!!

IMG_20140423_212429

Majowy weekend w pełni, słońce grzeje, pełen relaks. Microsoft podobno ma wydać Windows-a 9 zupełnie za darmo. Wydaje się to prawdopodobne skoro Windows Phone ma być za darmo dla urządzeń z xx” poniżej ileś tam.

Wszystko fajnie ale po co czekać. Zgarnij darmowego Windows 8 Pro już dzisiaj.

a Rafflecopter giveaway

Disclajmer: losowanie tylko dla uczestników z Polski – nie chcę wysyłać za granicę. Wartość nagrody – 1zł. Tyle zapłaciłem za pudełko. Jeśli ktoś ma z tym problem – proszę o kontakt, kopia faktury do wglądu.

Aktualizacja: Sprawdziłem dokładnie pudełko – to jest Uaktualnienie do systemu Windows 8 Pro (Win PRO 8 32-bit/64-bit Polish VUP DVD). Jeśli kogoś wprowadziłem w błąd – przepraszam.

Aktualizacja2:
Zwycięzcą został Krzysztof Gratuluję.

100 dni kodowania

4794175682_d6666c504b_z

Założenia:

codziennie przez 100 dni będę pisał kawałek kodu

kod musi zostać opublikowany na GitHub-ie

zmiana musi mieć jakąś wartość – nie liczy się commit  z samymi zmianami nazw

wszędzie gdzie to możliwe, nowy kod powinien wprowadzać zmianę w interfejsie użytkownika (bądź api)

kod pisany w pracy się nie liczy (nie leci do GitHuba)

minimum 30 minut kodowania

Historia:

Jakiś czas temu dostałem link do bloga John-a Resig-a – tego który jest ojciem jQuery gdzie opisuje swoje 180 dni z pisaniem kodu – CODZIENNIE. Zainspirowała go Jennifer Dewalt,  która w ramach nauki postanowiła przez 180 dni tworzyć strony www. Stwierdziłem, że dlaczego by samemu nie spróbować. No i tak postanowiłem codziennie kodować. Do podobnego projektu podchodziłem ale w fotografii – 365 zdjęć, codziennie minimum jedno zdjęcie. Niestety nie udało się wytrwać, dlatego do obecnego projektu zmieniłem założenia, 100 dni (a jak się uda przeżyć 100 to 180) – tyle musi się udać. Na dzień dzisiejszy jestem na dniu 14-stym, jest ok, jest moc, trzeba pomyśleć co się napisze, trzeba to dobrze zaplanować bo w ciągu tygodnia jakoś łatwiej idzie ale  weekend muszę dobrze zaplanować kiedy i co napiszę aby spełnić wymagania.

Trzymajcie kciuki, aby się udało.

 

Aktualizacja:

  • Verbalizer - zamiana liczby całkowitej na słownie (aktualnie wspiera wartości do milionów), C#
  • FizzBuzz - przykładowa aplikacja webowa z odseparowanymi warstwami, ASP.NET MVC5 + AngularJS + Autofac + WebApi2
  • BreakOut - pierwsze eksperymenty z Unity w celu zbudowania klasyka – Breakout – teraz wiem, że powstanie z tego coś zupełnie innego, Unity + X
  • Mono - eksperymenty z mono, czyli czy to w ogóle działa, czy działa na tym Nancy i pewnie jeszcze kilka innych rzeczy, do tej pory Mono, Nancy
  • X - Eksperymenty z czymś o czym za bardzo jeszcze nie mogę mówić (NDA) ale mam nadzieję, że niedługo będę mógł udostępnić filmik, repo już jest na githubie ale ciągle jeszcze mocno prywatne.

 

foto: Rodrigo Denúbila

Połowę czasu spędzamy w pracy

We wpisie o sprzeczności interesów pracodawca-pracownik napisałem, że spędzamy połowę życia w pracy.  Zakładając 8h snu pozostaje 16h “świadomego życia” z tego 8h w pracy ale przecież od poniedziałku do piątku, i jeszcze są święta no i urlop – jak wyliczył Paweł 250 dni pracujących – 26 dni urlopu (do tego jeszcze możemy mieć 2 dni opieki etc). Wszystko się zgadza…

… z tą drobną różnicą, że praca to nie 8h. Do tego trzeba doliczyć czas dojazdu – w obie strony. Czyli jeśli wyjście z domu, odpalenie samochodu, przetransportowanie się do firmy oraz zaparkowanie zajmuje tylko 30 minut w jedną stronę, to tak naprawdę czas pracy to 9h (zakładam, że trzeba jeszcze wrócić). W tygodniu to dodatkowe 5h z życia wyjęte. Co więcej, transport kosztuje, czy to czas jeśli idziemy pieszo, czy czas i pieniądze jeśli jedziemy autobusem/autem/rowerem. Jeśli używasz jakiegokolwiek środka transportu to ten środek transportu wymaga pieniędzy – paliwa, przeglądów, napraw – i to są dodatkowe koszty na które trzeba zapracować. Czyli albo pracujemy 8h ale część tego czasu poświęcamy na opłacenie kosztów dojazdu albo pracujemy więcej.

Praca zawodowa to nie wszystko!

Niezbędną pracą, którą musimy wykonywać regularnie to również zakupy, sprzątanie, mycie i wszystko to co jest związane z obsługą samych siebie i rodziny. Policz ile czasu poświęcasz tygodniowo na zakupy, chodzenie do urzędów, lekarzy i innych placówek, które trzeba odwiedzić. W skali roku nazbiera się tego całkiem sporo. Jak to zebrać wszystko razem to obawiam się, że z tego świadomego życia  połowa chyba nawet nie wychodzi. Ilość rzeczy, które na prawdę musimy zrobić jest spora więc ważne aby pozostały czas wykorzystywać bardzo rozsądnie, w końcu mamy go niewiele – bardzo niewiele.

Jak sobie z tym poradzić?

Hm….. nie pchać się w bezsensowne aktywności, które marnują nasze zasoby a nie wzbogacają nas zbytnio. To co MUSIMY MUSIMY ograniczać w miarę możliwości do minimum i…… no właśnie, co jeszcze?