Читал вторую редакцию, примеры в этой версии на JavaScript.
Очень полезное чтиво, особенно техники под конец и последняя глава про ООП. Раздел про наследование и композицию вообще нужно включать в онбординги для новых разработчиков и стайл гайды проекта.
Поначалу может показаться скучноватым и очевидным, но через всю книгу стоит пройти, читая внимательно, только за тем, чтобы привыкнуть к тому, как выглядит хороший код.
Зачем читать
Чтобы писать код лучше, а ревью на него — по делу.
Цитаты
Когда вы пишете тест, то спрашиваете себя, что нужно сделать для добавления этой функциональности. При написании теста вы сосредоточиваетесь на интерфейсе, а не на реализации, что всегда хорошо. Кроме того, это означает наличие точного критерия завершения кодирования — в конечном итоге тест должен успешно проходиться.
Неиспользуемый код все еще является серьезным бременем при попытке понять, как работает программное обеспечение. Он не несет никаких предупреждающих знаков, говорящих программистам, например, о том, что они могут игнорировать эту функцию, так как она больше не вызывается, и им приходится тратить время на понимание того, что она делает, и почему ее изменение не влияет на результат так, как они ожидали.
Меньшие шаги означают меньше вещей, которые могут пойти не так на каждом этапе — а следовательно, меньше неприятностей и меньше работы. Это не потребовалось бы, если бы я никогда не делал ошибок, но не делать ошибок — это миф, от которого я давно отказался.