neděle 16. července 2017

Funkcionální programování potřetí

Výsledný kód programu, využívajícího funkcionální přístup ke zpracování CSV souboru v předešlém příspěvku, byl trochu kostrbatý a špatně čitelný. Obsahoval příliš mnoho podmínek if.


Těm se lze vyhnout, pokud použijeme takzvaný railway přístup k zápisu kódu. Při tomto přístupu se na funkci díváme jako na kus kolejiště s výhybkou a na spuštěný kód jako na vláček, který po sestaveném kolejišti jede.

čtvrtek 22. června 2017

Funkcionální programování podruhé


Jak implementovat funkcionální přístup ukážu na jednoduchém validátoru CSV souboru. Je to poměrně jednoduchá úloha s těmito třemi zásadními operacemi:

  • z prvního řádku je nutné získat seznam sloupců
  • z následujících pak
    • získat seznam hodnot název sloupce - hodnota
    • jeden ze sloupců obsahuje primární klíč, duplicitní řádky tedy musíme vyloučit

úterý 20. června 2017

Zmatky v práci s AD

Active Directory je Microsoftí implementace adresářových služeb LDAP. A jak je MS dobrým zvykem, pokud chce programátor s touto službou spolupracovat, může si vybrat hned z několika možností.
Ty se navíc liší výkonem a možnostmi, takže je zkrátka asi nejlepší vědět a znát všechny - vždy mne překvapuje, jak i firma velikosti MS nedokáže dotáhnout některé věci k použitelnému stavu.


sobota 17. června 2017

Funkcionální programování

V poslední době jsem začal více využívat ve svém kódu principy funkcionálního programování. Zčásti to začalo použitím vzoru Maybe, ale rozvinul jsem to dále a zkušenost to byla tak dobrá, že se o ní podělím.

Hned na začátek pro ty, co mají přístup ke kurzům na pluralsight, uvádím odkaz na dobrý kurz, který vše pěkně dopodrobna vysvětluje - Applying Functional Principles in C# od Vladimira Khorikova.

Tento pán má i své vlastní stránky a dostupná je i knihovna s níže popsanými třídami

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.