Перевод статьи «Quality Begins With Code: 10 Ways to Reduce Software Bugs».


Баги в программах это напасть, преследующая всех разработчиков, независимо от уровня их навыков.
Мы знаем, почему баги появляются (путей много, от беспорядочного и сложного кода до неадекватного тестирования), но как уменьшить их число?
Полностью исключить появление багов нереально — подобное совершенство просто недостижимо. Но есть ряд простых шагов, которые можно предпринять, чтобы снизить их число.
Представляем вам 10 лучших подходов, применение которых позволяет уменьшить количество багов в коде.
1. Создавайте код, который можно протестировать
Обязательно убедитесь, что ваши тесты были провалены хотя бы единожды. Это ключевая концепция разработки через тестирование. Сначала пишите код, который должен неизбежно провалить тесты. Затем пишите код, который должен их пройти. Затем повторите этот цикл.
Таким образом ваш код точно будет тестируемым, а кроме того, вы поставите вопрос качества во главу угла всего процесса разработки. Если вы будете начинать проект, фокусируясь на тестируемости, вы сможете уменьшить количество багов, способных проявиться в дальнейшем.
2. Придерживайтесь простоты
Сложный код обречен иметь баги, а кроме того, его гораздо труднее тестировать. Ваш код должен делать только самые необходимые вещи, все остальное — лишь помехи.
Старайтесь не делать больших коммитов. Ваши коммиты должны быть краткими, маленькими, читаемыми, понятными и легко тестируемыми. Помните, что чем проще код, тем меньше багов и тем меньше времени уходит на их исправление. Удаляйте ненужный код и ни в коем случае не пишите сложный код без насущной необходимости.
3. Разбивайте ваш код
Подумайте о возможности разделить ваш код на независимые модули. Разделив свой код и распределив его по разным файлам, вы сможете тестировать каждую часть независимо от других.
Модульность делает код менее сложным и облегчает тестирование. В общем, все сводится к максимальному упрощению.


4. Не считайте комментарии лейкопластырем
Комментарии в коде должны быть как можно более краткими. Не нужно пытаться с их помощью решить проблему читаемости кода. Это не только вам не поможет, но и затруднит работу других разработчиков.
Вы можете использовать комментарии для того, чтобы указать другим разработчикам на возможные проблемы. Но если ваш беспорядочный код будет еще и дополнен длинными комментариями, это лишь увеличит количество проблем. Помните, что структура кода должна быть четкой, а комментарии — краткими.
В целом, старайтесь добавлять только комментарии, имеющие реальную ценность.
5. Учитывайте предупреждения компилятора
Не игнорируйте предупреждения компилятора. Они указывают на проблемы, которые могут привести к багам в коде.
Несмотря на то что некоторые предупреждения могут не идентифицировать баги, все равно следует обращать на них внимание. Таким образом вы сможете остановить нарастание проблем до того, как они станут критичными.
6. Тестируйте ваш код регулярно
Тестируйте, тестируйте и еще раз тестируйте! Осуществляя тестирование на разных этапах разработки, вы повышаете свои шансы выявить баги на более ранних стадиях, когда их легче исправить, чем если бы они были найдены позже.
Если вам кажется, что на это будет уходить слишком много времени, подумайте о возможности ускорить процессы при помощи автоматизации. То, что кажется дополнительным шагом в процессе разработки (и без того длинном), в долгосрочной перспективе может избавить вас от многих багов.
7. Не спешите
Когда на вашу команду давит необходимость успеть к нереалистичному дедлайну, вы с большей вероятностью будете допускать ошибки. Спешка и попытки срезать путь влекут за собой большие проблемы для создаваемого вами ПО и компании в целом.
Старайтесь не спешить и применять в разработке лучшие подходы — так вы избежите затратных (как в денежном, так и во временном отношении) ошибок.


8. Внедряйте стандарты написания кода
Это важно. Эффективные стандарты написания кода позволяют сделать разработку более единообразной. Также они дают четкие указания насчет того, как следует подходить к решению тех или иных проблем. Внедрение этих стандартов позволяет избежать распространенных ловушек, способных привести к багам.
В разных компаниях применяются разные стандарты написания кода. Какие-то свои стандарты могут быть даже в отдельных проектах. Вы как разработчик должны четко их придерживаться.
9. Используйте существующие библиотеки
Если вы нашли нужную вам функцию в готовом виде, протестировали и опробовали ее, — используйте ее в своем коде. Это сэкономит вам время и уменьшит риск появления багов.
Использовать готовые библиотеки очень разумно, так что не бойтесь этого.
10. Применяйте метод резиновой уточки
Метод старомодный, но действенный. Проверяйте свой код строчка за строчкой и читайте его вашей воображаемой (или вполне реальной) резиновой уточке. Это поможет вам убедиться, что ваш код четок, краток и легок для понимания любым разработчиком.
В определенных случаях бывает полезным парное программирование: оно помогает держать под контролем сложность программы. Когда над кодом работают две головы вместо одной, это может снизить возможность появления багов, порожденных сложностью кода.
Также не следует забывать о том, что ревью кода должны быть важной частью процесса разработки. Благодаря этим проверкам можно обнаружить потенциальные баги еще до тестирования.
Ставьте качество кода на первое место
Применение этих подходов на всех стадиях разработки поможет уменьшить количество багов, способных проявиться в дальнейшем.
Помните о правиле бойскаутов: оставляйте все после себя в лучшем виде, чем оно было до вашего появления. Берясь за кусок кода, делайте все возможное, чтобы улучшить его (с учетом лучших практик). Это не избавит вас от багов полностью, но поможет существенно уменьшить их количество.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]