neděle 25. září 2016

Konfigurace metody

Postupy zmíněné v článcích o konfiguračních souborech - zde a zde - jsem využil a udělal jsem si knihovnu pro vytvoření objektu a jeho naplnění hodnotami z konfigurace. Nicméně při sepisování požadavků jsem narazil na problém, že předání všech možných kombinací nastavení do objektu, respektive metody) by vedlo k mnoha přetížením dané  metody a celkově obtížnější orientaci v kódu (používám Code Analysis a tedy nejde jen tak použít nepovinné parametry, metoda se musí přetížit). 

čtvrtek 15. září 2016

Pár tipů pro práci s Visual Studiem - Cops and Resources

Pokud píšete kód a používáte pro jeho kontrolu jak Code Analysis (aka FxCop), tak i StyleCop, tak vás jejich hlášky, samozřejmě v závislosti na zapnutých pravidlech, dokáží někdy dovést k šílenství, či alespoň k jeho okraji. Zejména pokud neprochází i vygenerovaný kód, a to i v případech, že se o něj postaraly knihovny a nástroje od firmy Microsoft.

úterý 9. srpna 2016

Načtení objektu z konfiguračního souboru - 2

Nedávno jsem zde popsal způsob, jak snadno  načíst hodnoty z konfiguračního souboru do objektu v případě, že se použije appSettings a název klíče odpovídá názvu vlastnosti třídy. Někdy ale existuje požadavek vyjádřit konfiguraci více klasicky, tedy pomocí xml. I když :NET framework poskytuje způsob, jak xml z konfiguračního souboru převést na objekt, je tato možnost dle mého názoru krkolomná a lze to i jednodušeji.

neděle 31. července 2016

Poznámky z code review - čekací smyčky

Někdy je potřeba provést operaci, která může déle trvat. Navíc v případě, že se tato operace provádí delší než maximálně očekávanou dobu, je pak obvykle nutné provést nějakou další operaci - například prodloužit "zámek" nad vzkazem ve frontě apod. Obvykle se tedy spustí čekací smyčka, která hlídá nepřekročení časového limitu a je zrušena po úspěšném provedení hlavní operace.

pondělí 20. června 2016

Načtení objektu z konfiguračního souboru

V poslední době jsem narazil na pár projektů, kde jsou konfigurační hodnoty zapsány ve formátu, kterému pracovně říkám "flat".  Programátor nepoužil některou z obvyklých technik, ale místo toho v klíči  elementu v appSettings zachycuje částečně strukturu objektu a třídy a  poté určuje její hodnotu v atributu value.

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.