Дочитал "Рефакторинг. Улучшение существующего кода". Менее интересная, чем "Совершенный код", отчасти из-за того, что примеры подходят больше для Java/C++ чем для Python, но и небольшая. Пока читал, стал лучше (как кажется) писать новый код, стал уверенее вносить изменения. Мне, увы, пока часто нужен реальный пример успеха, чтобы повторить действия, которые к нему ведут.
Понравились идеи:
Язык рефакторингов (программирования более высокого уровня): небольшие рефакторинги в составле крупных - очень удобно.
Частое тестирование, пошаговые инструкции, через которые привыкаешь мыслить в таком же духе и становится очевидно, как и что нужно делать дальше.
Снова пропагандирует: парное программирование, неделание чего-то, если нет полной уверенности в действиях, ставить себе небольшие цели в составе глобальных.