Nejrychlejší hledání logických chyb v programech

V poslední době většinu času, který trávím u počítače, představuje programování. Ať už je to diplomka a nebo projekty na FIT, kam jsem se taky dostal, stejně programuji. Mám pocit, že jediný rozdíl je v tom, jestli budu používat Fortran (diplomka) a nebo jazyk C. V obou případech je ale podstatné, aby programy fungovaly, fungovaly správně a tak, jak já chci. Je nutné v nich najít chyby. Formální a syntaktické chyby najde překladač — nedovolí vám přeložit projekt (a nebo vypíše varování). Jak ale na chyby logické struktury — tedy pokud subroutina dělá něco jiného, než chcete? Nejlépe se mi osvědčila metoda „rubber duck debugging“

  1. Vyžebrejte, půjčte si, ukradněte, vyrobte, kupte a nebo jiným způsobem sežeňte gumovou kachničku (nejlépe variantu „koupací kačenka“).
  2. Položte kachničku na desku stolu tak, aby dobře viděla na vás, váš stůl a hlavně na monitor. (Programátoři dle definice „Tvora, jenž mění kofein na zdroják“ uvaří hrnek dobrého kafe.)
  3. Podrobně kachničce vysvětlete, co přesně má váš kód dělat, tedy přesně definujte vstupní a výstupní data.
  4. Otevřete zdrojový kód a začněte řádek po řádku dopodrobna popisovat, co má kód dělat.
  5. V jistou chvíli (a pište si, že ta chvíle přijde) si uvědomíte, že to, co říkáte, že by měl kód dělat se ve skutečnosti neshoduje s tím, co kód dělá ve skutečnosti — chybu jste objevili.
  6. Kachnička bude dál sedět na stole šťastná s vědomím, že vám pomohla a příště zajisté pomůže zas.
  7. Pokud jste prošli celý kód až na konec, bod 5. nenastal a nebo program stále nefunguje, vysvětlovali jste málo podrobně a/nebo málo dávali pozor na to, co máte před sebou. Zkuste to ještě jednou a pamatujte — řádek po řádku a pořádně, protože kachnička se dívá!!!

Tento algoritmus hledání chyb je naprosto spolehlivý. V případě, že se vám ani přes možnosti uvedené v bodu 1. nepovede žádnou kachničku sehnat, posaďte vedle sebe kolegu/přítelkyni/vykládejte to hrnku kafe. Ale kachnička je 100%!

4 komentáře u „Nejrychlejší hledání logických chyb v programech“

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *