Книга: Искусство программирования для Unix
19.2.3.4. Выполняйте контроль ошибок в коде перед выпуском версии
19.2.3.4. Выполняйте контроль ошибок в коде перед выпуском версии
Под "контролем ошибок" (sanity check) здесь подразумевается использование всех доступных инструментов, обладающих приемлемой способностью к обнаружению ошибок, которые человек склонен пропускать. Чем больше таких ошибок обнаружат данные инструменты, тем меньше пользователям и самому разработчику придется с ними бороться.
При написании программ на C/C++ с использованием GCC рекомендуется выполнять тестовую компиляцию с параметром -Wall и устранять все ошибки перед каждым выходом новой версии. Кроме того, стоит компилировать код всеми доступными компиляторами — разные компиляторы часто обнаруживают различные проблемы. В частности, скомпилируйте программу на машине с действительно 64-битовой архитектурой. Базовые типы данных могут изменяться на 64-битовых машинах, и поэтому в них часто обнаруживаются новые проблемы. Найдите систему Unix-поставщика и запустите утилиту lint для проверки программы.
Используйте инструменты, которые ищут утечки памяти и другие ошибки времени выполнения. Программы Electric Fence и Valgrind — хорошие инструменты, доступные в виде открытого исходного кода.
Для Python-проектов полезным инструментом проверки может оказаться программа PyChecker <http://sourceforge.net/projects/pychecker>. Она часто обнаруживает нетривиальные ошибки.
При написании программ на Perl проверять код следует с помощью ключа -с
(и возможно -T
, если он применим). Используйте ключ -w
и конструкции "use strict
". (Дальнейшую информацию можно найти в документации на Perl.)
- 19.2.3.1. Не полагайтесь на частный код
- 19.2.3.2. Используйте автоинструменты GNU
- 19.2.3.3. Тестируйте код перед выпуском версии
- 19.2.3.4. Выполняйте контроль ошибок в коде перед выпуском версии
- 19.2.3.5. Проверяйте орфографию в документации и README-файлах перед выпуском версии
- 19.2.3.6. Рекомендованные практические приемы переносимости кода C/C++
- 19.2.3.5. Проверяйте орфографию в документации и README-файлах перед выпуском версии
- Перехват ошибок
- Обработка перехваченных ошибок
- Улучшенное время отклика для версии SuperServer
- Другие изменения в 7-й версии InterBase
- Определение версии клиента
- Отличительные особенности новой версии
- 2. Пример создания базового отношения в записи на псевдокоде
- Контрольные вопросы
- 7.9 Будущее управления хранилищами по версии ассоциации SNIA: стандарты SMI
- Версии служб Windows SharePoint
- Приложение 10. Коды ошибок