Ошибки имеют большое значение для всех. Я всегда обнаруживал, что чем больше я программирую, тем больше я узнаю о программировании в целом. Я съеживаю код, который написал несколько лет назад !! Я начинал как любитель, и мне так понравилось, что я пошел в инженерный колледж, чтобы получить специальность по вычислительной технике (у меня последний семестр). Это то, чему я научился:
Я трачу время на то, чтобы действительно спроектировать то, что собираюсь написать, и задокументировать дизайн. Это действительно устраняет множество проблем в будущем. Является ли дизайн настолько простым, как запись нескольких пунктов о том, что я собираюсь написать, или полномасштабное UML-моделирование (:() не имеет значения. Это ясность мысли и цели и наличие материала, на который можно оглянуться, когда я приеду через некоторое время вернемся к коду, который наиболее важен.
Независимо от того, на каком языке я пишу, важно, чтобы мой код был простым и читабельным. Я считаю, что крайне важно не чрезмерно усложнять код и в то же время не упрощать его. (Трудно усвоенный урок !!)
Оптимизация эффективности и причудливые уловки должны применяться в конце, только когда это необходимо и только если они необходимы. Другое дело, что я применяю их только если я действительно знаю, что делаю, и я всегда проверяю свой код!
Изучение деталей, зависящих от языка, помогает избежать ошибок в коде. Например, я узнал, что scanf () - это зло в C!
Другие уже прокомментировали дзен написания тестов. Я хотел бы добавить, что вы всегда должны делать регрессионные тесты. (т.е. написать новый код, протестировать все части вашего кода, чтобы увидеть, не сломался ли он)
Временами сложно сохранять представление о коде, поэтому я всегда документирую свой код.
Я использую методы, чтобы удостовериться, что существует минимальная зависимость между различными частями моего кода. Интерфейсы, иерархии классов и т. Д. (Отделенный дизайн)
Думать перед тем, как я пишу код, и быть дисциплинированным во всем, что я пишу, - еще один важный навык. Я знаю людей, которые не форматируют свой код, чтобы его можно было читать (содрогаться!).
Хорошо читать источник других людей, чтобы узнать лучшие практики. Составлять свой список лучше! При работе в команде их должен быть общий набор.
Не будьте парализованы анализом. Написать тесты, затем код, затем выполнить и протестировать. Промыть, промыть, повторить!
Важно научиться читать мой собственный код и расчесывать его на предмет ошибок. Улучшение моего арсенала навыков отладки было отличным вложением. Я держу их в тонусе, помогая моим одноклассникам регулярно исправлять ошибки.
Когда в моем коде есть ошибка, я предполагаю, что это моя ошибка, а не компьютеры и работа оттуда. Это состояние души, которое действительно помогает мне.
Свежая пара глаз помогает в отладке. Программисты имеют тенденцию пропускать даже самые очевидные ошибки в своем собственном коде, когда они исчерпаны. Иметь кого-то, чтобы показать твой код - это прекрасно.
важно, чтобы кто-то бросал идеи и не был осужден. Я разговариваю с моей мамой (которая не программист), подбрасываю идеи и нахожу решения. Она помогает мне отбрасывать мои идеи взад и вперед и совершенствовать их. Если она недоступна, я разговариваю с моей любимой кошкой.
Я больше не разочарован ошибками. Я научился любить устранять ошибки почти так же, как программирование.
Использование контроля версий действительно помогло мне управлять различными идеями, которые я получаю во время кодирования. Это помогает уменьшить количество ошибок. Я рекомендую использовать git или любую другую систему контроля версий, которая вам может понравиться.
Как сказал Джей Баззузи - Код рефакторинга. Я только добавил этот пункт после прочтения его ответа, чтобы сохранить мой список полным. Вся заслуга ему.
Попробуйте написать повторно используемый код. Повторно используйте код, как ваш, так и из библиотек. Использование библиотек, в которых нет ошибок, для выполнения некоторых распространенных задач, действительно уменьшает количество ошибок (иногда).
Я думаю, что следующая цитата говорит об этом лучше всего: «Если отладка - это искусство удаления ошибок, программирование должно быть искусством их исправления».
Не обижай никого, кто не согласен. Я надеюсь, что этот ответ поможет.