sobota 13. prosince 2008

Testování vlastního kódu

Někteří programátoři zastávají názor, že jejich kód by měl testovat tester. Ano, to je sice pravda, ale pokud je programátor na projektu, u kterého jsou radikálně sníženy náklady (a k tomu v nastávající finanční krizi bude docházet neustále), měl by si vývojář otestovat svůj kód sám, podle svého nejlepšího vědomí a svědomí.

Jenže ono je to lenosti. Nikomu se nechce testovat, je to strašně nudná práce a mnohdy časově opravdu náročná. Navíc to pak působí tak, že vývojář na pozici senior vytvářel kód mnohem déle, než jeho standard kolega.

Je potřeba, aby takový vývojář dal svému nadřízenému (ve většině případů je to manažer týmu nebo projektu) jasně najevo, že svůj kód během vývoje otestoval v nějkém rámci hodin.

Upřímně, senior programátor, který netestuje svůj kód NENÍ senior programátor. Ale pohodlný vývojář, který chce vypadat, že umí strašně rychle programovat.
Programování není o rychlosti, je o přemýšlení a o předcházení problémů. Vývojář, který si svědomitě otestuje to, co napsal, a který mi tak v důsledku ušetří spoustu peněz při nacházení a opravě chyb (eliminuje - respektive výrazně redukuje náklady na testera a opravu chyb), takový vývojář je ve firmě k nezaplacení.

Některým programátorům urvat koule je málo

Opakovaný kód

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.

JavaScript frameworky

Čistě subjektivní příspěvek, mám velmi dobrou zkušenost s YUI.

V některých případech však bývá YUI kanónem na vrabce. I když i zde máte volbu, nemusíte natahovat na klienta tuny JS, abyste změnili barvu jednoho divu, prostě natáhnete z YUI jen tolik, co skutečně potřebujete. Ti co znají, tak vědí.

Nicméně, výbornou alternativou, ale taky se bavíme o lower-based JS frameworku je http://jquery.com/
Nejen, že se s ním skvěle pracuje a zaučíte se během jednoho dne, ale hovoří pro něj i fakt, že ho zvolila firma Microsoft jako jeden z frameworků, který hodlá podporovat ve svém Visual Studiu.

Jestli máte svůj lepší, hezčí, oblíbenější - neberu vám to. Pokud s ním jste efektivní. U mne byste však museli znát minimálně jeden z těchto dvou.

Pokud zapomenete heslo

Každý zapomínáme a hlavně za delší dobu působnosti na netu si vytvoříte několik různých e-mailových účtů, a samozřejmě po nějaké době zapomenete heslo. Potom, například při migraci nastavených mail účtů v Outlooku úpíte, protože heslo sice uložené máte, ale skrývá se za hvězdičkama.

Pomůže: http://www.nirsoft.net/utils/astlog.html

středa 3. září 2008

Google Chrome Beta - vyzkoušeno a nadšeno

Stáhnuto, nainstalováno, spuštěno, vyzkoušeno, nadšeno.

A proč?

Ve svých aplikacích používám JavaScript s YUI. A čistě subjektivní dojem je takový, že v Chrome mi ty aplikace běhají nejrychleji.

čtvrtek 28. srpna 2008

Mají smysl certifikační zkoušky u společnosti Microsoft?

Nedávno jsem si říkal, že bych rád na toto téma napsal příspěvek, vadí mi totiž přístup komunity okolo .NET a jejich zavrhování zkoušek.

S velkou radostí jsem dnes zjistil, že si tu práci dal někdo jiný, děkuji autorovi. S jeho názory se naprosto ztotožňuji.

Čtěte zde:

http://jirava.net/blog/Archive/certifikace-pro-net-impulzy.aspx

úterý 26. srpna 2008

Návrhové vzory v PHP / Desing pattern - Adapter

Rovnou navazuji na předchozí příspěvek...

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

(Poznámka: Pokud nemáte vůbec šajnu, co je to objektové programování, třída, instance, rozhraní, abstrakce, polymorfismus, tak nejdřív začněte tady:
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.

úterý 19. srpna 2008

Obrázky v e-shopu

Fascinuje mě tupost některých prodejců na internetu. Kdy už jim konečně dojde, že uživatel potřebuje před koupí spoustu informací a hlavně obrázků, velkých, malých, z různých úhlů, ale hlavně aby nějaké byly.

Upřímně, překvapuje mě, že tyto e-obchody vůbec ještě fungují.

Foťte své produkty, které chcete prodávat. Foťte je co nejlépe můžete, ze všech stran. A nakonec drobné doporučení, než budete fotit nějaký produkt, dejte k němu něco (krabička sirek, zapalovač, propiska), co pomůže vašemu zákazníkovi získat dobré povědomí o rozměrech daného výrobku.

Úvod do Sharepointu

Narazil jsem na poměrně hezký úvod do Sharepointu, respektive do Microsoft Sharepoint Products and Technologies.

http://kamiljurik.spaces.live.com/Blog/cns!870AB3182CD7461!2174.entry

Autor příspěvku má naprostou pravdu, Sharepoint je dobrý sluha, ale zlý pán. A musí se vědět, jak na něj.

Rozbil se mi počítač, sprav to

Děláte v IT? Říkáte to lidem okolo vás? Volají vám, že se jim rozbil počítač a máte jim pomoct to spravit?

Mlátit hlavou do zdi je pak málo, spíš výměna telefonního čísla. Fascinuje mě, jak BFUčka automaticky předpokládají, že pokud "děláte s těma počítačema", umíte přece všechno. A ty ksichty, když je pak vyvádíte z omylu.
Zoufalost.

Vždycky to přirovnávám k doktorům:

"Myslíš, že by ti dentista uměl z fleku provést operaci slepého střeva?"
"No, to asi ne."
"Tak vidíš. Dělá v lékařství, jako já v IT. A specializuju se jen na určitou oblast."

Mimochodem, pokud to nepochopí, zeptejte se:

"Zkusil/a jsi to vypnout a pak znovu zapnout?"

pondělí 18. srpna 2008

Nenávidím registrace

Nenávidím registrace, další uživatelské jména, hesla, zapomenutá hesla, nová hesla... Je mi zle, zle, zle.

S každou webovkou se dělá registrace, co je výsledek? Jako uživatel mám "milión" přihlašovacích jmen a hesel, stěží si má vypitá hlava pamatuje jeden.

Proč proboha ztěžujeme uživatelům život? Proč si myslíme, že se zrovna do té naší aplikace budou nadšeně registrovat a vyplňovat neustále nějaké nesmysly?

Pokud to není vysloveně nutné, nedělejte to. Nebo implementujte anonymní možnost nákupu, pohybu ve stránkách, prostě cokoliv, co zbaví uživatele toho hnusu. Že to nejde, protože ten váš web je zrovna výjimečný? Že neexistuje cesta? No jo, jasně. Tyhle kecy poslouchám pořád.

Co třeba OpenID? Hm? Co třeba mashup pomocí Google? Co třeba autentizace pomocí hash linků v mail zprávách, co se prostě jenom na chvíli zamyslet, než založíte v databázi své budoucí aplikace tabulku User?

Dík.
Nejen já, ale spousta dalších vám budeme vděčni. A možná zrovna tu vaší aplikaci skutečně budeme používat.

neděle 17. srpna 2008

Internetové platební systémy

Měšec

Epeněženka

Mpeníze

Paysec

...grrrr.

Jako platící to beru. Mám prostě možnosti, mám pocit volnosti.

Jako programátor e-shopu bych si radši vyrval vlasy. Nemám čas čekat, který ze systémů se uchytí. Zvlášť, když jsou všechny relativně mladé a bez zkušeností. Je jisté, jakože zítra vyjde slunce, budou obsahovat bugy a bezpečností ďoury.
Kdo za to pak bude moct, až to zákazníkovi zbuchne? No já, kdo jinej.

Chtěl bych sázet na jistotu, jistotou je pro mě http://www.paypal.com/ - bohužel to v Čechách nikdo nepropaguje, rozhraní je anglicky, na čemž to padá pro BFUčka a vlastně i pro BFU obchodníky.

Každý den se modlím, aby to někdo vzal za koule a provedl radikální řez.

pátek 15. srpna 2008

Informační systém pro malou a střední firmu nebo společnost

Ha, tak tomuhle se taky často směju. Furt potkávám firmy, které jsou ochotny zaplatit desetitisíce korun za vývoj svého informačního systému (u desetitisíc se bavíme o PHP), často se to nedodělá, někde to krachne, no hrůza.

Přitom stačí tak málo, zvolte Microsoft a jejich Windows Sharepoint Services 3.0

Že musíte mít vlastní server? Ale nechte toho, nemusíte.

www.gauzy.cz

Co Sharepoint umí? Pohledejte, přece mě nebudete nutit to tady slepě opisovat.

Chci vytvořit webové stránky ...a zadarmo

Když startujete s nějakým obchodem, nápadem, vlastně čímkoliv co se má prezentovat nějak na internetu, nemáte prachy. Obecně, kdo má, že jo?

Nemá smysl přemýšlet nad investicí do webové prezentace od profesionální firmy, pokud nevíte, zda vám kšeft pojede. Najděte způsob, jak si stránky vytvořit sami, svépomocí, bez extra investice.

Můžete začít třeba tady:

http://www.webnode.cz/

čtvrtek 14. srpna 2008

Mladý PHPkář aneb hlava v oblacích

Přišel ke mně mladej kluk. Že prej umí PHPko, po chvíli bylo jasné, že umí dobře hledat na netu a kombinaci kláves Ctrl+C a Ctrl+V má vytetovanou snad i na zadku.

V pohodě, nemám s těmahle lidma problém. Každej někdy začínal, ne? Já napsal kódu, který když vidím po letech, tak bych blil, Milane.

Co mě ale dožírá, že takovejhle týpek na tebe nastoupí s tím, že si představuje 500 a víc na hodinu. Kde to jsme? To mám zaplatit někomu tři tisíce za jednoduchý formulář, který odesílá jméno uživatele a mailovou adresu?
Au.

Trochu sebereflexe kluci, a trošku úcty.