abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:11 | Bezpečnostní upozornění

    Red Hat řeší bezpečnostní incident, při kterém došlo k neoprávněnému přístupu do GitLab instance používané jejich konzultačním týmem.

    Ladislav Hagara | Komentářů: 0
    včera 23:33 | Nová verze

    Immich byl vydán v první stabilní verzi 2.0.0 (YouTube). Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | IT novinky

    Český telekomunikační úřad vydal zprávy o vývoji cen a trhu elektronických komunikací se zaměřením na rok 2024. Jaká jsou hlavní zjištění? V roce 2024 bylo v ČR v rámci služeb přístupu k internetu v pevném místě přeneseno v průměru téměř 366 GB dat na jednu aktivní přípojku měsíčně – celkově jich tak uživateli bylo přeneseno přes 18 EB (Exabyte). Nejvyužívanějším způsobem přístupu k internetu v pevném místě zůstal v roce 2024 bezdrátový

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-10-01. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Jedná o první verzi postavenou na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    včera 05:22 | Nová verze

    Byla vydána nová verze 4.6 svobodného notačního programu MuseScore Studio (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Komunita

    Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem věnovala 1,1 milionu dolarů (stejně jako loni) na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Rozdělila je mezi 29 organizací a projektů. Za 15 let rozdala 8 050 000 dolarů.

    Ladislav Hagara | Komentářů: 4
    1.10. 20:11 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.17. Díky 278 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    1.10. 16:11 | Nová verze

    Bylo vydáno openSUSE Leap 16 (cs). Ve výchozím nastavení přichází s vypnutou 32bitovou (ia32) podporou. Uživatelům však poskytuje možnost ji ručně povolit a užívat si tak hraní her ve Steamu, který stále závisí na 32bitových knihovnách. Změnily se požadavky na hardware. Leap 16 nyní vyžaduje jako minimální úroveň architektury procesoru x86-64-v2, což obecně znamená procesory zakoupené v roce 2008 nebo později. Uživatelé se starším hardwarem mohou migrovat na Slowroll nebo Tumbleweed.

    Ladislav Hagara | Komentářů: 3
    1.10. 16:00 | IT novinky

    Ministerstvo průmyslu a obchodu (MPO) ve spolupráci s Národní rozvojovou investiční (NRI) připravuje nový investiční nástroj zaměřený na podporu špičkových technologií – DeepTech fond. Jeho cílem je posílit inovační ekosystém české ekonomiky, rozvíjet projekty s vysokou přidanou hodnotou, podpořit vznik nových technologických lídrů a postupně zařadit Českou republiku mezi země s nejvyspělejší technologickou základnou.

    … více »
    Ladislav Hagara | Komentářů: 3
    1.10. 12:55 | Nová verze

    Radicle byl vydán ve verzi 1.5.0 s kódovým jménem Hibiscus. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (40%)
     (47%)
     (14%)
     (16%)
     (18%)
     (14%)
     (18%)
     (14%)
     (14%)
    Celkem 159 hlasů
     Komentářů: 10, poslední dnes 01:37
    Rozcestník

    How Not to Write a Programming Book

    1.3.2009 18:51 | Přečteno: 1654× | psaní | poslední úprava: 6.3.2009 10:51

    By this post I would like to start a longer series about common mistakes made by authors in programming books. If I waited until I was happy with the thoughts expressed in the post, I would most probably never finish a single one. Therefore I will intentionally publish the text a bit raw and maybe return to the interesting thoughts in subsequent posts or even edit the post after publishing. I will start with what seems to be my favourite topic lately, with bogus code samples.

    Bogus Code Samples

    Programming books are full of code samples you would never write in the real world (at least not in your sane mind). Almost nobody takes the pain to handle the error conditions. Is that tolerable? Checking the error conditions would make the code harder to read, especially in the lower languages, where you cannot take advantage of exceptions. And the code is often repeated in the book, which would further complicate the issue. On the other hand, almost everybody learns to ignore the return values and exception conditions this way and only starts doing otherwise after they burn themselves bad in the real world. This would probably require a deeper thought; I wanted to talk about something simpler – contrived sample code. Consider this:
    void sum(int x, int y, int& z)
    {
        z = x + y;
    }
    
    This is a real example taken from an introductory programming book (!), the code is meant to illustrate passing arguments by reference. In practice one would certainly pass the sum back using the function return value. Passing arguments by reference would be better illustrated by something like this:
    bool read_data(int& data)
    {
        if (everything_goes_fine())
        {
            data = …;
            return true;
        }
        else
            return false;
    }
    
    This is also a bit contrived: Would you call a function read_data? Would you signal success by returning true? Shouldn’t this better be solved by using a pointer? I am not a C++ programmer and made this sample up on the spot without context, so that I cannot answer these questions right now. But it would certainly be better if the autor could illustrate passing by reference using some example that can’t be solved simply using the function return value. Do not cheat the readers, do not pretend that a problem is harder than it really is.

    Another example of what not to do, again from a real programming book:
    #include <iostream>
    using namespace std;
    int main(void)
    {
        int x = 0;
        while (x++ < 5)
        {
            int y = 0;
            while (y++ < 5)
                cout << "X";
            cout << "\n";
        }
        return 0;
    }
    
    This is a while loop misused as a for loop. Of course you can reason that the author simply wishes to illustrate a point, like passing arguments or comparing two cycles. I think that contrived, unreal examples are bad in programming books, especially if not explicitly marked as such.

    Just as a beginning speaker of a natural language often cannot detect irony, beginning programmer cannot tell “real code” from the “sample code”. Autors sometimes remark that the code sample is only meant as an example and would be written otherwise in practice. This is almost always just an excuse. Of course, writing production-grade code is not always possible in the book, but does it really make sense to write a book full of code that nobody would write in practice?        

    Hodnocení: 73 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    1.3.2009 19:11 dad
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    olsó í glaub ned, dasse Sinn mocht, hier Beitróg ina Frendspróch zu póste.

    Das war Schwäbisch.

    1.3.2009 19:34 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Ich auch šprice dojč! :)

    Táto, ty de byl? V práci, já debil.
    1.3.2009 20:20 dad
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    je mozne (podle toho šprice) , ze jste se ucil nemcinu od nejakeho polaka?

    1.3.2009 23:54 freshmouse
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Nebo od někoho z východní části naší republiky. Jak jsem četl "šprice", znělo mi to jako "piče"...

    2.3.2009 12:07 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Ja ja, piče schön!

    Táto, ty de byl? V práci, já debil.
    1.3.2009 19:40 CET
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    heh, pri cteni nahlas mi to zni dost jako svycarska nemcina:)

    1.3.2009 20:23 dad
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    ten dojem je spravny, co vim, tak obyvatele jizniho badenska-wuerttemberska jsou jedini Nemci, kteri svycarum rozumi, neb obe jazykove skupiny hovori stejne hroznou hatmatilkou ...

    1.3.2009 22:09 Cestmir Houska
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    A co Tirolaci? Podle me mluvi taky dost podobne.

    houska avatar 3.3.2009 12:25 houska | skóre: 41 | blog: HW
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    co? a pro oba je to rodna rec? clovek kterej mluvi nemecky nerozumi jinymu cloveku kterej mluvi taky nemecky?! kam jsme se to dostali ...

    |🇵🇸 avatar 3.3.2009 13:04 |🇵🇸 | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Hoch němčina a Schwyzer němčina jsou něco jiného. Tak jako BrE a AmE.
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
    houska avatar 3.3.2009 14:10 houska | skóre: 41 | blog: HW
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    nerekl bych ze si american s britem/australanem/indem/JARanem nepokecaj ...

    slo mi o to jestli ty jazyky jsou od sebe opravdu tak daleko ze si nerozumi ...

    3.3.2009 14:50 dad
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    v nemecke televizi jsem videl svycarske zpravy, jsou povetsinou z titulky, jinak tomu skutecne vetsina Nemcu nerozumi, znam jednoho Svycara z Basileje a je to tak, ze se musi skutecne silne koncentrovat, kdyz chce mluvit spisovnou nemcinou. Nekteri starsi svycari to pry ale nedokazou vubec. Jina vec je, ze samozrejme nemecky svycar rozumi spisovne nemcine.

    1.3.2009 20:12 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    nuqDaq 'oH puchpa''e'ě
    Quando omni flunkus moritati
    1.3.2009 22:35 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Ní thuigim. Tá tinneas cinn orm. Póg mo thóin... /Gaeilge Éireann/
    1.3.2009 23:04 2009
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    英語を読むことができない

    2.3.2009 02:07 dad
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    presne taky muj nazor.

    2.3.2009 02:35 YYY | skóre: 29 | blog: martinek
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Tak na tohle jsem opravdu potreboval google translate ;-)
    2.3.2009 20:00 2009
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Je to copy-paste z translatora, takze to moze byt zle.

    |🇵🇸 avatar 2.3.2009 21:37 |🇵🇸 | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Ano, je to špatně.
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
    2.3.2009 22:21 2009
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Malo by to byt spravne:

    eigo o yomu koto ga dekinai - nemozem citat Anglictinu

    |🇵🇸 avatar 2.3.2009 23:12 |🇵🇸 | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Gramaticky špatně... nebo neumím číst? Nehledě k tomu, že máš chybu už jen v té transkripci do latinky.
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
    3.3.2009 20:13 2009
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Co tam je gramaticky zle?

    Niektore znaky sa prepisuju roznymi sposobmi. Doslovny preklad tej vety je: Nemozem robit citanie Anglictiny.

    4.3.2009 21:10 2009
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Tych prekladov je viac:

    eigo wo/o yomenai

    eigo wo/o yomemasen

    |🇵🇸 avatar 5.3.2009 01:31 |🇵🇸 | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    +/-
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
    |🇵🇸 avatar 2.3.2009 05:50 |🇵🇸 | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Musím si nahodit nějaké lepší písmo, takhle jsem tam vůbec neviděl nigori.
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
    andree avatar 2.3.2009 09:09 andree | skóre: 39 | blog: andreeeeelog
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    :-D slusne

    microcz avatar 2.3.2009 13:27 microcz | skóre: 18 | blog: Michalův zápisník | Praha
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    +1

    2.3.2009 17:53 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Ty první asi 4 znaky mi přijdou na Japonštinu nějaký složitý, skoro jak čínština. Je to normální japonština? [japonsky neumim ani ň ;-)]
    2.3.2009 19:53 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Prvé dva znaky sú rovnaké v japončine aj v čínštine (a znamenajú to isté), tretí znak je hiragana, takže určite to je po japonsky a nie po čínsky (a ten koniec vety je typická japončina). :)
    |🇵🇸 avatar 2.3.2009 21:44 |🇵🇸 | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Ještě dodám, že pro angličtinu se používá katakana イングリッシュ.
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
    3.3.2009 20:18 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Hm to je zajímavé ... sem vůbec nevěděl, že mají společné některé znaky ... a to se takle běžně používá, nebo to je výplod strojového překladu?
    |🇵🇸 avatar 3.3.2009 21:18 |🇵🇸 | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Ten překlad se mi nezdá. Každopádně v japonštině se běžně používají čínské znaky (kanji), které ovšem samozřejmě mají japonské čtení, pro gramatické záležitosti nebo přepis komplikovaných znaků se používá hiragana (slabičná abeceda) a pro přejatá slova se používá katakana (jiná slabičná abeceda) --- obě tyto abecedy jsou fonetické, nebo jak se tomu říká.
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
    2.3.2009 09:18 Tomáš
    Rozbalit Rozbalit vše Pointery

    Zdá se to jenom mně, že v příkladech chybí dereference pointeru? Tedy *z = x + y, případně *data ... .

    zoul avatar 2.3.2009 09:53 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Pointery
    Reference jsou v C++ v podstatě automaticky dereferencované ukazatele, takže nechybí:
    #include <iostream>
    using namespace std;
    
    void change(int& what)
    {
        what = 42;
    }
    
    int main()
    {
        int foo = 0;
        change(foo);
        cout << foo << endl; // 42
        return 0;
    }
    
    Jinak díky za první příspěvek v tématu :-)
    2.3.2009 10:23 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Ono je jednoduché kritizovat, že autoři učebnic neošetřují chybové stavy. Ale když si zkusíte nějaký učební text napsat, zjistíte, že to zase tak jednoduché není. Protože když budete chtít realisticky ošetřit všechny možné chybové stavy, několikařádková přehledná a názorná ukázka se nafoukne na několikanásobek délky, stane se naprosto nepřehlednou a čtenáři unikne podstata. Totéž platí pro ty nerealistické příklady: některé věci jdou demonstrovat na příkladech ze života, ale často ty reálné příklady opět trpí nenázorností a nepřehledností.
    zoul avatar 2.3.2009 10:40 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Však jsem psal, že zrovna to hlídání chybových stavů je ošemetná věc. A stejně tak souhlasím s tím, že některé příklady z praxe jsou nepřehledné a nenázorné. Je to otázka rovnováhy a vhodně volených příkladů – nikdo neříká, že psát knížky o programování je lehké. Od mnoha autorů jsou umělohmotné příklady bez kontroly chyb jen alibismus, to mi vadí. Například SICP hloupými příklady netrpí ani v nejmenším, podobně Velbloudí kniha. Pokud se někdo rozhodne psát knihu, měl by být schopen vybrat nebo napsat příklady na úrovni.
    2.3.2009 12:11 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Například SICP hloupými příklady netrpí ani v nejmenším
    SICP jsem četl a je to úžasná knížka. Klíčový je ovšem použitý jazyk: v C++ by podobné příklady měly několikanásobnou délku, a to bych nechtěl vidět pátou kapitolu. Když jsme ovšem u toho: můžete doporučit nějakou opravdu kvalitní učebnici C++? Český jazyk vítán :-) V poslední době uvažuju nad takovým cvičením, na které se právě hodí nějaký nižší jazyk. Nejradši bych se u toho aspoň trochu naučil C++, i když D vypadá taky super :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    2.3.2009 13:14 Ivan
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Vyborna knizka je www.amazon.com/Modern-Design-Programming-Patterns-Depth/dp/0201704315, jeji ceskej preklad je bohuzel dost tragickej. Vsechny odborny terminy jsou - nekdy i dost nasilne - prelozeny do cestiny, ale na druhou stranu maji vety casto anglicky slovosled.

     

    zoul avatar 2.3.2009 13:46 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    To je pravda, v tomhle ohledu má Scheme zjevné výhody. (Mimochodem, ale to spíš pro zábavu.) V knihách moc velký přehled nemám, ale náhodou mám doma už přes deset let Programovací jazyk C++ od Stroustrupa. Když jsem ho dřív čítal, ohromně se mi líbil, i když jsem skoro ničemu nerozuměl. Myslím, že je to výborná kniha, jen překlad do češtiny (Jaromír Šmejkal, Ben 1997) je bohužel příšerný, na hranici čitelnosti. Originál podle mě stojí za koupi, je to knížka na úrovni K&R, SICP a podobných.
    |🇵🇸 avatar 2.3.2009 15:44 |🇵🇸 | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Mně se líbily knížky od Viria, hlavně ta skripta FJFI o C++. Ale to je něco dost jiného.
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
    2.3.2009 15:53 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    Od Viriuse (he, to je jméno!) jsem četl Od C k C++ a s tím jsem teda spokojen nebyl ani trochu.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    3.3.2009 11:54 b*d
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Českej překlad nasazuje všemu korunu. Origianál je lepší. I když je potřeba používat slovník člověk se alespoň naučí klíčová slova pro google. 

    int read_data(int& data, int velikost_dat)
    {
        int readed = 0;
        for(; readed < velikost_dat ; readed++)
           if ( chyba ) return -2; 
           else ...
        return readed;
    }
    

    a máme příklad který se používá a je se smysluplnou návratovou hodnotou (o triku int vs char a EOF bych zatim treba pomlcel). Takže proč vymýšlejí autoři ptákárny a nedávají příklady ze STL?

    3.3.2009 12:15 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    readed???
    3.3.2009 19:12 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    :-D My grammar is gooder...
    4.3.2009 09:54 b*d
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book

    Je potřeba z Angličtiny odstranit některé zastaralé výrazy. Mladý brit pohledá v Googlu a bude si myslet že je to správně. Pak bude angličtina jednoduší pro celý svět.

     

    4.3.2009 14:56 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: How Not to Write a Programming Book
    To tvrdil uz Orwell. :-)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.