Дочитал "Совершенный код". Интересное начало (уровни проектирования, абстракции) и ближе к концу (тестирование, отладка, оценка, психология/философия программирования). Понравились статистики, юмор. Не понравились некоторые советы по написанию кода. Все ключевые моменты еще раз в общем повторены в последней главе.
Особенно понравились эти идеи:
Нужно делать все проще, чтобы не держать кучу вещей в голове.
Разделить проектирование на уровни: от взаимодействия с ОС до готовых модулей и бизнес-логики программы в целом.
Кучу раз упоминается 80/20 и 7 объектов, которые можно держать в голове.
Нужно вводить побольше метрик для оценки прогресса проекта и оперативного выявления аномалий.
Комментарии должны быть такими, чтобы можно было читать алгоритм программы только по ним.
При этом комментарии должны быть на высоком уровне абстракции, говорить что и ради чего происходит, а не как.
Нужно общаться с другими людьми, перенимать и делиться опытом. (Эта же идея была в начале книжки по С/С++). Кодинг занимает около 13% от всего времени работы.
Парное программирование и код ревью сильно повышают качество, наравне с тестированием.