55
статически, таким образом, позволяя проверить, что приложение будет всегда
жить в пределах границ его ресурса.
Правило 4. Ни одна функция не должна быть длиннее того, что может
быть напечатано на отдельном листе бумаги стандартного формата с одной
строкой на оператор и одной строкой на декларацию. Как правило, это означает
приблизительно
не более 60 строк кода в функции. Объяснение: Каждая
функция должна быть логической единицей в коде, который является понятным
и поддающимися проверке как единица. Намного тяжелее понять логическую
единицу, которая охватывает множество страниц. Чрезмерно длинные функции
– часто признак плохо структурированного кода.
Правило 5. Плотность утверждений кода должна составлять в среднем
минимально
два утверждения на функцию. Утверждения должны
использоваться для проверки аномальных состояний, которые никогда не
должны случаться при исполнении в реальной жизни. Утверждения должны
быть независимыми от побочных эффектов и должны быть определены как
булевы тесты. Когда утверждение терпит неудачу, должно быть предпринято
явное действие восстановления, типа возвращения состояния ошибки,
вызывающего функцию
, которая выполняет утверждение неудачи. Любое
утверждение, для которого статическое инструментальное средство проверки
может доказать, что оно никогда не может потерпеть неудачу или никогда не
выполняется, нарушает это правило. Объяснение: статистика для
промышленного объема работ по программированию указывает, что проверки
блока часто находят, по крайней мере, один дефект на 10 – 100 строк
письменного
кода. Шансы перехвата дефектов значительно увеличиваются с
увеличивающейся плотностью утверждений. Использование утверждений часто
рекомендуется как часть мощной защитной стратегии программирования.
Разработчики могут использовать утверждения, чтобы проверить
предварительные и выходные условия функций, значения параметра,
возвращаемые значений функций и переменные цикла. Поскольку
предложенные утверждения независимы от побочных эффектов, они могут
быть выборочно блокированы
после испытания в программе с особыми
требованиями по производительности.
Правило 6. Объявите все информационные объекты при наименьшем
возможном уровне области действия. Объяснение: это правило поддерживает
основной принцип сокрытия данных. Ясно, что, если объект не находится в
области действия, другие модули не могут обратиться или разрушить его
значения. Точно так же, если
тестер должен диагностировать ошибочное
значение объекта, чем меньше число утверждений, где значение могло бы быть
назначено, тем легче диагностировать проблему. Правило также препятствует
повторному использованию переменных в многочисленных, несовместимых
целях, которые могут усложнить обнаружение ошибок.
Правило 7. Каждая вызываемая функция должна проверять возвращаемые