Какой метод программирования помогает вам больше всего избегать или устранять ошибки до их появления - PullRequest
12 голосов
/ 24 августа 2009

Я не имею в виду внешние инструменты. Я думаю об архитектурных моделях, языковых конструкциях, привычках. Меня больше всего интересует C ++

Ответы [ 28 ]

5 голосов
/ 24 августа 2009

Тестирование с актуальными, реалистичными данными с самого начала. И тестирование необходимо не только во время написания кода, но оно должно начинаться на ранней стадии разработки. Узнайте, какими будут ваши худшие варианты использования, и убедитесь, что ваш дизайн справится с этим. Если ваш дизайн выглядит хорошо и элегантно, даже несмотря на эти случаи использования, он может быть действительно хорошим.

Автоматические тесты отлично подходят для проверки правильности написанного вами кода. Однако, прежде чем приступить к написанию кода, вы должны убедиться, что вы строите правильные вещи.

5 голосов
/ 24 августа 2009

Я нахожу много проблем перед тем, как начать тестирование, используя

утверждает

4 голосов
/ 24 августа 2009

Я согласен со многими другими ответами здесь.

Специфично для C ++, использование 'const' и избегание необработанных указателей (в пользу ссылок и умных указателей), когда это возможно, помогло мне найти ошибки во время компиляции.

Кроме того, наличие политики «без предупреждений» помогает находить ошибки.

4 голосов
/ 24 августа 2009

Model-View-Controller и вообще все, что имеет контракты и интерфейсы, которые могут быть автоматически проверены модулем.

3 голосов
/ 24 августа 2009

Я считаю, что одноранговое программирование помогает избежать множества глупых ошибок, и все время порождает дискуссии, которые раскрывают недостатки. Кроме того, если кто-то может думать о том, почему вы что-то делаете, это делает все чище.

3 голосов
/ 24 августа 2009

Требования.

Исходя из моего опыта, наличие полных и полных требований - это шаг номер один в создании безошибочного программного обеспечения.Вы не можете написать полное и правильное программное обеспечение, если не знаете, что оно должно делать.Вы не можете написать надлежащие тесты для программного обеспечения, если вы не знаете, что оно должно делать;вы пропустите изрядное количество вещей, которые вы должны проверить.Кроме того, простой процесс написания требований поможет вам конкретизировать их.Вы находите так много проблем и проблем, прежде чем написать первую строку кода.

2 голосов
/ 25 августа 2009

код отзыва; Я лично нашел много ошибок в коде моих коллег, и они нашли ошибки в моем.

Проверки кода на ранней и частой основе помогут вам понять код друг друга (что помогает в обслуживании) и обнаружить ошибки.

Чем раньше вы обнаружите ошибку, тем легче ее исправить. Так что делай их как можно скорее.

Конечно, парное программирование доводит это до крайности.

1 голос
/ 24 августа 2009

Предложения по книгам: «Код завершен» и «Выпустить его» - это две книги, которые обязательно нужно прочитать на эту тему.

1 голос
/ 24 августа 2009

Это уже упоминалось здесь, но я скажу это снова, потому что я считаю, что этого нельзя сказать достаточно:

Ненужная сложность - заклятый враг хорошей инженерии.

Будьте проще. Если все начинает выглядеть сложным, остановитесь и спросите себя, почему и что вы можете сделать, чтобы разбить проблему на более мелкие и простые куски.

1 голос
/ 24 августа 2009

Согласованность стиля кодирования в проекте.

Не только пробелы и проблемы с табуляцией, но и способ использования кода. Всегда есть несколько способов сделать что-то. Когда одна и та же вещь выполняется по-разному в разных местах, это затрудняет выявление распространенных ошибок.

...