Уникайте фантазійного кодування. Чим складніший код, тим більше шансів на помилки. Зазвичай у сучасних системах чітко написаний код буде досить швидким і малим.
Використовуйте наявні бібліотеки. Найпростіший спосіб не мати помилок при написанні програми утиліти - це не писати її.
Вивчіть кілька формальних прийомів для більш складних речей. Якщо є складні умови, прибийте їх ручкою та папером. В ідеалі знати деякі методи доказування. Якщо я можу довести код правильним, це майже завжди добре, за винятком великих, тупих, очевидних помилок, які легко виправити. Очевидно, що це йде лише так далеко, але іноді можна формально міркувати про невеликі, але складні речі.
Що стосується наявного коду, навчіться рефакторингу: як зробити невеликі зміни в коді, часто використовуючи автоматизований інструмент, який робить код більш читабельним, не змінюючи поведінку.
Не робіть нічого занадто швидко. Виділивши трохи часу наперед, щоб зробити все правильно, перевірити, що ви зробили, і подумати над тим, що ви робите, може пізніше окупитися.
Щойно ви написали код, використовуйте те, що у вас є, щоб зробити його гарним. Тести одиниці чудові. Ви можете часто писати тести достроково, що може бути чудовим зворотним зв'язком (якщо це робиться послідовно, це розробка тесту). Компілюйте з опціями попередження та зверніть увагу на попередження.
Запропонуйте комусь ще подивитися код. Офіційні огляди кодів хороші, але вони можуть бути не в зручний час. Потягніть запити чи подібні, якщо ваша scm не підтримує їх, дозволяють асинхронні огляди. Перевірка друзів може бути менш офіційним оглядом. Парне програмування забезпечує дві пари очима на все.