wzorce projektowe - jakie wykorzystujecie w pracy

0

Witam,

Chciałbym się nakierować trochę czego się uczyć i co wykorzystywać. Z jakich wzorców projektowych korzystacie w codziennej pracy?

Czy pisząc aplikacje we frameworkach, np. symfony 2, wykorzystujecie wzorce projektowe?

Pozdrawiam

2

Singleton :)

0

Wzorce projektowe to ostateczność, jak komuś się nudzi w pracy. Ja nigdy nie używam wzorców projektowych bo to strata czasu a kod działa tak samo i z wzorcami, i bez nich.

0

Ja często używam wzorców projektowych - nawet w projektach domowych, np. ostatnio użyłem wzorca strategi. Często jest tak, że jak piszesz kod to możesz wykorzystać jakiś wzorzec projektowy. Warto je znać, bo ułatwiają czytelność kodu.

4

Nie wyobrażam sobie nie korzystać ze wzorców. W WebDevie wykorzystuję MVC, ogólnie jako filozofię programowania stosuję paradygmat Inversion Of Control, a realizuję go przy pomocy wzorca Dependency Injection. Kiedyś nie stosowałem żadnych wzorców, jednak po przeanalizowaniu wielu przykładów z ich wykorzystaniem, nie wyobrażam sobie pisać "na pałę" ponownie. Kod jest elastyczny, można go wykorzystywać wielokrotnie w różnych projektach, nowi programiści dołączając do developmentu mogą łatwo i szybko się zintegrować.

Jeśli chodzi o frameworki, to korzystam z Laravela na backendzie i z AngularJS na frontendzie. Jeśli stosujesz te frameworki to automatycznie implementujesz wzorzec MVC. To wszystko razem niesamowicie przyspiesza pracę i rozwiązuje wiele problemów już na starcie.

Także podsumowując MVC + IoC (DI) + jakiś kontener do DI

5

@wolny Lew
Nie zgodzę się, że wzorce to ostateczność.
Wzorce to raczej codzienność. Ich stosowanie często przez programistów jest nieświadome, a nie chodzi wcale o to, żeby roztrząsać, czy do rozwiązania danego problemu potrzebny jest Mediator czy Fasada, ale żeby znać ogólne zasady (jak np. wyższość kompozycji nad dziedziczeniem) i podstawowe struktury, które pozwalają skutecznie i elegancko budować bardziej złożone rozwiązania.
Kod bez wzorców faktycznie działa, ale wprowadzanie w nim kolejnych zmian jest z biegiem czasu coraz bardziej czaso i pracochłonne.

Wystarczy zresztą popatrzeć na kod takiego frameworka jak Symfony2, aby się przekonać, że wzorce są tam zastosowane prawie wszędzie (np. Command, Facade), to samo z Doctrine (np. Unit of Work, Proxy).

Jeśli chodzi o wzorce, które wykorzystuję w pracy. Najczęściej są to te najprostsze wzorce, najmniej złożone - Adapter, Command, Proxy, Factory Method, Abstract Factory, chociaż czasem jest potrzeba zastosowania Dekoratora lub Composite. Zdarzyło się również z powodzeniem wykorzystać Singleton (który często jest rozważany jako antywzorzec) - trzeba po prostu wiedzieć w jakich sytuacjach jego użycie jest uzasadnione.

Co jeszcze zapewniają wzorce - kod zgodny z zasadami SOLID (https://pl.wikipedia.org/wiki/Solid_(programowanie_obiektowe) ze szczególnym uwzględnieniem literek S, O, L), a to oznacza, że kod jest w miarę łatwo modyfikowalny - nie piszę tego, bo tak jest w książkach - tak jest naprawdę (jeśli piszesz odrobinę więcej kodu, niż echo $html).
Ponadto, jeśli nad kodem pracuje więcej niż 1 programista, to znajomość wzorców znacznie ułatwia komunikację (jest różnica, czy mówimy 'hej, zmodyfikuj tę klasę, która wywołuje metody z tej drugiej, którą jej przekazujesz w konstruktorze', czy 'hej, trzeba zmienić Dekoratora dodającego ramkę').

I jeszcze jeden plus stosowania wzorców. To czytelność kodu dla innych programistów pracujących z nim.

[Adam]

0

Chciałbym się nakierować trochę czego się uczyć i co wykorzystywać. Z jakich wzorców projektowych korzystacie w codziennej pracy?

adapter, rozne rodzaje fabryk, obserwator, a takze rozne wzorce oparte o wysylanie komunikatów/eventów (na tym się opiera ileś wzorców - command pattern, pub/sub, event sourcing, flux etc.)

Czy pisząc aplikacje we frameworkach,(...)wykorzystujecie wzorce projektowe?

Frameworki z zasady wymuszają pewne wzorce projektowe. Gdyby nie wymuszały, nie nazywałyby się frameworkami tylko bibliotekami. (przy czym wymuszanie wzorców przez frameworki może być zarowno pozytywne, jak i negatywne - zalezy jak na to spojrzeć.

0

Super, dzięki wszystkim za udział w dyskusji i odpowiedzi. Od razu zacznę stosować jakieś wzorce, poczytam tylko o nich.

Jakie wzorce polecilibyście przy pisaniu prostego bloga (obiektowo)?

Używaliście kiedyś silnika szablonów (twig) ale do czystego php? Czy tylko przy frameworku mvc warto go stosować?

0

Laravel na przykład ma własny silnik szablonów Blade, weź się za jakiś framework, od razu ogarniesz silnik szablonów zamiast stosować sam silnik na czysty PHP.

0

Laravel na przykład ma własny silnik szablonów Blade, weź się za jakiś framework, od razu ogarniesz silnik szablonów zamiast stosować sam silnik na czysty PHP.

Uczę się symfony 2, nawet byłem na kursie i ogarniam go, choć wiadomo, trzeba się oklikać jeszcze. Chciałem poćwiczyć czysty php i wykorzystywanie wzorców. Ale z drugiej strony, silnik szablonów tak mi się podoba, że szkoda mi mieszać php z html jak będę pisał bez frameworka. ;)

0
pavon147 napisał(a):

Także podsumowując MVC + IoC (DI) + jakiś kontener do DI

Poprawnie napisany MVC sam w sobie posiada kilka wzorców:)

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