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. 

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í.

Monitor pro vývojáře

Nedávno jsem si vybral laptop, nyní jsem si chtěl dopřát i lepší externí monitor - obrazovka laptopu je malá a pohodlí práce před velkým monitorem je k nezaplacení. U výběru pracovního monitoru ale mám jasno - už dlouho používám jen monitory značky Dell a řady Ultrasharp. Poměr cena a užitná hodnota mi u nich přišel vždy nejlepší, navíc polohovatelný stojan je pro práci příjemný, stejně jako možnost natočit si třeba druhý monitor "na výšku".

pondělí 1. února 2016

Visual Studio 2015 - deset zajímavých rozšíření


Visual Studio je v nové verzi 2015 zase o kousek dokonalejší než předchozí verze. Ale samozřejmě není naprosto dokonalé a tak při své práci pořád používám nějaká rozšíření. Pokud možno bezplatné - šetří se všude a tak koupě licence nějakého ryze komerčního produktu často není možná. Takže tady je seznam deseti rozšíření, která mám nainstalována.


čtvrtek 28. ledna 2016

Hrátky s Linqem aneb Distinct pětkrát jinak


Dotazovací jazyk LINQ není asi nutné nějak detailněji představovat - je součástí .NETu už pěkně dlouho. Použití našel nejen jako součást Entity Frameworku, kde umožňuje přístup k datům v databázi i bez znalosti SQL, ale prakticky všude, kde je potřeba zpracovávat kolekce. 
Jak se píše na české Wikipedii, "LINQ přináší nový způsob pro dotazování nad jakýmikoliv daty, usnadňuje jejich tvorbu, třídění, jejich propojování i vyhledávání v nich.... je možné v něm manipulovat s různými daty."

středa 27. ledna 2016

Záznamy přednášek na NDC London 2016


V Londýně se od 11. do 16. ledna tohoto roku konala konference NDC (za touto zkratkou se skrývá plný název, tj. Norwegian Developers Conference  - myslím, že nemá cenu pátrat, proč se norská vývojářská konference koná mimo Oslo už nejen v Londýně, ale i v Sydney. Značka se dobře zavedla a proč ji nevyvážet, že :-). Tyhle konference začalil v roce 2008 a troufám si tvrdit, že překonali kdysi oblíbený TechEd. 

pátek 22. ledna 2016

Tisk příspěvku na Blogspot a kopírování kódu z Visual Studia jako HTML

První blog jsem si kdysi založil na vývojaři a pořád ho tam ještě mám - http://blog.vyvojar.cz/mstr/. Je to prakticky už jeden z posledních aktivních blogů na tomto kdysi aktivním serveru. Na svoji dobu nebyl špatný, ale nějak ustrnul, občas je nedostupný a psaní a zejména formátování příspěvků nebyla snadná práce. 

čtvrtek 21. ledna 2016

Poznámky z code review - vytvoření xml řetězce

Při práci s daty uloženými na SQL serveru je často nutné předat složitější data, než dovolují jednoduché datové typy vstupích parameterů. Tento problém řeší MS SQL server možností předat v parametru xml, se kterým lze následně v uložené proceduře pracovat. K vytvoření xml přistupují programátoři různě  - ale obecně je asi dobré používat jeden přístup, který by měl vycházet i z možností jazyka a "vypadat" dobře.

Ztracen ve verzovacím pekle .NETu podruhé

Uplynulo pár dnů a přehled aktuálních verzí v .NETu je zastaralý - dalo by se říci, že Microsoft peklo už jen rozšiřuje, hlavně svým posledním kouskem, kdy původně oznámená  jména jako ASP.NET 5 mění na ASP.NET CORE 1.0 apod. (více na blogu Scotta Hanselmana). Děsí mne trochu ta tečka a nula za ní, vypadá to totiž tak, že přijde záplava verzí 1.1, 1.2, 1.3 apod.
Přehled jsem tedy aktualizoval a  nová verze je ke stažení zde.

úterý 19. ledna 2016

Maybe - návrhový vzor

Výsledek obrázku pro pluralsightPokud máte štěstí na dobrého zaměstnavatele, máte možná předplacen přístup ke službě Pluralsight. A třeba si to někdo platí i sám - roční cena je kolem 500 dolarů ročně za plný přístup, ten částečný pak stojí ročně 300 dolarů. Platit lze i měsíčně, pak jsou poplatky 42, respektive 25 dolarů. Zřízením účtu získáte přístup k několika tisicům kurzů na různá témata. Výhodou je, že kurzy mají určitou vyšš úroveň a jdou často více do hloubky, než volné materiály, které jsou k nalezení na Internetu, popřípadě výuková videa na YouTube či záznamy z vývojařských akcí. 

pondělí 11. ledna 2016

Registrační značka jako dekorace za 600 Kč, aneb jak nepsat zákony

Hned s nástupem prvního pracovního týdne tohoto roku se v tisku objevily články, zabývající se "skvělou" novinkou z dílny Ministerstva dopravy a to značkami na přání a možností získat třetí registrační značku.  Výhody či nevýhody značky na přání nehodlám probírat - v tisku se na toto téma objevilo dostatek článků, včetně upozornění na nedostatky právní úpravy. Ale co je překvapující, nikdo se zatím příliš nezabývá druhou novinkou, totiž možností získat další tabulku s registrační značkou.

pátek 8. ledna 2016

Alternativa k MS Visio


 V minulém příspěvku jsem zmínil, že pro běžné dokumenty a domácí použití už téměř nepoužívám programy jako Word  či Excel z balíčku Microsoft Office. Ovšem netýká se to jen těchto programů - například Visio jsem si nahradil aplikací Draw.IO, kterou lze jednoduše do Google Drive doinstalovat a opět si využívat všech výhod, které to přináší.



čtvrtek 7. ledna 2016

Netradiční skript pro Google Sheets

Na počítači mám sice nainstalovaný balík MS Office, ale pro soukromé účely jsem už dlouho žádný z programů nepoužil - nějak to není potřeba. Většinu dokumentů jsem si navykl vytvářet na svém Google Drive a  Word, Excel a podobné programy tak již nepotřebuji. Je sice pravda, že Google aplikace jsou omezené, ale já soukromě neřeším žádné složité tabulky a ani nepotřebuji všechny schopnosti Wordu k napsáni dopisu či podobného nenáročného dokumentu. Naopak výhodou je dostupnost dokumentů na každém dalším zařízení, snadné  sdílení a jednoduchost - a navíc je to zadarmo. 

středa 6. ledna 2016

Toshiba: leading innovation (in cheating) - aneb malá zkušenost s Portege a reklamací

Že není příliš dobré nakupovat u podvodníků mi potvrdila poslední zkušenost s firmou Toshiba. V létě jsem si od této společnosti koupil laptop Portege, viz příspěvek Jaký vybrat notebook pro.....
Po pár měsících nepříliš intenzivního používání (na práci mam jiný přístroj) se mi začalo nepěkně ošoupávat tlačítko pro touchpoint. Řekl jsem si, že o nic nejde, ne vždy se musí vše podařit, navíc mám záruku NBD na tři roky, reklamuji a ať se starají.

úterý 5. ledna 2016

Ztracen ve verzovacím pekle .NETu

Kdysi dávno vycházeli články o DLL pekle - v dobách před .NETem byl problém sladit všechny verze knihoven používaných programem - tenhle termín je dobře vysvětlen na wikipedii: https://cs.wikipedia.org/wiki/DLL_peklo

.NET kdysi sliboval to vše změnit - a je pravdou, že ty hlavní problémy se vyřešili. Ale z původně přehledného systému se pomalu stává otesánek....

neděle 3. ledna 2016

McDonalds Rakousko - lednové slevové kupóny


Pokud plánujete výlet v lednu či začátkem  února do Rakouska, tak tady jsou ke stažení slevové kupóny do McDonalds. Více informací o nabídkách fast-foodu za našimi hranicemi je pak ve star39m článku na blogu http://martinstrimpfl.blogspot.com/2015/02/rychle-levne-jidlo-na-cestach.html

Lze ušetřit pár eur a dostat něco málo navíc - třeba kuřecí  nugetky, v Rakousku pak mají většinou neomezené kelímky.