Jste zde

programování

Potřeba defaultního konstruktoru při vkládání do std::map

V příspěvku se podíváme na to, proč v C++ při vkládání objektů do std::map přes operator[] vyvstává potřeba mít definovaný defaultní konstruktor. Následně si ukážeme způsoby vkládání objektů, při kterých tato potřeba odpadá.

Udržitelný vývoj

Některé skutečnosti si člověk uvědomí či plně docení až u projektů, které trvají několik let a vystřídá se na nich více lidí. Tento příspěvek je o tom, jak učinit takové projekty udržovatelné, tedy schopné odolat náporu času a zásahům programátorů.

Zajímavosti z C++: Iterace přes výčet hodnot

Od C++11 lze napsat for cyklus přes daný výčet hodnot (např. 1, 2, 2, 8, 13) mnohem jednodušším způsobem, než tomu bylo v C++98. V tomto krátkém příspěvku se podíváme, jak na to. Mrkneme se i na jedno rozšíření připravovaného standardu C++1z, které kód ještě o něco zjednoduší.

Proč psát kód na jedné úrovni abstrakce

V dnešním příspěvku se podíváme na to, proč je dobré psát kód na jedné úrovni abstrakce (angl. single level of abstraction). Ukážeme si několik příkladů kódu, který tomuto principu nevyhovuje, poté jej upravíme a uvidíme, jaké výhody nám to přineslo.

Dva z mých oblíbených přednášejících o programování

Dnes bych chtěl krátce zmínit dva z mých oblíbených přednášejících o programování, včetně odkazů na shlédnutí některých jejich přednášek.

Vyhledání a odstranění zbytečných #includů hlavičkových souborů v C++

O důležitosti snižování počtu #includovaných hlavičkových souborů v C a C++ jsem zde již psal. Důvodem je urychlení překladu, především pak toho inkrementálního během vývoje. V dnešním příspěvku se podíváme na nástroj include-what-you-use, který umí zbytečné #includy detekovat a případně i automaticky odstranit či nahradit za dopředné deklarace.

Chyby v návrhu: duplikace znalostí

Existuje mnoho druhů duplikace. Nejznámějším typem je duplikování kódu. Mezi další typ patří strukturální duplikace, o kterém jsem psal nedávno (Deméteřin zákon). Dneska se podíváme na další typ: duplikace znalostí a s tím související princip DRY.

Méně známé skutečnosti o C++: size() nemusí vrátit unsigned int

Dnes se podíváme na to, proč se běžně psaný cyklus tvaru for (unsigned int i = 0; i < container.size(); ++i) může zacyklit.

Proč v C++ používat nullptr místo NULL či 0

Od C++11 je k reprezentaci nulového ukazatele možno použít nové klíčové slovo nullptr. V příspěvku se dozvíte, proč byste měli používat právě nullptr místo NULL či 0.

Deméteřin zákon aneb minimalizujeme strukturální závislosti

Již několikrát jsem ve svých příspěvcích zmiňoval Deméteřin zákon (angl. Law of Demeter). Dnes se podíváme na to, o co jde, k čemu je to dobré a co nám to přináší.

Stránky

Přihlásit se k odběru RSS - programování