Saturday, March 1, 2014

Clean Coders Episode 9 - The Single Responsibility Principle


Po ostatnim odcinku wprowadzającym ogólnie do zasad SOLID na pewno nie mogliśmy doczekać się przejścia do konkretów. Takie miało być spotkanie nr 9 z Robertem Martinem gdzie mieliśmy dowiedzieć się czegoś o zasadzie pojedynczej odpowiedzialności. Na DMCS zjawiło się około 30 osób.

Nawet nasz gość czyli Pan Kacper z firmy Sii był ciekaw jak wyjaśni tę zasadę Robert Martin. Potem przystąpił do prezentacji firmy.

Na spotkanie przyszło kilka nowych twarzy, być może przyciągnęło ich pojawienie się nowej firmy na JUGu? Natomiast od samej firmy usłyszeliśmy, że stawiają na rozwój własnych pracowników. Potwierdziła to Pani Ula z HR.

Do pomocy ruszył nawet Krzysztof Telka, pojawiający się regularnie na JUGu, który pracuje w Sii i przekonywał, że w firmie nie ma prawie biurokracji.
Rozmowa o firmie przeciągnęła się ponieważ pojawiło się wiele pytań ze strony publiczności m.in. o widełki płacowe na stanowisku Senior Java Developer.

Wujek Bob jak zwykle zaczął od lekcji fizyki i opowieści o dokonaniach Einsteina i o tym, że czas jest zakrzywiony. Po dość długiej tej części jednak przeszedł do opowiadania o zasadzie SRP na przykładzie klasy opisującej pracownika.

Opisał na czym polegają role, kto jest użytkownikiem, jak na tej podstawie znaleźć odpowiedzialności w systemie. Później mówił o tym co jest wartością oprogramowania. Ci co oglądają wszystkie odcinki na pewno spodziewali się odpowiedzi. Otóż wartość oprogramowania to nie tylko to w jaki sposób spełnia obecne potrzeby użytkowników, ale to z jaką łatwością może dostosować się do nowych wymagań użytkowników. A te z pewnością zmienią się.

Na koniec Robert Martin pokazał przykład w jaki sposób napisał program MasterMind. Najpierw mówił o architekturze, potem pokazał diagramy a na koniec zrobił demo. To wszystko było jednak prowokacją ze strony trenera, bo przedstawił to w klasycznym podejściu waterfall. Tak naprawdę Robert Martin przyznał zaczął od testów i gdy miał 90% kodu, to zauważył architekturę, zrobił dla niej diagram, który pokazał jako przemyślaną najpierw architekturę!

Jak sam dodatkowo przyznał najlepszy moment na tworzenie dokumentacji to sam koniec projektu!

Dla chętnych była praca domowa do przeanalizowania -jak Robert Martin rozwiązał MasterMinda http://dl.dropbox.com/u/4730299/MasterMind.zip

Podczas tego epizodu mieliśmy polski akcent w postaci Wujka Boba w toalecie ze znajomymi napisami.

Jeszcze ostatnia rzecz na która zwróciłem uwagę to kiedy Wujek zaczął opowiadać w jaki sposób rozwiązałby problem od którego zaczęliśmy ten odcinek (klasa Employee, raportowanie, zapisywanie do bazy, wyliczanie pensji). Pokazał 3 rozwiązania (m.in. fasadę), ale każde miało jakieś wady. Umiejętność wyboru najlepszego zastosowania nazwał pan Martin inżynierią oprogramowania. A to, że za każdym razem musimy podejmować decyzję przypomina mi Decisions Decisions Dana North-a.

Za 2 tygodnie kolejny odcinek - Open Closed Principle. Spotkanie będzie sponsorować Symphony Teleca. Zapraszam na meetupa.

2 comments: