Оглавление Введение 12 Часть I. Основы гибкой разработки 21 Глава 1. Введение в Scrum 23 Глава 2. Зависимости и разделение на уровни 67 Глава 3. Интерфейсы и проектные шаблоны 119 Глава 4. Модульное тестирование и реорганизация кода 151 Часть II. Написание кода по принципам SOLID 195 Глава 5. Принцип единственной ответственности 197 Глава 6. Принцип открытости-закрытости 235 Глава 7. Принцип подстановки Лисков 245 Глава 8. Принцип разделения интерфейса 279 Глава 9. Внедрение зависимостей 309 Часть III. Пример адаптивной разработки приложения 353 Глава 10. Пример адаптивной разработки приложения: введение 355 Глава 11. Пример адаптивной разработки приложения: спринт 1 369 Глава 12. Пример адаптивной разработки приложения: спринт 2 397 Приложение А. Инструментальные средства адаптивной разработки 413 Приложение Б. Примеры исходного кода из хранилища GitHub 420 Предметный указатель 427