sobota 13. prosince 2008
Některým programátorům urvat koule je málo
Privátní statické metody v místech, kde nemají co dělat (kontrakt WCF služby, pomocné metody typu "vrať mi, kolik je a plus b")
Plochá objektovost
Kopírovaný kód (psal jsem sice výš, ale tohle je opravdu tak špatný dělat...)
Sémantika. Nazvat proměnnou "promenna_1", "promenna_2"
Absence smysluplných komentářů. Mám-li kód: "var result = a + b;" a u něj komentář: "Sčítáme proměnnou 'a' a 'b' do výsledku 'result'
A teď si představte, že nejde o žádného junior programátora, ale člověka, co má certifikaci Solution Developera a programuje víc než deset let.
Takovým nechat urvat koule je málo - a pokud to není ve vaší moci, alespoň je vyhoďte. Neuvěřitelným způsobem totiž dokážou zatěžovat váš tým.
Proč? Je jedno, že ten kód napráskali během jednoho člověkodne, když vás pak oprava chyby, kterou dostane na starosti jiný programátor stojí těch člověkodnů několik.
úterý 26. srpna 2008
Návrhové vzory v PHP / Desing pattern - Adapter
Návrhový vzor adapter použijete, když potřebujete, aby se například část logiky uvnitř nějaké třídy řídila v závislosti na jejím použití.
Povídání o adapteru je tady:
http://www.dofactory.com/Patterns/PatternAdapter.aspx
A teď radši rychle příklad. Představte si třídu, která autentizuje uživatele. Ale vy nechcete, aby tato třída natvrdo autentizovala uživatele například vůči databázi, chcete, aby bylo možné nastavit, jak má uživatele autentizovat. To uděláte právě pomocí vzoru Adapter.
Čili, třída bude mít metodu "autentizuj" a vy jí předáte instanci jiné třídy (Adapter třídy), která řekne jak.
Opět nádherně použito v praxi, v Zend Frameworku, zde:
http://framework.zend.com/manual/en/zend.auth.html#zend.auth.introduction.adapters
Návrhové vzory v PHP / Design pattern - Factory Method
http://php.interval.cz/objektove-orientovane-programovani-oop-v-php/
)
Nechci tu zas zbytečně něco opisovat, takže pro ty, co neví, co jsou vlastně návrhové vzory (neboli design patterns):
http://cs.wikipedia.org/wiki/N%C3%A1vrhov%C3%BD_vzor
Tak a teď konkrétněji o Factory Method:
Tento návrhový vzor použijete v případech, kdy máte skupinu objektů se společným rozhraním (například třídy pro interakci s různými databázemi) a potřebujete něco, co vám vytvoří konkrétní instance takových tříd na základě nějakého parametru.
Asi jako, dej mi třídu, která pracuje s MySQL, dej mi třídu, která pracuje s FireBird, atd.
Bližší info o samotném návrhovém vzoru tady:
http://www.dofactory.com/Patterns/PatternFactory.aspx
A kde je to použito v praxi:
http://framework.zend.com/manual/en/zend.db.html#zend.db.adapter.connecting.factory
Mimochodem, Zend Framework je pro PHPkáře skvělý právě pro studium návrhových vzorů a jejich použití v reálném světě. Rozhodně na něj neodkazuji naposledy.
čtvrtek 21. srpna 2008
Je singleton zlo? - NESMYSL
Autor v tomto článku rozebírá, zda je použití Sinleton pattern v jazyce PHP zlo. Prosím vás, děláte si legraci?
http://phpfashion.com/je-singleton-zlo
Jednoduchá odpověď zní: Není to zlo.
Singleton má svůj účel, nebudu tady jen něco opisovat, čtěte tady (a sami si dohledejte další informace):
http://www.dofactory.com/Patterns/PatternSingleton.aspx
Singleton je návrhový vzor a tak je jej nutné brát a chápat. A pokud nevíte na co by byl v PHPku, tak čtete zase třeba tady:
http://framework.zend.com/manual/en/zend.auth.html (použití Singleton patternu na autentizaci uživatele v Zend Framework)
Zpátky k příspěvku autora, chápu argumenty, částečně s ním souhlasím, vadí mi něco zcela jiného. Uvažuji-li, že návštěvník jeho stránky přijde kvůli tomu, aby se dozvěděl něco o Singleton pattern, díky autorovi ho zavrhne.
To je hloupé a hrozně krátkozraké. Nedělejte to. Naučte se, a hlavně pokuste se pochopit, návrhové vzory.
Udělají z vás lepší OOP programátory.