„Czysty kod” – klasyka w bibliotece programisty

"Czysty kod" powinien leżeć na czystym stole.

Programiści powinni cały czas się rozwijać. Nawet, gdy wydaje im się, że mają umiejętności i wiedzę wystarczające do poruszania się w obecnych projektach, nie powinni na tym poprzestawać i warto, by co jakiś czas poznawali nowe koncepcje, podejścia, języki, frameworki itd. Skoro dotyczy to nawet już zaprzyjaźnionych z fachem koderów (choć „koder” to nie jest ścisłe określenie w tym kontekście – o tym kiedyś indziej), to co powiedzieć o osobach, które dopiero od niedawna na poważnie tworzą aplikacje lub jeszcze nie zdążyli zająć się czymś bardziej rozbudowanym? Oczywiście, oni przede wszystkim potrzebują możliwości rozwoju i jak najwięcej materiałów dostarczających potrzebnych informacji, w tym między innymi zasad pisania dobrego jakościowo kodu. A to zapewnia kultowa pozycja w biblioteczce programisty, czyli „Czysty kod. Podręcznik dobrego programisty” autorstwa Roberta C. Martina.

Ten autor może śmiało być nazwany jednym z guru inżynierii oprogramowania, a w społeczności programistów jest bardziej znany jako Wujek Bob. To osoba tworząca aplikacje od bardzo długiego czasu, który wsławił się wieloma interesującymi i klasycznymi już pozycjami książkowymi, ale także zaznaczeniem swojej obecności przy tworzeniu tzw. Manifestu Agile, który rozpoczął rewolucję w zarządzaniu projektami informatycznymi. Ponadto, to zwolennik (a nawet fanatyk) pisania świetnego kodu, dbania o produkowane oprogramowanie i wnikliwy obserwator tego, co pozwala poprawić jakość źródeł, a co w tym przeszkadza. W umysłach wielu osób pracujących w IT Martin zapisał się właśnie jako autor „Czystego kodu”.

Pozycja ta, jaka sama nazwa mówi, zawiera wskazówki dotyczących różnych technik pozwalających na zwiększenie czytelności kodu, rozszerzalności, bezpieczeństwa oraz pewności, że wszystko działa jak należy. Oczywiście, wiele z tych rzeczy jest przedmiotem niezliczonych artykułów, tutoriali oraz zajęć na kierunkach informatycznych oferowanych przez uczelnie wyższe, ale i tak możemy polecić kupno i okresowe sięganie po dzieło Wujka Boba. Choćby z tego względu, że przedstawiane sposoby nie są jedynie opisane z adnotacją „tak powinieneś/powinnaś robić”, jak to ma miejsce w większości materiałów, ale wszystko jest opatrzone ciekawymi anegdotami, uzasadnieniem, a także konsekwencjami niestosowania się do danej dobrej praktyki. Zdecydowanie nie jest to książka z gatunku tych encyklopedycznych – to nadal poradnik, ale podany w tak przystępnej formie, że niektóre rozdziały można czytać dla zwykłej przyjemności. Choć trzeba przyznać, że nie jest to pozycja dla osób zupełnie początkujących – do pełnego zrozumienia wymagana jest wiedza o programowaniu obiektowym i choćby szczątkowa znajomość różnych technik (nawet, jeśli tylko z nazwy).

Sercem książki są przykłady, w tym jeden duży, na podstawie którego objaśniany jest sposób analizy i stopniowej poprawy większego fragmentu kodu. To jedna z większych zalet „Czystego kodu” i choć przegląd tego obszernego rozwiązania wymaga wiele uwagi i prawdopodobnie kilku sesji własnej analizy, to naprawdę warto się tego podjąć i podchwycić sposób myślenia dojrzałego programisty. Wszystkie (lub prawie wszystkie) fragmenty kodu są podane w Javie, natomiast nie trzeba być specjalistą w zakresie tego języka, aby zrozumieć idee przedstawiane przez autora – wystarczy wcześniej wspomniana znajomość obiektowości i podstawowe obeznanie w choć jednym „klamerkowym” języku wysokiego poziomu. Swoją drogą, warto do tego się przyzwyczaić, gdyż w wielu pozycjach zarówno literaturowych, jak i internetowych, wiele zasad dotyczących inżynierii oprogramowania są i prawdopodobnie jeszcze przez długi czas będą podawane w Javie. Dzieje się tak ze względu na przejrzystość i powszechność tej technologii, choć niektórzy mogliby się oburzyć, że istnieją inne, również spełniające te kryteria języki. Wróćmy jednak do tematu wpisu.

To wszystko nie oznacza, oczywiście, że opisywana książka zawiera jedyną słuszną prawdę, której nietrzymanie się sprowadza na nas kłopoty. W niektórych przypadkach (szczególnie w kontynuacjach „Czystego kodu”) można odnieść wrażenie, że Wujek Bob forsuje idealistyczne podejście rodem z akademickiej inżynierii oprogramowania, które w wielu miejscach jest bardzo trudne w zastosowaniu w prawdziwym biznesie, gdzie do głosu dochodzą również ograniczenia finansowe, czasowe czy ogólnie zasobowe. Tym niemniej, o jakość kodu też trzeba dbać, gdyż największy koszt zarówno dla zespołu, jak i klienta leży właśnie w utrzymywaniu oprogramowania i trudności późniejszych zmian. Dlatego książka Martina jest godna polecenia każdemu programiście, choćby jako przypomnienie, że dobrego fachowca poznaje się nie tylko po tym, że coś działa poprawnie, ale też czytelności i możliwości rozwoju kodu.

Tagi: , , ,

mindseater