Proč používat Docker

Docker používáme přes dva roky, takže máme celkem jasno, k čemu ho použít a k čemu určitě ne. Když se ale bavím s lidmi mimo náš tým, tak mě často zaskočí nízké obecné povědomí o možnostech Dockeru, které možná pramení z toho, že je to něco, o čem se hodně mluví, ale reálně si ho dost lidí ani lokálně nezkusilo. Přitom ekosystém Dockeru je extrémně přívětivý pro programátory (vlastně to považuji za hlavní přínos Dockeru) a dokázala ho v pohodě ovládnout i taková Windows lamka jako já, jejíž znalost Linuxu se omezovala na příkazy ls, cd, cp, rm a cat 🙂 Proto bych chtěl tímhle článkem ostatním dodat odvahu ten bájný Docker také zkusit a začít využívat jeho výhody.
Celý příspěvek

Pět optimalizací v .NET (které nepoužijete)

Během vývoje naší interní aplikace v Avastu jsme museli řešit nejeden problém s výkonem. Vždy jsme postupovali tak, že jsme nějakým způsobem změřili výkonnost aplikace a až na základě toho dělali příslušná opatření – a takový přístup bych doporučil vždy – nemá moc cenu odhadovat, co by asi tak mohlo stát za neuspokojivou výkonností, nejlepší je to změřit. Samozřejmě jsou ale vyložené boty, kterých se je třeba vyvarovat vždy. V tomto článku bych rád ukázal pár zajímavých triků pro vyšší výkonnost, které rozhodně nešlo jen tak vykoukat z kódu.
Celý příspěvek

Poznámky z NDC Oslo 2013

Norwegian Developers Conference je třídenní konference především pro vývojáře, kteří se pohybují okolo .NETu. Témata se ale netýkají výhradně Microsoftích technologií, člověk může zajít i na velmi kvalitní přednášky o obecnějších tématech – např. přednášky Roberta C. Martina jsou zárukou kvality a i jen kvůli nim se vyplatí na NDC vyrazit.
Zajímavostí této konference je to, že v minulých ročnících dávala videa ze všech přednášek volně ke stažení. Protože konference má 8 paralelních tracků a témata i přednášející jsou na úrovni, skončil jsem poslední dva roky vždy s cca 40 staženými videy, z nichž jsem nakonec kvůli nedostatku času (já vím, bla bla bla) viděl tak 10. Proto jsem se rozhodl (a firma mi to umožnila) vyrazit na konferenci osobně a mít tak jistotu, že to nejzajímavější uvidím a vstřebám.
Celý příspěvek

Lepší bindování kolekcí v ASP.NET MVC

Výchozí model-binder v ASP.NET MVC se nechová v případě kolekcí vždy tak intuitivně, jak bychom předpokládali. Naštěstí máme ale k dispozici dost extension-pointů, kterými můžeme výchozí chování jednoduše upravit tak, jak nám vyhovuje. Rád bych nejprve ukázal přirozenější způsob bindování polí, a dále pak bindování Dictionaries.
Celý příspěvek

Atributy jsou zlo

Atributy v C# (v ostatních jazycích známé např. jako anotace) považuju ve většině případů za zlo, protože porušují SRP – třída pak dělá více než musí – navíc si s sebou nese metadata. Na první pohled vypadají atributy jako super věc, ale snadno můžete narazit na situaci, kdy se vám vymstí mít všechno na jedné hromadě – a pak budete litovat, že používáte atributy.
Celý příspěvek

Dependency Injection a Lazy Loading

Pokud vám název článku něco připomíná, nemýlíte se – nechal jsem se inspirovat článkem Davida Grudla, na nějž bylo mnoho zajímavých reakcí. Ano, i v PHP komunitě se řeší věci jako dependency injection, lazy loading, SOLID nebo čistý kód 🙂
V tomto článku přináším můj pohled na daný problém a popíšu elegantní způsob řešení v .NETu. Nechci polemizovat s Davidem ani porovnávat jeho řešení s mým – jeho článek berte prosím jen jako inspiraci, které mě vedla k sepsání tohoto článku.
Celý příspěvek

Architektura škálovatelných aplikací

Je to už nějaký pátek, co se zajímám o vzor CQRS (Command Query Responsibility Segragation), který nachází uplatnění především u dvou typů aplikací, které ale nejsou tak časté – velmi komplexní aplikace (díky CQRS se lze lépe vypořádat s komplexitou) a velmi velké a/nebo vytížené aplikace (které potřebují škálovat). Ačkoliv se takto může zdát znalost CQRS pro běžného programátora zbytečná (ne každý je Google), je s CQRS spjato mnoho velmi zajímavých konceptů, které mohou nalézt uplatnění i u běžných aplikací. Proto jsem se rozhodl sepsat z mého hlediska to nejzajímavější, co mě CQRS naučilo.
Celý příspěvek