Главная » 2013»Июнь»1 » Типичные ошибки проектирования. Библиотека программиста
06:16
Типичные ошибки проектирования. Библиотека программиста
Типичные ошибки проектирования - В области разработки безопасного и надежного программного обеспечения в последнее время наблюдается новый всплеск активности. Чтобы гарантировать создание устойчивой, безопасной системы, избежать ошибок проектирования, необходимо предпринимать определенные превентивные меры. Эта книга посвящена приемам и методам эффективной диагностики программного обеспечения. В ней приводится ряд типовых ошибок - повторяющихся соотношений между сообщением об ошибке и вызвавшем его дефекте программы. Книга будет интересна всем, кто знаком с программированием на языке Java и хотел бы научиться находить и исправлять ошибки в программах.
Название: Типичные ошибки проектирования. Библиотека программиста Автор: Аллен Э. Издательство: Питер Год: 2003 Страниц: 224 Формат: PDF Размер: 63,9 МБ ISBN: 5-88782-304-6 Качество: Отличное
Содержание:
Об авторе О техническом рецензенте Благодарности Предисловие Кому адресована эта книга Структура книги Веб-ресурсы От издательства Глава 1. Гибкие методы в хаотическом окружении Тенденции в разработке, реализации и поддержке программного обеспечения Увеличение спроса на надежные безопасные системы Осознание ограничений традиционных методов разработки программного обеспечения Доступность открытых программных проектов Спрос на языки программирования с платформо-независимой семантикой Обучение в быстро меняющемся мире Анатомия паттернов ошибок: зачем это нужно Что мы узнали Глава 2. Ошибки, спецификации и реализации Что такое программная ошибка? Спецификация как монолитный трактат C++ Python ML Pascal Преимущества спецификации Реализация - это не спецификация Построение экономичной спецификации с помощью «историй» Тесты для устранения ошибок в спецификации Блочные тесты не всемогущи Что мы узнали Глава 3. Процессы отладки и разработки Отладка как научный эксперимент Программное обеспечение специфицируется, собирается и выпускается пошагово Структура программы поддерживается максимально простой Программирование осуществляется парами Пользователь на месте всегда доступен Исходный текст программы принадлежит всем разработчикам Наличие тестов для «всего, что может сломаться» Включайте отладочные тесты в наборы блочных тестов Будущее: тест-ориентированные языки Что мы узнали Глава 4. Процессы отладки и тестирования Тестируемость программы Храните программу в модели, а не в представлении Используйте статический контроль типов для обнаружения ошибок Используйте медиаторы для инкапсуляции функциональности в линиях разломов Пишите методы с небольшими сигнатурами и аргументами по умолчанию Используйте методы доступа, не меняющие состояния памяти Специфицируйте внепрограммные компоненты при помощи интерфейсов Сначала пишите тесты Интерфейс GlobalMcxtel Что мы узнали Глава 5. Научный метод отладки Программное обеспечение как бессмертная машина Паттерны счиискж позволяют ускорить диагностику Что мы узнали Глава 6. О паттернах ошибок Почему важно знание паттернов? Почему именно эти паттерны ошибок? Как организованы паттерны Краткий справочник по отладке программ Глава 7. Фальшивая черепица Об этой разновидности ошибки Симптомы Причина, лечение и профилактика Командный паттерн Другие препятствия для вычленения кода Родовые типы Аспект-ориентированное программирование Что мы узнали Глава 8. Везде нулевые указатели! Они неинформативны Они неуловимы Глава 9. Болтающийся компонент Композитный и одноэлементный паттерны проектирования Об этом паттерне ошибки Симптомы Причина Лечение и профилактика Что мы узнали Глава 10. Нулевой флаг Об этом паттерне ошибки Симптомы Причина Лечение и профилактика Устойчивость против недостатка диагностических фактов Лучшее место для обработки исключений А как насчет старых программ? Что мы узнали Глава 11. Двойной спуск Об этом паттерне ошибки Симптомы Причина Лечение и профилактика Что мы узнали Глава 12. Лживое представление Об этом паттерне ошибки Симптомы Причина Лечение и профилактика Автоматизируйте физическую манипуляцию графическим интерфейсом пользователя Избегайте этих методов Лгут не только графические интерфейсы пользователя! Что мы узнали Глава 13. Вредительские данные Об этой разновидности ошибок Симптомы Синтаксическая причина Семантическая причина Лечение и профилактика Что мы узнали Глава 14. Сломанный диспач Об этой разновидности ошибок Симптомы Причина Лечение и профилактика Что мы узнали Глава 15. Тип-самозванец Об этой разновидности ошибок Симптомы Причина Лечение и профилактика Гибридные реализации Что мы узнали Глава 16. Расщепленный чистильщик Об этой разновидности ошибок Симптомы Причина Лечение и профилактика Что мы узнали Глава 17. Фиктивная реализация Об этой разновидности ошибок Симптомы Причина Обнаружение фиктивной реализации Лечение и профилактика Объединение исправлений Что мы узнали Глава 18. Осиротелый поток Об этой разновидности ошибок Симптомы Причина Лечение и профилактика Осиротелые потоки и графические интерфейсы пользователя Блочные тесты и многопоточность Что мы узнали Глава 19. Недостаточная инициализация Об этой разновидности ошибок Симптомы и причина Лечение и профилактика Лучше исправьте саму ошибку Что мы узнали Глава 20. Ошибки, связанные с зависимостью от платформы О зависимости от платформы Ошибки, зависимые от производителя Ошибки, зависимые от версии Ошибки, зависимые от операционной системы Что мы узнали Глава 21. Диагностический контрольный перечень Общие понятия Контрольный перечень разновидностей ошибок Глава 22. Паттерны проектирования для отладки Максимизация использования статического контроля Когда только возможно, используйте для полей ключевое слово final Используйте для методов ключевое слово final в тех случаях, когда они не должны переопределяться Включайте классы для значений по умолчанию Используйте контролируемые исключения, чтобы гарантировать, что все клиенты обрабатывают исключительные ситуации Определяйте новые типы исключений, чтобы точнее обрабатывать исключительные ситуации Разбивайте классы, экземпляры которых принимают одно из нескольких фиксированных состояний, на различные субклассы в иерархии Composite Минимизируйте количество операторов преобразования типов и проверки instanceof Используйте одноэлементный паттерн проектирования для минимизации использования операторов instanceof Минимизация количества ошибок в программе Вычленяйте общие фрагменты программы По мере возможности создавайте чисто функциональные методы Сигнализируйте об ошибке сразу, как только она обнаружится Обнаруживайте ошибки как можно раньше Помещайте в программу формальные утверждения Тестируйте программу как можно ближе к состоянию, в котором ее будет применять пользователь Не последнее слово Глава 23. Ссылки Веб-сайты Книги Приложение. Конструктор списков анализатора строк Словарь терминов Алфавитный указатель