pátek 14. dubna 2006

Linky na víkend

Protože je na ředě prodloužený víkend mám pro vás několik tipů na zajímavé članky k přečtení. Nemůžu začít zmíňkou o ničem jiném, než byla akvizice JBoose firmou Red Hat, o které psal a mluvil snad každý.

Myšlenka týdne: You can buy software, but you can’t buy community.

středa 12. dubna 2006

Reimplmentace kola

Jedna z nejčastějších chyb, se kterou jsem se setkal při vývoji, je snaha implementovat něco co bylo již dávno implementováno. Tahle snaha je označována jako - reimplementace kola. Existuje velké množství důvodů proč nedělat reimplementaci kola a existují asi tak jeden až dva důvody proč to dělat.

Proč nedělat reimplementaci kola

  • Je pravděpodobné, že kolo někdo implementoval jako open source, tak proč jeho práci nepoužít. Pokud někdo implementoval kolo né uplně vhodně k našim potřebám, pak je velice pravděpodobné, že můžeme naši práci na stávajícím základu postavit.
  • I když si myslíme pravý opak, tak většinou nemáme dostatečné zkušenosti a znalosti pro implementaci kola.
  • Je více než pravděpodobné, že si při reimplementaci budeme muset poradit s problémy, které nejsou v době rozhodnutí známe.
  • Budeme muset vynaložit navíc zdroje na implementaci a testy. Tedy na nejdražší položky (lidi a čas) z hlediska vývojového cyklu.
  • Pravděpodobně vystavíme vývojáře tomu, že ačkoliv existuje defacto průmyslový standard kola, který je široce rozšířen, že budou nuceni přejít na naší proprietární implementaci.
  • Pravděpodobně taktéž existují nástroje, které mohou v jistých směrech s kolem pracovat jedním či druhým směrem.

Proč dělat reimplementaci kola

  • neexistuje dostupná implementace kola a nebo část, na kterou bychom mohli použít
  • problém s licencí implementace kola

Pokud zvážíme všchna pro a proti, tak si troufám tvrdít, že prod devět z deseti případů je reimplementace úplně zbytečná a lze ji považovat za chybnou ať už z hlediská nákladů nebo side efektů. Nyní je více než vhodné položit si otázku,proč vlastně vývojáři s oblibou reimplementují kolo?

Já osobně vidím tři základní důvody

  • potřeba dokázat si, že to umíme
  • nechuť trávit čas hledaním, když sami nejlépe víme jak to udělat
  • neschopnost používat standardní zdorje informací - zeptat se kolegy, potom Googlu a na závěr v odborné konferenci

Minimálně první dva důvody jsou hodně abych tak řekl stupidní...

úterý 11. dubna 2006

Spring v ofenzívě

Už jste slyšeli o RCP (Rich Client Platform)? Rich Client Platfrom by měla představovat plnohodnotný podvozek, na kterém by měla jít velice snadno vybudovat desktopová aplikace. Pokud jste o RCP slyšeli, pak vám určitě neuniklo, že se hlavní souboj doposud odehrával mezi Eclipse RCP (založené na GUI technologii SWT) a NetBeans RCP (založené na GUI technologii Swing).

Jako třetí RCP platforma se hlásí o slovo Spring RCP což je subprojekt velice populárního Springframeworku. Těžiště Spring RCP leží na jiné úrovni než u předešlých dvou, což velice pěkně vystihuje náýsledující citace:

The spring-rich developers strongly feel the old days of Swing apps not looking native and not being performant or web-accessible are gone with JDK1.4.2 and 1.5 and webstart. It is our belief the only problem with Swing is that there are a limited number of higher-level abstractions available that assist in making the toolkit simpler and easier to use, and a limited number of design best practices. The goal of spring-richclient is to provide that.

Zaměření

  • Provide a way to build structured, highly-configurable, GUI-standards-following Swing applications faster by leveraging the Spring Framework.
  • Foster integration with existing rich-client-related projects where it make sense. For example, jgoodies-forms and TableLayout are two good layout managers. We don't need to develop another one.
  • Adhere to the principles set forth by the Spring Framework--programming to interfaces; the importance of sound OO design, documentation, and testing.

Související články

Na závěr přidávám pro fandy "klasického" Springframeworku odkaz na podcast Spring 2.0, an update by Rod Johnson, ve kterém Rod Johnson mluví o dvou důležitých novinkách (extensible XML configuration, significant enhancements to Spring AOP) verze 2.0 (dikuse na TSS - Spring 2.0, an update by Rod Johnson).