Набрів тут на цікаву статтю про життя без дебагера. Тут йдеться про щось на кшталт gdb, що дозволяє покрокове відслідковування. В статті правильно сказано про проектування, втім не розкрито деталей. Як правило, більшість функцій можна зробити короткими, десь до 20-ти рядків із невеликою кількістю параметрів, зазвичай не більше аніж три. Мінімізувати кількість галужень максимум до трьох-чотирьох. До цього мене привчив Lisp, де ти матимеш проблеми, якщо не будеш дотримуватись цих правил. А також, де це можливо або не занадто дорого — юніт-тести. Вказана структура сильно полегшує їхнє написання.
