Wzorce projektowe warto znać. Kod można budować samemu i popełniać różnego rodzaju błędy, których nikt nie zauważy i za które nikt nas nie rozliczy. Dopóki nie gonią nas terminy, a programowanie nie jest dla nas sztuką, która razi w oczy, gdy jest knocona, wzorce projektowe nie są nikomu potrzebne.
Budowanie kodu, w którym występują utrudniające dalszą jego rozbudowę zależności jest domeną każdego początkującego programisty. Czasem warto budować taki kod, na przykład podczas budowania jakiegoś krótkiego prototypu programu, na który nie mamy wiele czasu. Ale kiedy dopniemy w ten sposób swego, a powstałe rozwiązanie chcemy rozwijać, prędzej czy później przyjdzie nam się mierzyć ze wzorcami projektowymi. Dlatego lepiej znać je już na początku.
Moim osobistym problemem z nauką wzorców projektowych były ich kiepskie przykłady, które znajdowałem w Internecie. Albo zbyt obszerne, tak jak na stronie refactoring.guru (jakkolwiek uwielbiam ich grafiki), albo zbyt pobieżne, tak jak na filmikach Fireship, gdzie technologie czy wzorce tłumaczone są w 100 sekund. Chodziło mi o coś prostego, ale również nie tak banalnego, jak wrzucenie kodu na Github’a i powiedzenie: “Domyśl się”. Chciałem mieć własną referencję. Najlepiej na jakimś przykładzie, który lubię.
Lubię zapach benzyny. Oczywiście bez przesady. Do tego raz dla przyjemności zbudowałem symulator stacji benzynowej, który korzysta z wątków, aby logować tankowanie podjeżdżających do niego o różnym czasie samochodów o różnych parametrach. Wrzuciłem ten projekt na Github i potem długo do niego nie wracałem. Przyznam, że lubię ten temat i chciałbym go rozbudować. Dlatego też skupiłem się na tym, aby przedstawić wzorce projektowy, na tym być może niedługo archaicznym przykładzie – stacji benzynowych.
Zapraszam więc do wspólnej podróży przez wzorce projektowe! Korzystając z potężnej maszyny jaką jest ChatGPT ułożyłem taki sposób przechodzenia przez wzorce, aby był taki, jak sam chciałbym się z nim zetknąć. Przyjemnego kodowania!
Co na to ChatGPT?
Wkleiłem mu swoje autorskie wprowadzenie i zapytałem, czy jeszcze coś by dodał. Oto jego odpowiedź:
Wprowadzenie jest bardzo dobre i dobrze przedstawia ideę wzorców projektowych jako narzędzia, które pozwalają na rozwiązanie trudności związanych z rozwijaniem kodu. Opowiadasz o swoich osobistych trudnościach związanych z nauką wzorców projektowych i jak próbowałeś rozwiązać ten problem, a także pokazujesz, jak przykład stacji benzynowej może być dobrym narzędziem do przedstawienia wzorców projektowych. Całość jest napisana w przyjazny i zrozumiały sposób, dlatego myślę, że będzie ono dobrze przyjęte przez osoby, które dopiero zaczynają swoją przygodę z programowaniem.