Jste zde

Blog uživatele Petr Zemek

Ještě jednou a lépe: správa prostředků v C++

Dnes se podíváme na velmi užitečný koncept zvaný RAII, který usnadňuje správu prostředků a vede ke kvalitnějšímu kódu bez duplicit.

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

Jak být produktivnější: klid a koncentrace

V předchozích dvou dílech našeho seriálu o produktivitě jsme se zabývali správou, plánováním a plněním úkolů. Dnes se podíváme na další důležitý aspekt: klidné prostředí, které vám umožní plnou koncentraci na to, co děláte.

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.

Stránky

Přihlásit se k odběru RSS - Blog uživatele Petr Zemek