Moje oblíbená technika psaní unit testů je začít zvenku, od toho, jak se bude vaše třída volat. Je to jako kdyby jste navrhovali veřejnou knihovnu – chcete aby měla rozumné rozhraní a šla dobře používat. Tento přístup klade důraz na návrh tříd a jejich spolupráce. Implementace je až druhořadá záležitost, protože jde vždycky změnit, pokud nebude vyhovovat např. výkonnostně. V dnešním článku bych vám chtěl na příkladu Langtonova mravence ukázat, jak to funguje a jaké má tento přístup výhody a nevýhody.
Jak jsem prováděl pokusy na lidech
| 0 comments | Humanoids
V naší firmě probíhá pravidelně každého půl roku programátorský test. O smyslu takového počínání by bylo nepochybně možné pochybovat, nicméně letos na jaře vyšla příprava zadání na mě, takže jsem se mimořádně místo remcání soustředil na to, jak připravit zajímavou úlohu, která by mým drahým kolegům přinesla kromě obvyklého bodového hodnocení také nějaký hraniční zážitek.
ASP.NET MVC na FIM UHK J6 v rámci OWE
| 2 comments | MVC
Aneb zkratek není nikdy dost:-) Ale vážně, v pondělí 20. února budu mít přednášku o ASP.NET MVC na Univerzitě v Hradci Králové. Probereme čím se liší MVC od klasického přístupu tvorby webových stránek, základy ASP.NET MVC a jak v něm psát hezký testovatelný kód. Ukážeme si také některé nástroje, které podporují Test Driven Development v C#. Přednáška je otevřená pro veřejnost a začíná v 8:15 v místnosti J6, vchod zde: http://www.mapy.cz/s/35ae
Video a slajdy už jsou na webu!
Dart, Frog, Fling, Toss, Tip a spol.
| 1 comments | Dart
Kolem nového jazyka Dart vzniklo několik podpůrných (vesměs testovacích) projektů s kryptickými kódovými názvy. Nechť vám tento malý výkladový slovníček pojmů pomáhá k lepší orientaci v těchto nových krajinách.
Jednoduchý HTTP server v DARTu
| 0 comments | Dart
Nedávno přibyly do projektu Dart dvě příjemné novinky: Kompilace virtual machine pro Windows v rámci průběžného buildu, a možnost spouštět skripty nad virtual machine přímo z vývojovéjo prostředí Dart Editoru. Pojďme tyto novinky vyzkoušet na jednoduchém HTTP serveru.
Dart: Lehký úvod pro programátory C#
| 2 comments | Dart
Dart je kůl, pokud to ještě nevíte. Je to startovací droga dynamických jazyků pro programátory zvyklé na statické typování. Není tak dokonalý jako C#, ale i tak dosahuje vysoké úžasnosti a rozhodně je lepší než JavaScript. Ponechme nyní stranou předsudky a filosofické diskuse o užitečnosti nového jazyka a pojďme se podívat, jak Dart vypadá z pohledu programátora, který je léta navyklý užívat kód v C#.
Jak se připravit na Code Retreat
Chystáte se v sobotu do Prahy na Global Day of Code Retreat? Mám pro vás pár tipů co si vzít s sebou a jak se připravit.
Proč vyměnit Subversion za Git
| 4 comments | git, svn
Git je boží. To je jasné i pětiletému dítěti, které followuje ty správné accounty na twitteru. Jenže když pracujete v zavedené firmě, celkem jistě máte nějaký jiný (starý, ošklivý, morálně přežitý) systém pro správu zdrojáků. V našem případě je to Subversion. Vyplatí se nám přejít na Git?
Jak naprogramovat blog za 18 minut
| 7 comments | MVC
Dnes jsme s lidma z práce měli přednáškový blok na hradecké univerzitě, bylo to moje poprvé na akademické půdě! Během mé části vznikla jednoduchá webová demo aplikace postavená na ASP.NET MVC 3, využívající Entity Framework 4.1 Code-First pro uložení dat, Razor jako view engine a Markdown syntaxi pro formátování textu. Protože vymezený čas byl dost krátký, mám pár poznámek, na které nedošlo.
StructureAssertions – knihovna pro testování závislostí
| 2 comments | clean code, Design, NuGet, Reflection
V minulém postu jsem nastínil způsob, jak lze kontrolovat zakázané závislosti mezi třídami v aplikaci. Trochu jsem si zaexperimentoval a vytvořil knihovnu StructureAssertions a NuGet balíček, který si můžete nainstalovat do testovacího projektu a jednoduše závislosti otestovat.
Jak uhlídat závislosti ve velké aplikaci
UPDATE: Knihovnu pro testování závislostí si nyní můžete nainstalovat jako NuGet balíček. Více v následujícím postu.
U každé větší softwarové aplikace hrozí, že kód začne časem degradovat. Jedním z typů degradace jsou závislosti, které porušují původní architektonický návrh. Modelový příklad: v ASP.NET MVC aplikaci platí, že model nesmí referencovat žádný controller. Jak ale takové pravidlo vynutit, když jsou modely i controllery v jednom Visual Studio Projectu?
Jak přidat do projektu nový soubor při instalaci NuGet balíčku
Poprvé jsem byl postaven před nutnost napsat instalační skript pro NuGet balíček. Chtěl jsem úplně triviální věc – přidat do projektu link na několik souborů a nastavit jim vlastnost "Copy to Output Directory" na "Copy if newer". Nešlo to úplně tak hladce a proto si zde o tom ublogávám.
Jak jsme jeli na CodeRetreat do Berlína
Minulý týden jsme si udělali s kolegou @bajtosem, jeho ženou a novým kamarádem @mictechem príma výlet do Berlína. Hlavním cílem bylo zúčastnit se akce Code Retreat Berlin 2011. Samozřejmě došlo i na networking, socializing, hangouting, gaststätting, beer-evaluating a sightseeing (neboli sezení v hospodě a motání se s kocovinou po městě druhý den), o tom ale třeba někdy příště. Dnes bych se chtěl s vámi podělit, o čem je Code Retreat a co mi to dalo.
Přednáška o ASP.NET MVC 2
| 1 comments | MVC
Innovator of the Year
| 1 comments |