Описание переменных

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

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

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

В процессе проверки нужно ответить на четыре вопроса.

1. Является ли код необходимым и достаточным? Проверьте, все ли шаги алгоритма закодированы и нет ли излишних операторов, непонятных или приводящих к ошибкам.

2. Правильно ли используются поступающие извне данные? Проверьте, соответствуют ли описание, обработка и диапазон переменных, получаемых извне, их использованию в других местах.

3. Применяются ли локальные переменные в соответствии с их типом? Проверьте, не ли непредусмотренных переменных, каждая ли применяется в соответствии с типом, не выходят ли они за пределы области допустимых значений.

4. Определена ли каждая переменная до ее использования? Убедитесь в том, что в программе не подразумеваются неявно начальные значения некоторых переменных, а все они явно устанавливаются либо во время компиляции, либо присваиванием перед использованием.

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

Метки: , ,

Записи по теме

Комментировать

Введите код