Dnes se v našem seriálu o chybách v návrhu podíváme na situace, při nichž bychom plnohodnotným využíváním typového systému zpřehlednili kód a učinili jej méně náchylným k chybám.
programování
Podíváme se na to, jak řešení zdánlivě jednoduchého úkolu může vést na chybu v programu.
Podíváme se na to, jak si lze v jazyce Rust jednoduše implementovat metodu na libovolném typu. Klidně i na standardním, vestavěném typu, jako je celé číslo. Něco takového bychom v jazycích jako C++, Java či Python hledali marně.
Kolega se mě nedávno ptal na mé vývojové prostředí. Tak jsem si říkal, že o tom mohu rovnou napsat na blog, kdyby to ještě někoho zajímalo :). Podíváme se na operační systém, správce oken, terminál a aplikace, které používám (programování, multimédia a další), včetně pár screenshotů a odkazů na mé konfigurační soubory.
Nedávno jsem narazil na zajímavou situaci, kdy mi překladač u C++ kódu hlásil varování, že vytvořený objekt není nikde použitý, ale přitom se na něm hned na dalším řádku volala metoda. Pojďme se společně podívat na onen kód a na to, zda měl překladač pravdu.
Aneb proč nedává smysl říkat "x
je konstantní reference" a že tím programátor ve skutečnosti myslí "x
je reference na konstantu".
Každý lepší textový editor by měl poskytovat podporu pro kontrolu pravopisu. V následujícím příspěvku si ukážeme, k čemu se to hodí. Navíc si vše názorně formou obrázků ilustrujeme na mém oblíbeném editoru Vim.
Ukážeme si dva případy, kdy přítomnost kulatých závorek v C++ na první pohled působí zbytečně, ale přitom má značný vliv na význam kódu. A nebojte, nebude se jednat o uzávorkování z důvodů priority operátorů :).
V příspěvku se podíváme na rozdíl mezi operacemi match
a search
u regulárních výrazů v jazycích C++ a Python. Především si však ukážeme záludnost, ve které se operace match
ve zmíněných jazycích liší. Velmi stručně se podíváme i na pár dalších jazyků.