Design patterns a jednoduchost
Mozna jsem jenom citlivka, ale posledni dobou pouzivam ruzna API zalozena pouze na design patterns a zvracim. Jdu se napit a stale zvracim. Zvracim tak, ze je od kuchynky k mymu mistu cesticka jak od hrosika liberijskeho. Procpak? Protoze jsou ta API nechutne nafoukla, pro vytvoreni jednoho objektu jich musim nesmyslne vytvorit dalsich 10 pres 20 ruznych faktories. Typickym prikladem je Eclipse.
Kam zmizela jednoduchost? Proc tolika lidem vadi prime volani konstruktoru, jednoduche pouziti objektu?
Pricina je v dablove knize od Gammovy crew pojednavajici o design patterns. Kniha samotna je samozrejme skvela, ale mela by se prodavat pouze na jakysi programatorsky zbrojni pas s varovanim na deskach.
Po jejim prelousknuti se nabuzeni ctenari snazi domenu sroubovat na patterny, pritom by meli postupovat naopak. Cim vic patternu, tim lip, pak je aplikace spravna. Kua co na tom, ze mame jenom jeden typ implementace, udelejme Abstract Factory, at se to da rozsirit. Takove programovani do supliku. Postup kompletne proti XP, kde se mysli jenom na to, jak co nejrychleji implementovat soucasny backlog.
Dalsi srandicka je pouziti nevhodneho patternu. Treba tedka s JiPim kutame do kodu jednoho milovnika patternu Visitor. Pekne a ciste naprogramovano, ale semantika aplikace place v koutku. Jde o vytvareni SQL statementu na zaklade Eclipse EMF RDB modelu. Podle Visitora existuje prave jedna visit metoda pro kazdy typ objektu. Takovy centralni mozek lidstva - CML (pozn. autora CML pochazi ze serialu Navstevnici tedy Visitors - odtud nazev patternu ). Pritom je po ohledani problemu zrejme, ze by se tu vice uplatnil Chain of Responsibility, sestaveny z autonomnich procesoru.
Pouziti design patterns nezajistuje kvalitni a jednoduchou knihovnu, coz se nekteri mylne domnivaji.
Plati takove pekne pravidlo (uz nevim od koho), kterym se da zmerit kvalita knihovny.
Kvalita knihovny se nepozna podle toho, kolik toho umi, ale naopak co vam nedovoli.
A je jednoducha.
A bez patternu. Ne, to uz kecam, jeden singleton tam byt muze. :)


