středa 15. června 2016

Unit testy bez mockování


Při testování lze občas narazit na situace, kdy je napsání unit testů běžně zažitým způsobem nemožné a nejde použít ani mockování. Například proto, že v kódu je použita uzavřená (sealed) třída, která ani neimplementuje žádné rozhraní. To je například případ některých tříd pro přístup k datům na Azure, ale i mnoho dalších. I přesto se dá ale unit test napsat.

pondělí 11. dubna 2016

Linq a pracovní pohovor


Zjišťovat znalosti Linqu u pracovního pohovoru může být obtížné - s Linqem se asi setkal každý C# programátor, ale vždy záleží, do jaké hloubky se s touto technologií seznámil a jestli je si vědom některých záludností - a to nemusí být až tak snadné zjistit. 

pátek 8. dubna 2016

Linq - k čemu použít Aggregate

K jednomu z předchozích článků, ve kterém jsem dal k dispozici cheatsheet pro Linq, se mne jeden známý zeptal, k čemu že je dobrý Aggregate - vždy si zatím vystačil například se Sum, Count či Average.

Nejlépe se vysvětluje na příkladě a zabrousím do oblasti hudebních alb: máme řetězec obsahující seznam délek jednotlivých skladeb a chceme získate celkový čas alba. 

středa 16. března 2016

Příklad na pohovor s programátorem - hotovost v pokladně

Na blogu jsem uveřejnil několik příkladů z pohovorů s uchazeči o místo programátora. Dovolím si tedy uveřejnit jeden z dalších možných příkladů, se kterým se lze setkat - na předešlé příspěvky jsem dostal emailem poměrně dost reakcí a překvapilo mne, že poměrně hodně lidí považuje příklady za jednoduché. Těžko to soudit, ale z mých několikaletých zkušeností ze zadávání podobných úkolů zvládne zadání implentovat méně než třetina kandidátů - a  zcela uspokojivých jsou pak tak jedno až dvě řešení z deseti.  Ono v poklidu u pracovního stolu vše vypadá jinak.

středa 10. února 2016

Vícevláknové zabíjení draků

Jeden z nejlepších průvodců základy vícevláknového programování pro mne byl a vlastně pořád je web od Josepha Albahari na adrese http://www.albahari.com/threading/.

Stručný a jasný popis, navíc ke stažení jako pdf, i když napsaný před mnoha lety, tak pořád aktuální.  A může být něco ještě lepšího?


pondělí 8. února 2016

LINQ - cheat sheet

Ve třech příspěvcích v poslední době jsem zmínil použití LINQu - byl to příspěvek jak vytvořit xml vstup pro SQL server, pak popis distinctu pěktrát jinak a nakonec byl LINQ použit i v řešení úlohy z pohovoru v článku Uspěli byste na pohovoru? Podruhé
LINQ je na jednu stranu jednoduchý prostředek pro práci s kolekcemi, na druhou stranu je velmi mocný a dovoluje jednoduše vyjádřit operace, které by jinak vyžadovali složitější zápis ve smyčkách. Nehledě na možnosti, které přináší při práci s data v databázích a datových souborech.

pátek 5. února 2016

Uspěli byste na pohovoru? Podruhé...

Jednou za čas přibíráme do týmu nové lidi - což znamená hodně pohovorů s uchazeči.  Jak jsem už napsal tady, tak spíše upřednostňuji rozhovor nad kouskem kódu - přitom se nejedná o žádné záludnosti. Uchazeč dostává také za úkol něco malého naprogramovat - jen je trochu potíž najít to správné zadání. Úkol by neměl být úplně triviální, ale zase nemůže být těžký. Většina lidí je navíc nervozní, ať již více čí méně a i to je třeba zohlednit.  Takže následující úloha se může v případě, že si ji čtete doma, v klidu, jevit jako velmi jednoduchá, možná až primitivní.