Wzorce projektowe, czy są ważne i dlaczego tak?

Przeglądając internet zauważyłem nurtujący nowych (ale nie tylko) programistów temat "Wzorce projektowe". Po co one są? Jakie powinniśmy znać? Czy znajomość ich w czymś pomaga? Czy warto się ich uczyć? Spróbuje odpowiedzieć na te ciężkie (bo trzeba przyznać, że każdy programista ma inne zdanie na ten temat) pytania.

Co to są wzorce projektowe?

Wzorce projektowe są rozwiązaniami problemów tworzenia oprogramowania, które są opisane, posiadają swoją, znaną przez użytkowników nazwę oraz definiują kiedy warto, a kiedy nie warto je używać.

Definicja odpowiada już na dwa pytania:

  • Po co one są?

    Do rozwiązywania problemów tworzenia oprogramowania.

  • Czy znajomość ich w czymś pomaga? W rozwiązaniu problemu programistycznego.

Można powiedzieć, że wzorzec projektowy to taka dobra praktyka rozwiązania problemu. Jest powszechnie używany i ukazane są jego zalety i wady.

Czy warto je znać, a jak tak to jakie?

Tutaj nie ma już prostych odpowiedzi. Uważam, że warto znać jak najwięcej wzorców projektowych. Dlaczego? Ponieważ każdy może się kiedyś przydać.

Czy to znaczy, że trzeba się wszystkich uczyć?

Nie! Powinniśmy tylko wiedzieć, że istnieją rozwiązania na dany problem. Jakie to rozwiązanie i jak się go stosuje powinniśmy się dowiedzieć już w trakcie rozwiązywania tego problemu. Znajomość, że coś takiego istnieje, pozwoli nam na wykorzystanie tego w trakcie znalezienia się w takiej sytuacji.

Są jednak rozwiązania, które możemy zastosować wszędzie. Np. MVC (Model-View-Controller), który jest wzorcem architektonicznym. Powiedzieć można, że stosowany jest już w większości projektów. Mówi on nam o tym, że widok powinien być oddzielony od modelu aplikacji, a komunikacja pomiędzy tymi warstwami powinna być poprzez kontroler. Takich wzorców jest dużo, które stosujemy czasami nawet o tym nie wiedząc.

Podsumowując

Mam nadzieję, że wytłumaczyłem dlaczego warto znać wzorce projektowe. Są one przydatne, ponieważ są sprawdzone i wykorzystanie ich pozwoli utrzymać projekt w sposób znany innym programistom. Jednocześnie uzyskujemy rozwiązanie na nasz problem, które wiemy jak się zachowa. Uważam, że znajomość wzorców projektowych jest bardzo przydatna i zalecam zapoznać się chociażby z opisami takich wzorców, aby wiedzieć do czego są już stworzone i jakie wynikają z niego korzyści.

Comments

Popular posts from this blog

Why TDD is bad practice?

How correctly imitate dependencies?

Software development using Angular 5 with Spring Boot