Wstęp...................................................................... 13
I Wskazówki........................................................... 15
1 Na początek dobry projekt............................................. 19
Określanie problemu ................................................... 20
Zasada 1-3-5 .......................................................... 20
Rozwiązanie przy szukaniu problemu..................................... 21
Problem przy szukaniu rozwiązania ...................................... 22
Szukanie rozwiązania i problemu......................................... 22
Prostota to klucz do sukcesu............................................. 22
Znaczenie dobrego projektu ............................................. 23
Klient ma zawsze racje ................................................. 23
Projektowanie to proces cykliczny........................................ 24
Kodowanie to też proces cykliczny....................................... 24
Pracować sprytniej a nie dłużej .......................................... 24
Co dwie głowy to nie jedna.............................................. 25
Dwukrotne mierzenie przed cięciem...................................... 25
Kiedy powiedzieć dość ................................................. 25
Wybór właściwych algorytmów i struktur danych .......................... 26
2 Całkiem rozsądne zwyczaje............................................ 27
Zachowywanie ostrożności przy kopiowaniu fragmentów kodu .............. 28
Inicjalizowanie zmiennych lokalnych..................................... 29
Sprawdzanie argumentów............................................... 30
Sprawdzanie kodów zwrotnych .......................................... 31
Uniemożliwianie dzielenia przez 0 ....................................... 32
Uniemożliwianie obliczania reszty z dzielenia przez 0 ...................... 33
Zapewnianie zmian licznika pętli......................................... 33
0 = a zamiast a = 0 .................................................. 34
Strażnicy nagłówków................................................... 35
Liczenie bajtów w funkcjach wewnętrznych............................... 36
Liczenie bajtów w instrukcji mempcy .................................... 36
Const zamiast stałych liczbowych........................................ 37
Stałe const są wstępnie obliczane ........................................ 38
Deklaracje #deflne zamiast const ........................................ 38
Asercje zamiast lub oprócz komentarzy ................................... 39
Obsługiwanie wyjątków nawet po użyciu asercji ........................... 40