25. dubna 2012

Crucible - nástroj na code review

Crucible je další z nástrojů od Atlassianu (kromě již známých nástrojů JIRA a Confluence).  Crucible je nástroj na code review. Umožňuje prohlížení zdrojových kódů a vytváření jeho review včetně workflow kolem. Crucible slouží jako komunikační kanál mezi vývojáři nad zdrojovým kódem - vše na jednom místě, vše sledovatelné a dohledatelné.

Přínos efektivního code review je zřejmý, ale často je problém, jak vlastně code review dělat, aby bylo opravdu efektivní. Efektivní code review musí z mého pohledu splňovat tyto podmínky:

  • šíření informací všem členům týmu
  • vše zpětně dohledatelné
  • minimální časová náročnost resp. čím méně času, tím lépe
  • nesmí nabourávat vztahy v týmu (není vždy jednoduché být kritický a nikoho se tím osobně nedotknout)
Když jsme s code review začínali,  tak to vypadalo přibližně tak, že jsme se každý týden na půl hodiny až hodinu potkali osobně, kde jsme procházeli části kódu, upozorňovali na časté nedostatky nebo informovali se o změnách v našich interních API. Toto nejčastěji prováděl team leader. Tento přístup má řadu nevýhod:
  • každý nemůže vždy přijít na osobní setkání, takže se k němu dané informace nedostanou (je pravda, že důležité věci, případně nějaká rozhodnutí jsme zapisovali do interní wiki, ale i tak spoustu informací ze samotného code review nikde zaznamenána nebyla)
  • chybí jedno místo, kde lze informace z code review hledat. Něco se řekne na schůzce, něco se pošle mailem a pak je problém se k některým tématům vracet, dohledávat je
  • samotná kontrola zdrojového kódu probíhá ručně, často náhodným výběrem několika tříd. Chybí nástroj, který vás v tomto podpoří, přidá do toho trochu nějaký systém.
  • vždy bylo nutné mít zdrojový kód v repository, aby si ho někdo další mohl prohlížet
Kvůli těmto nedostatkům jsme začali hledat vhodný nástroj a Crucible nám je pomohlo odstranit.  Crucible nabízí integraci s dalšími svými sourozenci, zejména s JIROU - není tedy problém vytvořit nové review přímo z JIRY k souborům napojených k danému tásků. I na podporu v IDE se nezapomnělo - mohu přímo v IDE vybrat soubory a vytvořit k nim nové review v Crucible (podpora je zatím jen pro IDEU, pro Eclipse zatím chybí). 

Máme teď tedy v týmu nástroj, který umožňuje komukoliv a kdykoliv založit požadavek na review vybrané části kódu a tím získat zpětnou vazbu. Když si člověk uvědomí, že žádné API není hned v první verzi dokonalé, že je potřeba získávat zpětnou vazbu na svoje návrhy a svoji práci, tak máme nástroj, který nám s tím dokáže pomoci.

Standardně součástí Crucible je i FishEye, což je taková hodně komfortní prohlížečka zdrojových kódů v repositářích. Za FishEye je ale nutné platit nemalé peníze navíc, tak zatím používáme samotné Crucible - chybí několik zajímavých pohledů do repositářů, ale z pohledu samotných review se nic nezměnilo.

5. dubna 2012

Zkušenosti s Bootstrap

Znáte Bootstrap, řešení pro prezentační vrstvu od Twitteru? My jsme ho měli možnost vyzkoušet na menším projektu pro administrační část a rád bych se podělil o naše zkušenosti:

  • Bootstrap jsem objevil někdy minulý rok na podzim a od té doby ho sleduji a je vidět, že se rozvijí, že žije. Množí se také informace na internetu, začíná se to používat. Např. článek To Bootstrap or Not?
  • nám se hodně libí jednotnost a jednoduchost celého řešení, nemusíme řešit jednotlivé prohlížeče, celkem rychlý vývoj. Úvodní konfigurátor je pak jen taková třešnička na dortu.
  • od začátku jsme měli jasno, že chceme Bootstrap použít jen na admin část a pro tento účel jsme byli spokojeni. Nicméně si nemyslím, že by to bylo vhodné řešení pro jakékoliv webové řešení, zejména pro ty složitější (např. naše snaha o výběr technologie na klienta).
  • náš technologický stack byl následující: Spring MVC, Freemarker, Sitemesh, Bootstrap, jQuery
  • jako nedostatek bereme nepřítomnost komponenty pro výběr datumu. Museli jsme tedy vzít tu z jQuery - nebyl to žádný velký problém, ale už jsme museli trochu řešit jednotnost vzhledu a upravovat to
  • další výtka míří k dokumentaci - na první pohled je moc pěkná, vše hezky vizuálně zdokumentované, ale pokud pak člověk jde do detailu, tak ty informace sem tam prostě chybí. V lepším případě je člověk dohledá na internetu a nebo nejsou. Vzhledem k tomu, že se jedná o firemní framework publikovaný ven, tak oni ve firmě to know-how zřejmě mají, jen se všechno nepodařilo zdokumentovat pro ostatní. Diskuzní fórum jsme nenašli.
  • kolegům se nepodařilo vůbec rozchodit dvě věci - Transitions (jQuery plugins) a hover popover.
 Máte vy nějaké zkušenosti z Bootstrap?