Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 104 105 106 107 108 109 < 110 > 111 112 113 114 115 116 .. 426 >> Следующая

Использование баррикад также иллюстрирует значимость принятия
решения об обработке ошибок на уровне архитектуры. Решение,
какой код находится внутри, а какой - снаружи баррикады,
принимается на уровне архитектуры.
8.6. Отладочные средства
Еще один ключевой аспект защитного программирования - отладка,
способная стать могучим союзником в быстром обнаружении
ошибок.
Не применяйте ограничения промышленной версии к отладочной
версии автоматически
Известным заблуждением программистов является предположение,
что ограничения промышленной версии относятся и ко времени
разработки. Промышленная версия должна работать быстро.
Отладочная - может себе позволить работать медленно.
Промышленная версия должна быть экономна с ресурсами.
Отладочная - может быть расточительной. Промышленная версия не
должна позволять пользователю делать опасные действия.
Отладочная - может предоставлять дополнительные возможности
без риска нарушить безопасность.
Одна моя программа интенсивно использовала четырехсвязный
список. Код этого списка содержал ошибки, и иногда список
повреждался. Я добавил пункт меню для проверки целостности
этого связного списка.
В отладочном режиме Microsoft Word содержит код, который в
момент простоя каждые несколько секунд проверяет целостность
объекта Document. Это помогает быстро обнаруживать повреждение
данных, что упрощает диагностику ошибок.
Будьте готовы поступиться скоростью и ресурсоемкостью во время
раз- работки в обмен на встроенные средства, позволяющие
процессу разработки двигаться более гладко.
Внедрите поддержку отладки как можно раньше
Чем раньше вы добавите отладочные средства, тем больше они
помогут. Обычно вы не добавляете отладочную информацию, пока
несколько раз не столкнетесь с проблемой. Если же вы внедрите
поддержку отладки после первого раза или перенесете ее из
предыдущего проекта, она будет помогать вам на протяжении всей
работы.
Девшштздмме сведения Об
использовании отладочного кода ь защитном программировании см.
"Writing Solid Code" (Maguire, 1993).
ГЛАВА 8 Защитное программирование 201
Используйте наступательное программирование
Исключительные случаи должны обрабатываться так, что-
- ' ^ Перекрестная ссылка Об обра-
бы во время разработки они были очевидны, а в промыш- бош
непрадвидвниых случаев
ленном коде - позволяли продолжить работу. Майкл Ховард см<
подраздел "Советы "о т~
и Дэвид Леблан назвали этот подход "наступательным про-
пользованию операторов
те"
граммированием" (Howard and LeBlanc, 2003). раздела 15,2.
Допустим, у вас есть оператор case, который, как вы ожидаете,
будет обрабатывать только 5 видов событий. Во время разработки
вариант по умолчанию нужно использовать для генерации
предупреждения "Эй! Здесь еще один вариант! Исправьте
программу!". Однако в промышленной версии реакция в этом
случае должна быть более вежливой. Можно, например, делать
запись в журнал ошибок.
Вот некоторые приемы наступательного программирования. ", ,
к ^ к к Неработающая программа обыч-
¦ Убедитесь, что утверждения завершают работу програм- и0
приносит меньше вреда, чем
мы. Нельзя, чтобы у программистов вошло в привычку работающая
плохо,
просто нажимать клавишу Enter для пропуска уже изве- Энди Хант
и Дэйв Томзс
стной проблемы. Сделайте проблему достаточно мучи- (Andy Hunt
and Dave Иниш)
тельной, чтобы ее исправили.
¦ Заполняйте любую выделенную память, чтобы можно было
обнаружить ошибки выделения памяти.
¦ Заполняйте все файлы и потоки, чтобы выявить ошибки файловых
форматов.
¦ Убедитесь, что при попадании в ветвь default или else всех
операторов case программа прекращает работу или еще как-то
заставляет обратить на это внимание.
¦ Заполняйте объекты мусором перед самым их удалением.
¦ Настройте программу на отправку вам журналов ошибок по
электронной почте, чтобы видеть, какие ошибки происходят в
рабочем ПО, если, конечно, это можно сделать в ваших
программах.
Иногда нападение - лучшая защита. Чем жестче требования во
время разработки, тем проще эксплуатация программы.
Запланируйте удаление отладочных средств
Если вы пишете код для себя, возможно, было бы хорошо оставить
всю отладочную информацию в программе. Но в коде для
коммерческого использования требования к скорости и размеру
скорее всего этого не допустят. Решите заранее, как избежать
постоянного перетаскивания отладочного кода в программу и из
нее. Вот несколько способов сделать это:
Для контроля версий и сборки программы используй-
S и ^ ~ Перекрестная ссылка 0
контро-
те инструменты ant и make Средства контроля версии ле версий
см. раздел 28.2.
позволяют создавать варианты программы из одних и тех
же исходных файлов. А инструменты для сборки позволяют вам
настроить включение отладочного кода в режиме разработки и его
исключение в коммерческой версии.
202 ЧАСТЬ II Высококачественный код
Используйте встроенный препроцессор Если в вашей программной
среде есть препроцессор, как, например, в C++, вы можете
Предыдущая << 1 .. 104 105 106 107 108 109 < 110 > 111 112 113 114 115 116 .. 426 >> Следующая