Moje dwa centy za takie i stare pytanie
Niektóre osoby już wspomniały, ćwiczą i refaktoryzują. Uważam, że właściwa kolejność uczenia się o wzorach jest następująca:
- Dowiedz się Test Driven Development (TDD)
- Dowiedz się refaktoryzacji
- Naucz się wzorów
Większość ludzi ignoruje 1, wielu uważa, że mogą zrobić 2, a prawie wszyscy idą od razu do 3.
Dla mnie kluczem do doskonalenia umiejętności programistycznych była nauka TDD. Może to być długi czas bolesnego i powolnego kodowania, ale najpierw napisanie testów z pewnością sprawia, że dużo myślisz o kodzie. Jeśli klasa potrzebuje zbyt dużej ilości blaszki lub łatwo się psuje, dość szybko zaczynasz zauważać brzydkie zapachy
Główną zaletą TDD jest to, że tracisz strach przed zmianą kodu i zmuszasz Cię do pisania klas, które są wysoce niezależne i spójne. Bez dobrego zestawu testów dotknięcie czegoś, co nie jest zepsute, jest zbyt bolesne. Dzięki siatce bezpieczeństwa naprawdę zaczniesz przygodę w drastycznych zmianach w kodzie. To jest moment, kiedy naprawdę możesz zacząć uczyć się od praktyki.
Teraz nadszedł moment, w którym musisz czytać książki o wzorach, i moim zdaniem, to kompletna strata czasu, zbyt ciężkiego wysiłku. Wzorce bardzo dobrze zrozumiałem po zauważeniu, że zrobiłem coś podobnego, lub mogłem zastosować to do istniejącego kodu. Bez testów bezpieczeństwa i nawyków refaktoryzacji czekałbym na nowy projekt. Problem z używaniem wzorców w nowym projekcie polega na tym, że nie widzisz, w jaki sposób wpływają one na działający kod lub go zmieniają. Zrozumiałem wzorzec programowy dopiero po ponownym przekształceniu mojego kodu w jeden z nich, nigdy, gdy wprowadziłem nowy w moim kodzie.