Nasza strona używa cookies. Dowiedz się więcej o celu ich używania i zmianie ustawień w przeglądarce. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Jak zostać pragmatycznym programistą?

Bennett Garner Full-Stack Web Developer | Software Engineer / Self-Employed
Poznaj książkę skierowaną do każdego, kto chce zostać dobrym programistą. Dzięki "The Pragmatic Programmer" zmienisz sposób myślenia i nauczysz się pisać lepszy kod.
Jak zostać pragmatycznym programistą?

Jeśli spędziłeś już jakiś czas, pracując lub ucząc się tworzenia oprogramowania, prawdopodobnie słyszałeś o książce-klasyku Pragmatyczny programista. Od czeladnika do mistrza autorstwa Andrew Hunta i Davida Thomasa.

Prawdopodobnie znasz wiele historii i terminów z książki, nawet nie znając ich źródła. Hunt i Thomas wprowadzili w świat debugowania terminy “gumowej kaczuszki” i code Kata. Spopularyzowali także pomysły takie, jak “nie powtarzaj siebie” (DRY) i wczesne iteracje tego, co można nazwać programowaniem zwinnym.

Tak więc prawdopodobnie znasz książkę lub przynajmniej część jej zawartości. Ale czy ją czytałeś?

W tym artykule postaram się wyjaśnić, dlaczego każdy programista, który poważnie myśli o tym, by stać się dobrym w swojej pracy, powinien przeczytać Pragmatycznego programistę.

Podsumuję też niektóre z kluczowych pomysłów z książki, ale ta książka posiada 320 “gęstych” stron na temat tego, jak pisać kod w prawdziwym świecie, więc uwierz mi - naprawdę musisz sam ją przeczytać :)


Sposób myślenia

Można by oczekiwać, że książka o kodowaniu zacznie się od mówienia o kodzie, ale nie tym rozpoczynają Hunt i Thomas.

Zamiast tego przez pierwsze dwa rozdziały mówią o filozofii, psychologii i podejściach do kodowania. I słusznie. Zanim będziesz mógł napisać piękny kod, musisz jasno myśleć, mieć konkretne oczekiwania i wkupić się u ludzi wokół siebie.

Jeśli nie masz solidnych podstaw dotyczących filozofii, komunikacji, celów i podejścia do projektu, prawdopodobnie przedsięwzięcie skończy się bałaganem. Hunt i Thomas ilustrują to wspaniałymi historiami i analogiami. Niektóre myśli ubierają tak:

  • Branie odpowiedzialności za kod, który piszesz i rzeczy, które mówisz, że dostarczysz.
  • Buduj rzeczy, które mogą być krokiem do tego, aby móc prosić o więcej zasobów - metoda stone soup.
  • Dostarczenie dobrego oprogramowania dzisiaj jest często lepsze niż doskonałego oprogramowania jutro, więc kończ i dostarczaj.


Na początku książki zanurzasz się w myślenie o oprogramowaniu z praktycznego punktu widzenia osoby pracującej w zespole, z szefami i interesariuszami. To jest coś, czego trudno nauczyć się gdzie indziej, a dzięki tej książce poczujesz to bezpośrednio dzięki dwóm profesjonalistom z wieloletnim doświadczeniem.

Autorzy napisali o tym, jak myśleć o oprogramowaniu. Ta metaanaliza procesu tworzenia oprogramowania jest tym, co czyni tę książkę tak cenną. Dlatego też ludzie tak często się do niej odwołują.


Narzędzia

Czy z całą tą metaanalizą w świadomości, na pewno jesteśmy gotowi zacząć mówić o kodzie? Nie tak szybko! Każdy dobry rzemieślnik wie, że kiedy już zrobisz plan, nie od razu zaczynasz pracować. Po pierwsze, musisz przygotować swoje środowisko i narzędzia.

Ostrz piłę to klasyczny cytat dotyczący samodoskonalenia, zaczerpnięty z bestsellerowej książki autorstwa Stephena Coveya 7 nawyków skutecznego działania. Opowiada on przypowieść o drwalu, który mając duże drzewo do ścięcia w krótkim czasie, idzie prosto do pracy. „Zrobią to za mnie narzędzia, które mam. Muszę zacząć pracować! ”- mówi drwal. Oczywiście dlatego, że pracuje tępą piłą, zadanie trwa dwa razy dłużej, niż powinno. Inteligentny drwal spędza pierwszą część każdego projektu, przygotowując i ostrząc swoje narzędzia. W ten sposób jest bardziej skuteczny, jeśli chodzi o wykonanie zadania.

Hunt i Thomas uważają, że kodowanie nie jest w takim podejściu wyjątkiem. Przygotowanie odpowiednich narzędzi i środowiska jest kluczem do wydajności. Według ich zaleceń:

  • Przygotuj naprawdę dobry edytor zwykłego tekstu, taki jak Vim lub Emacs
  • Dodaj kilka niestandardowych komend i konfiguracji do swojej powłoki i bądź szybszy w używaniu linii poleceń
  • Używaj kontroli źródeł, takich jak GIT, do łatwego wycofywania, kolaboracji i udostępniania kodu
  • Ćwicz podstawy w wybranym języku (językach) kodowania, dzięki czemu to myślenie o problemie będzie trudną częścią, a samo napisanie rozwiązania - łatwą
  • Zrozum big picture bibliotek i modułów, których używasz na co dzień i często nie doceniasz


Pisanie kodu

Za nami już 100 stron książki i nareszcie jesteśmy gotowi, by zacząć rozmawiać o kodzie. Pragmatyczny programista jest źródłem wielu wskazówek dotyczących pisania, które prawdopodobnie już słyszałeś.

  • Koncepcje kodu „leniwego” i „nieśmiałego” pochodzą z książki - pisz funkcje, które bardzo ściśle określają, co przyjmują i obiecują najmniej jak to możliwe w zamian
  • Najlepsze praktyki radzenia sobie z błędami i wyjątkami
  • Pisz czysty kod, który zapewnia bezpieczeństwo wątków. Przewiduj wykorzystanie go we współbieżności na dużą skalę.
  • Starannie dobieraj i rozważaj kompromisy dotyczące struktury i przechowywania danych
  • Używaj notacji Big-O do szacowania czasu wykonywania algorytmu
  • Jak pisać dobre testy, które zapewnią maksymalne pokrycie?
  • Kiedy należy zmienić kod? Co sprawia, że warto spędzać czas na refaktorowaniu?


Nie sposób podsumować wszystkich rad, które zostały spisane na 100 stronach w środku książki. Obejmują one wszystkie aspekty kodowania, ale żadna z porad nie jest zbyt szczegółowa ani specyficzna dla języka.

Ta książka napisana została w 1999 roku, ale pomimo zmian w technologii, większość zaleceń jest nadal aktualna dwie dekady później.


Zarządzanie projektem

Podsumowaliśmy część książki poświęconą konkretnie kodowi. Jest tam tak wiele wartościowych treści, że można by zakończyć tę książkę właśnie tutaj. Ale Hunt i Thomas nie przestają.

Pozostało jeszcze sto stron cennych porad dotyczących zarządzania projektami i planowania od naszych autorów, czyli doświadczonych programistów. A tam m.in.:

  • Ustalanie oczekiwań i wymagań przed projektem
  • Przekonanie zespołu do pragmatycznej kultury
  • Pisanie dokumentacji oraz komunikowanie się z zespołem i użytkownikami


Jest to rodzaj porad, które stają się bardziej wartościowe w miarę rośnięcia ilości projektów, przy których pracujesz. Zaczniesz zdawać sobie sprawę, jak przenikliwe są ich rady, gdy masz już historię pracy nad projektami, które miały niejasne wymagania lub złą komunikację.


Ciągły rozwój

Pragmatyczny programista to jedna z tych książek, które powinieneś mieć na półce jako punkt odniesienia. Możesz wracać do niej wiele razy i ciągle uczyć się czegoś nowego na różnych etapach kariery.

Jeśli poważnie myślisz o zostaniu ekspertem, ta książka jest dla Ciebie obowiązkowa. Jest to rodzaj lektury, której czytanie wyróżnia dobrych od  najlepszych z najlepszych.

Oryginał artykułu w języku angielskim możesz przeczytać tutaj.

Masz coś do powiedzenia?

Podziel się tym z 120 tysiącami naszych czytelników

Dowiedz się więcej
Rocket dog