Jakie wzorce trzeba znać?

0

Często w ofertach pracy umieszczana jest w wymaganiach znajomość wzorców projektowych.
Tych wzorców jest jednak raczej sporo i w związku z tym pytanie jakie waszym zdaniem wzorce należy znać, żeby móc uczciwie wpisać to w cv?

Z drugiej strony patrząc na listę wzorców projektowych z wiki mam wrażenie, że już prawie wszystko ktoś tam wkleił jako wzorzec projektowy. Chociażby taki Iterator. Wiele razy implementowałem dla foreach itp. itd., ale nigdy nie myślałem o tym jako wzorcu projektowym.

2

Kilka na pewno trzeba znać i umieć coś o nich opowiedzieć. Raczej nie trzeba znać wszystkich, zazwyczaj na rozmowach kwalifikacyjnych pytają o podanie jednego przykładu. Najczęściej przydają się chyba: strategia, metoda szablonowa, builder, obserwator, fabryki, adapter, dekorator, kompozyt, wizytor.

0

Ja bym dodał jeszcze Singleton, Dependency Injection i ServiceLocator ;)

0

W sumie większość z tego znam i używałem.
Czy w takim razie nie rozchodzi się tutaj głównie o jakiś zestaw nazw, który jest pomocny w rozmowie z innymi programistami?

0

Ja bym dorzucil: Repo, DAO, DTO, Session Per Request(jesli web)

0

Ja tam bym się singletonem na rozmowie nie ośmieszał. :P

fdgf napisał(a):

Czy w takim razie nie rozchodzi się tutaj głównie o jakiś zestaw nazw, który jest pomocny w rozmowie z innymi programistami?

Owszem.

0

@somekind a to czemu? Często warto wiedzieć jak coś działa żeby rozumieć czemu tego nie używać ;) Jakby mi ktoś na rozmowie powiedział że nie wie co to singleton to bałbym sie że kiedyś go "wymyśli" i machnie w kodzie jakieś mega wąskie gardło (jak będzie synchronizował) albo zrobi race condition (jak nie będzie) albo będzie marnował zasoby (jak zrobi wersję z gorliwą inicjalizacją).

2

Nie no, jasne, że ten (anty)wzorzec trzeba znać. Chodzi mi o to, że odpowiedź "Singleton" na pytanie o przykład wzorca projektowego jest bardzo mało ambitna. ;)

(A prawidłowo zaimplementować leniwego i bezpiecznego wątkowo singletona bez blokad zazwyczaj nie potrafi pytający. :P)

0

Czyli jak dobrze rozumiem singleton to najczęściej zło, ponieważ to globalny stan, a globalny stan w programowaniu wielowątkowym (czyli dzisiaj większość) to możliwe kłopoty, a zdecydowanie trudności, tak?

0

Nic nie stoi na przeszkodzie, aby zaimplementować wersję singletona, która jest wątkowo bezpieczna, przeczytaj jeszcze raz powyższy post somekind'a;)
Ogólnie z singletonem jak ze wszystkimi wzorcami, trzeba czuć gdzie są potrzebne, a nie pchać wszędzie gdzie się tylko da.

0

@fdgf no jeśli to jest stanowy i synchronizowany singleton to słabo bo się nie skaluje. Ale jeśli to jest lekki, bezstanowy serwis to co innego. Ale mamy narzędzia typu IoC które potrafią auotmatycznie i wygodnie zastępować singletony czy service locatory :)

2

Antywzorców niby pracodawcy nie sprawdzają, ale też warto znać: http://pl.wikipedia.org/wiki/Antywzorzec_projektowy :]

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