
Электронная
724.9 ₽580 ₽
Это бета-версия LiveLib. Сейчас доступна часть функций, остальные из основной версии будут добавляться постепенно.

Ваша оценкаЖанры
Ваша оценка

Эта уже 4 книга Роберта Мартина, которую я прочитал. Поэтому мнение у меня уже сформировалось. Можно воспринимать эту рецензию, как общую для всех его книг, с точки зрения текса, советов, но не технической части, так как она отличается в разных книгах.
Роберт Мартин - человек, который горит своим делом. Сквозь текст тебя обжигает его стремлением сделать "мир разработки" лучше. Иногда этот огонь настолько сильный, что начинаешь задумываться: "А не фанатик ли он"? Да даже если и фанатик - все равно. Этими громкими, иногда циничными мыслями он вынуждает тебя становится лучше. Под циничными я подразумеваю сравнение программистов с хирургами. Это уже через чур, как по мне. Отчасти это так, но блин... Но я понимаю, зачем он это написал - чтобы разработчики ответственнее относились к своим обязанностям.
Читая книгу, складывается ощущение, что ты находишься в толпе, а на сцене стоит человек и произносит пропагандистские речи.
Теперь к технической части. Примерно 30% книги - это про TDD. А самое главное, что расписан полный флоу разработки через тестирование. С примерами! Мне это очень понравилось, потому что в предыдущих книгах он писал примерно так: Сначала пишем тесты, потом код, чтобы эти тесты проходили. Сейчас он раскрыл эту тему подробно.
Остальная же часть книги... дублирование Идеального Программиста. Разница между выходами этих книг ~10 лет. Мог бы просто написать книгу о TDD, а не вносить сюда, то, что уже было в другой книге. Есть какие-то новые мысли, но 80% - старые. DRY, получается, нарушил -)
Я очень рад, что познакомился с книгами Роберта Мартина. Вам тоже советую, потому что пишет он интересно, а не как робот, как многие тех. писатели (Антонио Меле, привет!). В его книгах чувствуется драйв, стремление к профессионализму и желание делится этим профессионализмом с другими.

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

Кент Бек однажды сказал: "Сначала заставьте его [код] работать. А затем перепишите его правильно".
Написать работающую программу — первый и самый простой шаг. Куда сложнее следующий — очистить код.
К сожалению, слишком многие программисты считают, что как только программа начала работать, все готово. И тут же переходят к написанию следующей программы.
В результате появляется множество запутанного, нечитаемого кода, замедляющего прогресс всей команды разработчиков. Программисты так поступают, поскольку уверены, что самое главное — скорость. Они знают, что им много платят, и чувствуют себя обязанными предоставить много функционала за короткий промежуток времени.
Но создание программного обеспечения представляет собой сложный и долгий процесс, поэтому таким программистам кажется, что они работают слишком медленно. Внутреннее ощущение того, что они подводят команду, заставляет их торопиться. Эти программисты поспешно заставляют код работать и объявляют, что все готово. И все равно у них остается чувство, что потрачено слишком много времени.

Представьте набор тестов, которому вы настолько доверяете, что готовы рекомендовать развертывание системы, прошедшей эти тесты. [...]
Снова представьте на экране своего компьютера ужасно запутанный код. Что помешает вам начать приводить его в порядок? У вас же есть тесты, которые сообщат о любой неисправности в момент ее возникновения.
С помощью этого набора тестов вы можете безопасно очистить код.
С помощью этого набора тестов вы можете безопасно очистить код.
С помощью этого набора тестов вы можете безопасно очистить код.
Нет, это не опечатка. Я просто очень хотел, чтобы вы прочувствовали этот момент.



















