2009г.
Количество страниц:400
Учитесь извлекать максимум пользы из унаследованных систем, повышая их производительность, функциональность, надежность и сопровождаемость! Можете ли вы без особого труда изменить код и тут же получить ответную реакцию на внесенные изменения? Насколько понятен этот код? Если вы ответите на эти вопросы отрицательно, значит, вы имеете дело с унаследованным кодом и понапрасну тратите время и средства на разработку. В своей книге "Эффективная работа с унаследованным кодом" Майкл Физерс предлагает полноценные стратегические приемы эффективной работы с крупными базами унаследованного нетестированного кода. В основу этой книги положен материал, подготовленный автором к известным семинарам, организуемым компанией Object Mentor, включая приемы, которым автор обучил сотни разработчиков, технических руководителей и тестирующих программное обеспечение подчинять себе непослушные унаследованные системы.
В книге "Эффективная работа с унаследованным кодом" освещаются следующие вопросы:
- Представление о механизмах внесения изменений в программное обеспечение, включая ввод новых свойств, устранение программных ошибок, улучшение структуры кода, оптимизацию производительности.
- Перенос унаследованного кода в средства тестирования.
- Написание тестов, препятствующих внесению новых ошибок в код.
- Применение методов, подходящих для любого языка или платформы, с примерами кода на Java, C++, C и C#.
- Точное выявление мест в коде, где требуется внести изменения.
- Работа с унаследованным кодом, который не является объектно-ориентированным.
- Обращение с приложениями, у которых, на первый взгляд, нет вообще никакой структуры.
Кроме того, в книге "Эффективная работа с унаследованным кодом" представлены 24 способа разрыва зависимостей, помогающих работать с элементами программного обеспечения обособленно, чтобы сделать внесение изменений в код более безопасным.
Майкл К. Физерс работает в компании Object Mentor, Inc., занимающей ведущее в мире место в сфере предоставления услуг обучения, повышения квалификации, распространения знаний и руководства проектами по разработке программного обеспечения. В настоящее время он занимается обучением разработчиков со всего мира методам разработки за счет тестирования, реорганизации кода, объектно-ориентированного проектирования, программирования на языках Java, C++, C и C#, а также экстремального программирования. Майкл является автором первоначального варианта среды тестирования CppUnit, перенесенной на C++ из среды JUnit, а также среды интегрированного тестирования FitCpp, перенесенной на C++ из среды FIT. Он состоит членом Ассоциации по вычислительной технике (ACM) и Института инженеров по электротехнике и электронике (IEEE), а также председательствовал на трех конференциях разработчиков программного обеспечения CodeFest и OOPSLA.
Эта книга посвящена практическим вопросам эффективной работы с унаследованным кодом. В ней освещаются механизмы внесения изменений в унаследованный код, включая ввод новых свойств, устранение программных ошибок, улучшение структуры кода и оптимизацию производительности; способы переноса фрагментов кода в среду тестирования, особенности написания тестов для безопасного изменения и реорганизации кода, приемы точного определения мест для подобных изменений, а также подходы к обращению с унаследованным процедурным кодом. Кроме того, в книге на конкретных примерах кода, написанного на Java, C++, C# и C, демонстрируются способы разрыва зависимостей для работы с обособленными фрагментами кода и безопасного внесения в них изменений.
Книга адресована тем, кто имеет опыт разработки прикладного программного обеспечения и его сопровождения.
Содержание книги :
Часть I. Внутренний механизм изменений в коде
Глава 1. Изменения в программном коде
Глава 2. Работа с ответной реакцией
Глава 3. Распознавание и разделение
Глава 4. Модель шва
Глава 5. Инструментальные средства
Часть II. Изменение программного обеспечения
Глава 6. Изменения необходимы, а времени на это нет
Глава 7. Изменения до бесконечности
Глава 8. Как ввести новое свойство - Читать
Глава 9. Класс нельзя ввести в средства тестирования
Глава 10. Метод нельзя выполнить в средствах тестирования
Глава 11. Требуются изменения в коде, но неизвестно, какие методы следует тестировать
Глава 12. На одном участке требуется внести много изменений, но следует ли разрывать зависимости со всеми классами, имеющими к этому отношение
Глава 13. В код требуется внести изменения, но неизвестно, какие тесты писать
Глава 14. Убийственная зависимость от библиотек
Глава 15. Приложение состоит из сплошных вызовов интерфейса API
Глава 16. Код недостаточно понятен для его изменения
Глава 17. У приложения отсутствует структура
Глава 18. Когда тестовый код мешает
Глава 19. Как благополучно изменить процедурный код
Глава 20. Класс слишком крупный и его дальнейшее укрупнение нежелательно
Глава 21. Изменение одного и того же кода повсеместно
Глава 22. Необходимо изменить гигантский метод, но нельзя написать для него тест
Глава 23. Как узнать, нарушают ли что-нибудь изменения в коде
Глава 24. Сдаемся - дальнейшее улучшение невозможно
Часть III. Методы разрыва зависимостей
Глава 25. Способы разрыва зависимостей
Приложение. Реорганизация кода
Словарь специальных терминов
|