Wzorce projektowe czy warto

0

Powiedzmy jak się robi aplikacje na 3000 linijek kodu (PHP) to czy warto się zajmować wzorcami projektowymi czyli układem klas funkcji, No bo w zasadzie nie mogę znależć nigdzie w sieci programu do robienia wzorców projektowych, a nie będę go robił na kartce.

2

Program do robienia wzorców? :)
Wciskanie na siłę wzorów projektowych jest błędem.

2
pol90 napisał(a):

w zasadzie nie mogę znależć nigdzie w sieci programu do robienia wzorców projektowych, a nie będę go robił na kartce.

Co ty chcesz robić na kartce?
Może chcesz rysować schematy UML-a? Od tego jest dużo narzędzi, np: http://www.umldesigner.org/

Wzorce projektowe to standardowe metody projektowania/kodowania algorytmów.
masz przykładowo takie wzorce (te co mi od razu do głowy przychodzą):

  • budowniczy
  • fabryka
  • wizytator
  • adapter
  • fasada
  • obserwator
  • strategia
  • kompozyt
  • .....

Wiele z tych wzorców ludzie stosują nieświadomie.

Celowo nie wymieniłem singletona, bo to powinno być traktowane jako antywzorzec (każdy newbie się na niego rzuca, bo najprostszy ze wszystkich wzorców, a jest najmniej użyteczny, a wręcz najbardziej szkodliwy).

4

Nie licz programu na linie kodu. Mierz go jakością.

3

https://exceptionnotfound.net/tag/design-patterns/ - dobry blog, jeszcze lepiej opisane wzorce projektowe oraz https://exceptionnotfound.net/tag/anti-patterns/ . Warto przeczytać przy kawie.

6

O właśnie mi o UML chodziło coś nie mogę rożróżnić tego od wzorców projektowych.

No to nie rozumiesz idei wzorców projektowych i lepiej się zatrzymaj i spróbuj zrozumieć, co to w ogóle jest.

Wzorce projektowe to sposób, w jaki można połączyć ze sobą poszczególne części kodu ze sobą. One są niewidoczne i przenikają kod. Wzorzec projektowy to jak zwyczaj, np. zwyczaj jedzenia pierogów w Wigilię. Tak samo zwyczajem może być specyficzny sposób tworzenia obiektów, żeby w odpowiedni sposób współpracowały ze sobą.

A UML to sposób zapisu graficznego, sposób rysowania diagramów. Czyli UML to będzie rysunek pieroga.

Powiedzmy jak się robi aplikacje na 3000 linijek kodu (PHP) to czy warto się zajmować wzorcami projektowymi czyli układem klas funkcji,

To nie ma nic do rzeczy. 3000 linijek kodu to nie jest to już raczej Hello World, więc już jest tu pewna złożoność, zapewne ileś modułów, czyli pełno okazji do zaimplementowania wzorca (a jeden "wzorzec projektowy" można zaimplementować nawet w kilku/nastu linijkach kodu, więc w 3000 linijkach to by się zmieściły pewnie z setki wzorców).

Tylko nie o to chodzi wcale. Wzorce projektowe mają do czegoś służyć, rozwiązywać jakieś konkretne problemy, a nie być wrzucane na siłę, bo można. Myśl o problemach, które musisz rozwiązać i czy dany wzorzec rozwiązuje problem, a nie o tym, czy warto się zajmować wzorcami projektowymi, bo to pytanie jest totalnie od czapy.

1

Najlepiej to kup książkę o tym.

4

Moim zdaniem musisz mieć w głowie dwie rzeczy odnośnie wzorców (chociaż w sumie to ta uwaga dotyczy też wielu innych rzeczy z programowaniem związanych)
1) Powinieneś wzorce w miarę kojarzyć. Nie mówię, żebyś miał na pamięć wykute wszystkie szczegóły dotyczące każdego wzorca, bo to sobie znajdziesz w razie potrzeby. Ale musisz je na tyle kojarzyć, żeby umieć załapać, w jakiej sytuacji dany wzorzec może być przydatny. Nie znając ich wcale, nawet nie będziesz wiedział, czego masz szukać
2) Jak napisałem powyżej - wzorce bywają przydatne w różnych sytuacjach, więc niekoniecznie w każdym projekcie da się z nich skorzystać. To trochę jak z programowaniem obiektowym albo z rekurencją - są fajne, ale nie wszędzie pasują. I tak, jak na siłę nie ma co pchać wszędzie OOP, tak jak są tematy, które się lepiej i bardziej naturalnie rozwiąże bez rekurencji, tak samo nie zawsze do danego projektu da się wprowadzić w sensowny sposób dany wzorzec/wzorce. Oczywiście - na upartego można, ale nie będzie to miało sensu, nie zwiększy także czytelności czy możliwości rozbudowy kodu.

Jakby nie patrzeć, pkt. 2 wynika z pierwszego. Żeby móc ocenić, czy w danej sytuacji da się wykorzystać jakiś wzorzec (a także wybrać odpowiedni), najpierw powinieneś się z nimi zapoznać i w miarę je kojarzyć.

1

Do PHP masz PSR, ponadto robiąc w miarę uważnie w frameworkach zwykle poznajesz też i wzorce, chyba, że robisz na odpierdziel to nie.

3

@pol90: ja już Ci kiedyś pisałem, czym się powinieneś zainteresować.

Przeczytaj tą książkę:
https://helion.pl/ksiazki/refaktoryzacja-ulepszanie-struktury-istniejacego-kodu-martin-fowler-kent-beck-john-brant-william-opdy,refukv.htm

I posprzątaj jeden ze swoich projektów. Wzorce projektowe Ci nie pomogą na razie. Wzorce wymienione przez @MarekR22, to wzorce używane przy skomplikowanych regułach biznesowych, a Ty takich nie masz. Może z wyjątkiem fabryki i strategii. Te dwa wzorce możesz ogarnąć, bo się często przydają.

Musisz nauczyć się lepiej nazywać zmienne, tworzyć mniejsze klocki, tworzyć mniej skomplikowany kod. Poczytaj na temat SOLID. A zwłaszcza na temat SRP (S z solid) i OCP (O z solid). Dodając do swojego kodu wzorce projektowe na siłę spowodujesz, że będzie jeszcze mniej czytelny. Skup się na single responsibility principle i podstawowych rzeczach, takich jak nazewnictwo zmiennych.

1

wzorce nie są jakąś religią która obowiązuje do wykonania (choś ta religia na wyznawców, i to bardzo szkodliwe)

Podoba mi sie określenie @LukeL "jak pierogi w wigilię"
Inne: jak stolarz do stolarza mówi: to trzeba złączyć na pióro. Sprawna i krótka komunikacja między fachowcami z branży

1 użytkowników online, w tym zalogowanych: 0, gości: 1