ОПИСАНИЕ
Впервые в Украине!
Майкл Физерс является основателем и директором R7K Research & Conveyance (компания, специализирующаяся в области разработки программного обеспечения и организации проектирования). Майкл также является автором книги «Эффективная работа с унаследованным кодом» (Prentice Hall, 2004).
На протяжении многих лет, Майкл провел значительное количество времени, помогая командам получить контроль над большими базами кода в C, C++, C#, Java и Ruby. В настоящее время он помогает командам и проводит исследования в области коммуникации бизнес/развития, предотвращения ошибок проектирования с помощью практики и массивов функциональных языков программирования.
Моя цель, — говорит Майкл, — состоит в том, чтобы сделать разработку программного обеспечения более эффективной и интегрированной.
Test Driven Development и рефакторинг являются мощными инструментами. С их помощью вы можете добавить новый код к системам и сделать существующий код более легким в обслуживании.
Цели воркшопа
Вы сможете:
● понять, что же такое унаследованный код
● изучить различные методы для разрушения внешних зависимостей
● изучить различные методы для взлома внутренних зависимостей
● понять, когда используют каждый из методов
● изучить различные стратегии для рефакторинга кода
● узнаете, как определить точки изменения
● узнаете, как найти точку перегиба
● понять, как писать эффективные тесты для унаследованного кода
Working Effectively with Legacy Code
Test Driven Development and Refactoring are powerful tools. With them you can add new code
to systems and make existing code more maintainable. However, refactoring code without
having tests in place can be hazardous. This class presents a collection of dependency
breaking and test writing techniques that can be used to get existing code safely under test for
refactoring. These techniques can be used in conjunction with Test Driven Development to
breathe new life into large existing code bases. This class is structured as a set of lectures,
discussions, and handson exercises.
Objectives
By the end of this course, you will:
● Understand what legacy code is
● Understand how to break dependencies in legacy code
● Learn a variety of techniques for breaking external dependencies
● Learn a variety of techniques for breaking internal dependencies
● Understand when to employ each of the techniques
● Learn a variety of strategies for code refactoring
● Learn how to identify change points
● Learn how to find an inflection point
● Understand the concept of test coverage for inflection points
● Understand how to write effective tests for legacy code
Outline
Here is a brief course outline for the course:
● Introduction / Testing as a Programmer’s tool
● Seam identification
● Breaking Dependencies – Sensing and Separation
● Breaking Hidden and Manifest Dependencies
● Characterization Testing
● Refactoring Toward Understandability
● Strategies for Getting Large Methods under Test
● Dealing with Deeply Nested Conditionals
● Planning LargeScale Refactoring and Technical Debt Reduction