SC2011 – Wrażenia

Kilka wrażeń po konferencji Software Craftsmanship 2011.

How Object Oriented Are You Feeling Today?

Krzysztof Jelski

Najpierw o mojej sesji „How Object Oriented Are You Feeling Today?”. Przypomnę, że polegała na wykonaniu prostego zadania programistycznego przy stosowaniu się do 9 zasad, wymuszających obiektowość kodu:

  1. Use only one level of indentation per method
  2. Don’t use the else keyword
  3. Wrap all primitives and strings
  4. Use only one dot per line
  5. Don’t abbreviate
  6. Keep all entities small
  7. Don’t use any classes with more than two instance variables
  8. Use first-class collections
  9. Don’t use any getters/setters/properties

Pomysł na ćwiczenie zaczerpnąłem z eseju Jeffa Baya „Object Calisthenics”. Jako zadanie do rozwiązania wybrałem obsługę osobistego konta bankowego (wpłaty, wypłaty, saldo, wyciąg…).

Bardzo pozytywnie zaskoczył mnie poziom uczestników! Szacuję, że było ich około siedemdziesięciu. Wszyscy pracowali w parach i stosowali TDD. Większość programowała w Javie, kilka osób w C# i w Rubim.

Uczestnicy, od których dostałem informacje zwrotne, byli bardzo zadowoleni, jeśli programowali w Javie. Rubistom się nie podobało. Przyznaję, że nie próbowałem zrobić tego ćwiczenia w Rubim. Wyszedłem z założenia, że wyjdzie podobnie w dowolnym języku obiektowo zorientowanym. Wygląda jednak na to, że 9 zasad z „Object Calisthenics” z jakichś powodów nie pasuje do Rubiego. Chętnie kiedyś sam spróbuję.

Dla zainteresowanych przeprowadzeniem podobnej sesji link do slajdów.

Functional Programming

Micheal Feathers

Steve Freeman namówił Micheala Feathersa na poprowadzenie dodatkowej, nie ujętej w programie konferencji sesji. Była poświęcona programowaniu funkcyjnemu. Micheal pokazywał fragmenty kodu napisanego w stylu funkcyjnym, głównie w Rubim, jeden w Haskellu. Nie byłem świadomy, że Ruby ma zupełnie przyzwoite wsparcie do programowania funkcyjnego. Micheal nazwał moduł Enumerable „funkcyjnym DSL-em”.

Wywiązała się też ciekawa dyskusja na temat czytelności kodu. Gdy programujemy funkcyjnie, kod jest bardzo zwarty. Jednak czy jest czytelny, gdy np. zawiera dwie zagnieżdżone operacje map? Ciekawy kod, ciekawe dyskusje. Sesja zmotywowała mnie do poszerzenia mojej wiedzy o programowaniu funkcyjnym.

Lean Code Challange

Chris Parsons

Następna sesja, w której wziąłem udział, to Lean Code Challange, która prowadził Chris Parsons. Tworzyliśmy program, który działa „na kasie” i wylicza, ile klient ma zapłacić, uwzględniając m. in. aktualne promocje. Pracowaliśmy w parach (a ja nawet w trójce). Dowcip polegał na tym, że tworzyliśmy kod w 10-minutowych iteracjach, a rzeczywistość biznesowa zmieniała się z iteracji na iterację (a czasem nawet w trakcie). I tak np. wymaganie się pojawiało, by w następnej iteracji zniknąć; przy

kłady podawane przez klienta nie były kompletne.

Celem warsztatów było patrzenie na tworzenie kodu z perspektywy Lean, co dla mnie sprowadzało się do obserwowania, które elementy procesu są wasteem, czyli nie przynoszą wartości biznesowej. Przyznaję, że takich elementów w naszym procesie nie zauważyliśmy. Na pewno zaowocowało pisanie testów – kilka razy pozwoliły nam bezpiecznie zrobić spore zmiany w kodzie. Nie udało się nam ocenić refaktoryzacji – ze względu na presję czasu refaktoryzowaliśmy tylko wtedy, gdy skończyliśmy funkcjonalność, a został jeszcze czas do końca iteracji. Z punktu widzenia tego ćwiczenia trudno powiedzieć, czy to pomagało nam w przynoszeniu wartości klientowi.

Personal Codes of Conduct

Matt Williams

Tu już bez kodowania, tylko prezentacja i dyskusja. Matt mówił o osobistych kodeksach etycznych programistów. Wychodząc od kodeksu lekarskiego, szukał sposobów na stworzenie podobnych zasad w swojej praktyce programisty. Temat na czasie, co pokazuje choćby ukazanie się nowej książki Wujka Boba: The Clean Coder.

Podsumowując…

przyjemnością było dla mnie przebywanie w gronie pasjonatów tworzenia oprogramowania. Poprowadzenia własnej sesji dało mi dużo satysfakcji i wzmocnienia pewności siebie. No i Bletchley Park to wspaniałe miejsce na konferencję.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *