Blog

 

 Tagcloud

 Kalendář akcí

 Twitter

 
16. prosince
2012

Výhody komunity u OpenSource

Autor: Martin Strejc | upraveno: 16. 12. 2012 | štítky: OpenSource, MyBatis

Kolik se vlastně dá vytěžit z komunity kolem OpenSource a proč bychom touto cestou měli jít. Moje volná úvaha a pár závěrů.

Protože obecné bláboly znají všichni, chci říci rovnou jeden příklad, který se mi během posledního měsíce stal při používání databázového frameworku.

Jak už to bývá, v kombinaci s nějakou atypickou chybou v DB jsem objevil problém při ORM mezi řetězcem String[], tedy v databázi text[], pokud je hodnota NULL a datovým modelem v Java, kdy mapovací třída způsobila NullPointerException. Trochu jsem to nečekal, protože tahle funkcionalita existuje již celkem dlouho, tak jsem nakonec kouknul do zdrojového kódu a příčinu poměrně brzy našel. Oprava byla jednoduchá, napsal jsem svůj vlastní mapper a fungovalo to.

Jenže mi to nedalo a druhý den si říkám: „Možná bych na tu chybu mohl upozornit autory.“ Po chvíli bloumání jsem otevřel jejich reportovací systém a nahlásil chybu, včetně návrhu opravy. Během dvou dní se někdo z vývojářů začal tímto defektem zabývat a následně jsme řešili, jak nejsprávněji provést opravu. Včetně toho, že k mému řešení byl navržen ještě o něco efektivnější postup.

Na závěr během codereview ještě došlo na to, zda chyba nemůže vzniknout ještě při mapování BigDecimal[] a nějakých dalších typů. Vývojář pracující na opravě na závěr všem poděkoval s tím, že již tuto chybu opravil na všech místech, kde mohla tato výjimka ze stejného důvodu vylétnout.

Velmi mne to potěšilo, protože po zvážení všech okolností jsem došel k závěru, že jako interní knihovnu ve firmě bychom asi vše tak rychle nezprocesovali, pokud vůbec. Uvedu tedy několik faktů i závěrů:

  • 2 dny od nahlášení chyby k započetí řešení
  • 4 dny od nahlášení chyby k optimalizaci řešení
  • 10 dní k vyřešení celého defektu
  • 4 týdny od nahlášení chyby k vyřešení ve snapshotu
  • přítomnost codereview
  • kvalitní optimální řešení :-)

Když jsem přemýšlel nad stejným postupem nad komerčním řešením, dospěl jsem k závěru, že řada věcí by byla složitější. Nebo si snad dokážete představit, že byste tímto způsobem opravili závadu v nějakém komerčním řešení, které vám dodala renomovaná firma?

Mimochodem..., díky týmu myBatis ;-)