Nauka wzorców

0

Cześć,
Ostatnio zacząłem uczyć się na temat wzorców projektowych z książki. Chciałbym zacząć stosować je w praktyce. Znacie może jakieś strony lub książki, w których byłby szereg zadań, ćwiczeń i programów do napisania przy wykorzystaniu wzorców projektowych? Pozdrawiam, Marcin

0

Przeczytałem Design Patterns od Head First:
http://helion.pl/ksiazki/head-first-design-patterns-edycja-polska-rusz-glowa-eric-freeman-elisabeth-freeman-kathy-sierra-bert-bates,hfdepa.htm
Słyszałem dobre opinie dlatego kupiłem, ale szczerze mówiąc bardzo słabo do mnie trafiła. Pokazuje proste i mocno abstrakcyjne przykłady które nie przystają do realiów pisania rzeczywistych biznesowych aplikacji.

Kumpel z projektu mocno polecał mi:
http://books.google.pl/books/about/Patterns_of_Enterprise_Application_Archi.html?id=FyWZt5DdvFkC&redir_esc=y
niestety jeszcze nie miałem czasu przeczytać.

Generalnie najpierw określiłbym jaki wzorzec architektury pasuje do technologii aplikacji którą piszę: MVC, MVP, MVVM ?
Jak to określisz to już będziesz mógł dużo poczytać o konkretnych rozwiązaniach i dobrych praktykach. Znajomość wzorców przyjdzie razem z poznawaniem architektury.

Z wzorcami to jest tak że trzeba je stosować rozważnie. W przeciwnym wypadku produkuje się niepotrzebny kod narzucający kolejne abstrakcje których utrzymanie kosztuje.

Pozdrawiam
Kuba

0

@kubanvip, nic dziwnego, że elementarz nie daje odpowiedzi na pytanie "jak zbudować rakietę kosmiczną?". Tym bardziej dziwi porównywanie elementarza z książką dla zaawansowanych programistów. Zresztą, trochę czym innym są wzorce projektowe, a czym innym wzorce architektoniczne.

0
somekind napisał(a):

@kubanvip, nic dziwnego, że elementarz nie daje odpowiedzi na pytanie "jak zbudować rakietę kosmiczną?". Tym bardziej dziwi porównywanie elementarza z książką dla zaawansowanych programistów. Zresztą, trochę czym innym są wzorce projektowe, a czym innym wzorce architektoniczne.

Tu nie chodzi nawet o budowanie rakiety, a problem ze zbudowaniem roweru. Może po prostu ja nie potrafiłem przekłuć teorii z książki Head First w użyteczne zastosowania.

To że czym innym są wzorce architektoniczne niż inne to prawda, w końcu mamy różne kategorie wzorców. Warto przy analizie mieć na uwadze większy obraz - wzorce przeważnie podróżują razem / tworzą część większego rozwiązania. W takim kontekście można zobaczyć gdzie konkretny wzorzec ma swoje miejsce, jak się go w praktyce wykorzystuje.

1

Może napisz sobie dowolną aplikację bez użycia wzorców z zastosowaniem KISS, DRY i SOLID. Jak będziesz gdzieś miał jakiś konkretny problem z zachowaniem tych zasad to zerknij na listę wzorców, może któryś z nich ten problem rozwiązuje. Natomiast jak nie będziesz miał problemu to ci wzorce do niczego nie potrzebne.

0
kubanvip napisał(a):
somekind napisał(a):

@kubanvip, nic dziwnego, że elementarz nie daje odpowiedzi na pytanie "jak zbudować rakietę kosmiczną?". Tym bardziej dziwi porównywanie elementarza z książką dla zaawansowanych programistów. Zresztą, trochę czym innym są wzorce projektowe, a czym innym wzorce architektoniczne.

Tu nie chodzi nawet o budowanie rakiety, a problem ze zbudowaniem roweru. Może po prostu ja nie potrafiłem przekłuć teorii z książki Head First w użyteczne zastosowania.

U mnie było wręcz przeciwnie. Wzorce stosowałem bo znałem je z kodu innych więc znałem je i stosowałem na poziomie kodu a nie wiedziałem jak się nazywają. Książka Head First mi pomogła zapamiętać chociaż część nazw i odpowiada na pytanie kiedy dany wzorzec stosować. Wg mnie bardzo dobra książka.

Edit: kilka stron n.t.
http://sourcemaking.com/design_patterns/ (kod w C++, Java, C#, PHP)
http://www.oodesign.com/ (kod w Java)
http://sourceforge.net/projects/hfdp-cpp/ (C++)
http://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns (C++)

1

U mnie nauka wygląda mniej więcej w ten sposób, że mam wzorce na widoku. Jeśli natrafię na jakiś problem, to po prostu patrzę czy rozwiązania nie ma we wzorcach.

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