Предисловие....4
Для кого предназначена книга....4
Почему я решила написать эту книгу....6
Структура издания....6
Условные обозначения....8
Примеры кода....9
Благодарности....10
От издательства....12
Часть I. Введение....13
Глава 1. Рефакторинг....14
Что такое рефакторинг....15
Что такое масштабируемый рефакторинг....18
Зачем нужен рефакторинг....22
Выгоды рефакторинга....23
Риски рефакторинга....27
Когда начинать рефакторинг....30
Когда не нужно делать рефакторинг....36
Первый пример рефакторинга....40
Глава 2. Как деградирует код....55
Почему важно понимать, что код деградирует....56
Изменение требований....58
Технический долг....70
Применение знаний....80
Часть II. Планирование....82
Глава 3. Количественная характеристика начального состояния....83
Почему сложно оценить последствия рефакторинга....84
Оценка сложности кода....86
Метрики покрытия кода....102
Документация....108
Управление версиями....115
Репутация....119
Составляем полную картину....123
Глава 4. Составление плана....125
Определение конечного состояния....127
Поиск кратчайшего расстояния....130
Промежуточные шаги....134
Выбор стратегии развертывания....141
Очистка кода....154
Ссылка на метрики....157
Оценка....160
Обсуждение планов с другими командами....162
Уточненный план....166
Глава 5. Получение одобрения....170
Причины несогласия руководителей....171
Поиск убедительной аргументации....177
Заинтересованность в рефакторинге....192
Глава 6. Подбор команды....194
Выбор экспертов....195
Подбор специалистов....198
Типы команд, выполняющих рефакторинг....205
Предложение....213
Возможные результаты....221
Создание сильных команд....224
Часть III. Выполнение....225
Глава 7. Коммуникация....226
Внутри команды....227
Вне команды....237
Экспериментируйте....252
Глава 8. Стратегии выполнения....253
Формирование команды....253
Учет результатов....261
Продуктивное программирование....266
Заключение....272
Глава 9. Закрепление результатов рефакторинга....273
Содействие принятию рефакторинга....274
Образование....276
Закрепление....281
Интеграция улучшений в культуру....287
Часть IV. Разборы примеров....289
Глава 10. Избыточные схемы базы данных....292
Slack 101....293
Архитектура Slack 101....295
Проблемы масштабирования....300
Консолидация таблиц....305
Заключительные шаги....321
Извлеченные уроки....323
Анализ истории кода....325
Ключевые моменты....330
Глава 11. Переход к новой базе данных....331
Распределение по рабочим пространствам....332
Миграция таблицы channels_members на Vitess....334
Разбиение запросов с оператором JOIN....341
Сложности развертывания....350
Заключительные шаги....363
Извлеченные уроки....365
Основные моменты....371
Об авторе....373
Об обложке....374
Рекомендуем прочитать....376
Поддерживать большие приложения сложно, а поддержка больших «неорганизованных» приложений превращается в непосильную задачу. Пришло время сделать паузу и задуматься о рефакторинге!
Внесение значительных изменений в крупную и сложную кодовую базу – нетривиальная задача, которую практически невозможно успешно выполнить без рабочей команды, инструментов и планирования. Мод Лемер раскрывает все тайны рефакторинга на примере двух исследований. Вы научитесь эффективно вносить важные изменения в кодовую базу, разберетесь, как деградирует код и почему иногда это неизбежно.