programování

Od Petr Zemek, 2010-01-17

Při přednáškách a přípravě na letošní zkoušky z Analýzy a návrhu informačních systémů a Bezpečnosti informačních systémů jsem si vzpomněl na pár pojmů, které bývají často zaměňovány a používány v opačném významu, i když je mezi nimi rozdíl. Mezi tyto pojmy patří např. validace a verifikace, metodologie a metodika a aplikační versus business logika (odmítám psát byznys logika, protože to vypadá divně). Ač je zde samozřejmě možnost, že tyto pojmy jsou na různých místech definovány a chápány různě, tak v následujícím příspěvku bych chtěl zmínit, jak to vidím já a různé zdroje, které jsem nalezl :).

Od Petr Zemek, 2010-01-09

Na námět jednoho mého čtenáře (fakt, ono zřejmě někdo ty moje příspěvky čte! :] j/k) se v tomto příspěvku budu zabývat vztahem mezi znakem (character) a bajtem (byte) v jazycích C a C++. Mimo jiné se dozvíte, proč strlen() vrací vždy počet bajtů v předané posloupnosti ukončené nulovým bajtem a proč nemůže sloužit k tomu, aby vracela počet širokých znaků (wide characters) předaného řetězce, např. pokud se jedná o řetězec znaků reprezentovaných v Unicode.

Od Petr Zemek, 2010-01-03

Ač jsou mnohdy tyto dva termíny mylně používány ve vzájemné souvislosti ("programuji v dynamickém jazyce, tedy dynamicky programuji"), tak mezi oběma termíny (koncepty) je velmi zásadní rozdíl, který je činí naprosto ortogonálními. Lze tedy využívat konceptů dynamického programování v jazyce, který není považován za dynamický a zároveň lze programovat v dynamickém jazyce, aniž by bylo využíváno dynamického programování. Cílem tohoto příspěvku je oba termíny vysvětlit, aby vynikl jejich rozdíl.

Od Petr Zemek, 2009-12-18

Programátoři v Pythonu, kteří k tomuto jazyku přešli z některého staticky typovaného jazyka (C++, Java, ...), mívají problém s tím, že se snaží používat koncepty, které mají zažité z jiných jazyků, ale které v Pythonu nemají co dělat. Jeden z nich se týká zneužívání funkce isinstance() a cílem tohoto příspěvku je na něj poukázat a vysvětlit, v čem je problém.

Od Petr Zemek, 2009-12-04

Při testování metodou bílé skřínky (white box) je obecná snaha o co největší pokrytí testovaného kódu (code coverage). Minimálně byste se měli snažit o to, abyste testy pokryli každý řádek vašeho programu, který stojí za to testovat (např. obě větve každého úplného if-else příkazu, ale už ne třeba situace typu assert false, 'x > 0; this should never happen'). O tom, jak si zjistit aktuální pokrytí vašeho kódu v jazyce Python bude následující příspěvek.

Od Petr Zemek, 2009-10-31

Konec října a začátek listopadu je sice obdobím polosemestrálních zkoušek, ale i přesto zkusím hodit do placu další hádanku. Za poslední tři hádanky byl průměr odpovědí čístá nula, takže i když se ani teď nikdo neozve, tak průměr neklesne. Je třeba myslet pozitivně :). Dneska se bude řešit korektní načítání čísel ze vstupu pomocí C++ proudů (streams).