1 2 3 4 5 6 7 ... 29

Cestování / 22. 7. 2015Parc Merveilleux

Nedávno jsme s rodinou byli na výletě v Parc Merveilleux, kam se dá dojet z centra Lucemburku utobusem zhruba za 40 minut. Ještě je tedy nutné kousek popojít, protože autobus zastavuje na vlakovém nádraží v Bettemburgu, odkud však do parku vede nepřehlednutelná hlavní silnice.

papoušci ([zdroj](http://voho.cz/nahled/700x700/cGhvdG8vMjAxNS83LzE5L0RTQ18wMDkxLmpwZw%3D%3D.jpg))

papoušci (zdroj)

Park se asi nejvíce podobá takové malé ZOO křížené s dětským zábavným parkem. Je zde také několik pěkných hřišť, prolézaček, pískovišť, a podobně. Některá zvířata je možné i hladit a krmit, takže si u pokladny nezapomeňte zakoupit sáček s krmením.

páv pozoruje elektrický vláček ([zdroj](http://voho.cz/nahled/700x700/cGhvdG8vMjAxNS83LzE5L0RTQ18wMTEwLmpwZw%3D%3D.jpg))

páv pozoruje elektrický vláček (zdroj)

Úvahy / 20. 7. 2015Jednoduché vysvětlení

Albert Einstein ([zdroj](http://www.pronaladu.cz/wp-content/uploads/2014/11/einstein-big.jpg))

Albert Einstein (zdroj)

Tento citát (nebo nějakou jeho variantu) už jste určitě slyšeli:

Jestliže to nedokážete vysvětlit svojí babičce, pak tomu sám nerozumíte. - A. Einstein

Souhlasíte s ním? Platí to i o jaderné fyzice, informatice, ekonomii a sociologii?

Já říkám, že ano. Ale zároveň musím jedním dechem dodat, že vysvětlit něco složitého jednoduše je velmi obtížné. Vyzkoušel jsem si to ostatně mnohokrát tady na wiki. Nejtěžší je zvolit správnou úroveň abstrakce, aby se ve vysvětlení nacházel jen omezený počet pojmů a sdělení. A proces vysvětlování musí být promyšlený, aby probíhal konstruktivně od jednoduchého ke složitému. Je také vhodné použít příměr s něčím, co posluchač zná.

Někteří lidé namítají, že jednoduché vysvětlení danou látku "uráží" či "snižuje". Nesmysl. Inteligentní posluchač si je samozřejmě vědom toho, že se během minuty nedostane na úroveň toho, kdo se záležitostí zabývá řadu let. Je prostě jen zvědavý a nemá moc času.

Nevím, jak vy, ale já se vždy rád zeptám. A pak bývám překvapený, v jakých absurdních situacích se nějaký ten útržek zajímavé informace hodí :).

Programování / 16. 7. 2015Jednotkové testování

Dovolte mi jen krátkou poznámku k jednotkovému testování (unit testing). Všiml jsem si, že někteří programátoři trochu tápou v tom, co mají vlastně testovat. Stává se, že programátor spolu s testovanou jednotkou (znovu) testuje i její závislosti. I když se na první pohled zdá, že přidávat jakékoliv dodatečné testy je vždy dobré, tento přístup má několik vážných problémů:

  • nejedná se o jednotkový test, protože se společně s jednotkou testují i její závislosti
  • testy jsou složitější, protože se musí všechny závislosti inicializovat
  • izoloace chyby je zbytečně náročná, protože chyba v jednotce může být potenciálně způsobená jak chybou jednotky, tak některé její závislosti

Jednotkový test chápu jako test sloužící k ověření funkcionality jedné jediné komponenty, typicky třídy. Málokterá třída však ke své funkci nevyžaduje řadu dalších. Jak to tedy udělat, aby se třída dala otestovat izolovaně a přesto měla k dispozici svoje závislosti? Řešením je jejich simulace.

V programovacích jazycích k tomuto účelu slouží tzv. mockovací frameworky, které snadno vytvoří simulaci jakékoliv třídy a umožní definici jejich chování. Zároveň sledují, jak kdo s danou simulací pracuje - dokáží totiž zaznamenávat volání simulovaných metod a použité parametry.

Pro každou situaci, která může v programu nastat, lze vytvořit odpovídající simulaci a otestovat, jak se v dané situaci testovaná komponenta zachová (a jak se to projeví na okolí). K tomu není potřeba, aby bylo okolí skutečné.

Jednotkový test tedy testuje:

  • návratové hodnoty vrácené komponentou
  • jak komponenta reaguje s okolím
    • které závislosti byly využity
    • které metody byly na závislstech zavolány (a kolikrát)
    • jaké parametry byly předány

Je pouze na programátorovi, jak podrobně a důsledně chce tyto testy provádět.

1 2 3 4 5 6 7 ... 29