Библиотека программиста: Robert Martin – Clean Code

Эту книгу многие знают, а некоторые даже читали, но я всё равно решил написать о ней небольшой отзыв. Не зря ж я её прочитал – нужно делиться впечатлениями.

книга Robert Martin - Clean Code: A Handbook of Agile Software Craftsmanship

Речь пойдёт о книге дяди Боба Clean Code: A Handbook of Agile Software Craftsmanship, которая в русском издании называется вроде Чистый код. Создание, анализ и рефакторинг – ничего про эджайл здесь в названии нет, и это подозрительно. Про мастерство тоже, а зря – ведь эта книга именно о мастерстве написания чистого кода.

Чистый код – это не просто код без опечаток и выстроенный красиво по строчкам. Это ещё и код, который легко понимается как другими людьми в команде, так и самим автором. Я вот недавно открыл свою курсовую работу с четвёртого курса и ничего там не понял. Вот, чтобы не ужасаться непонятному нагромождению функций по несколько сотен строчек кода и куче уровней абстракции внутри каждой из них, и нужен чистый код. Его не только легче читать и понимать, с ним легче работать: рефакторить, дополнять.

Книга рассказывает о том, как потратить на написание программы изначально немного больше времени и строчек, но зато в будущем сэкономить кучу времени команде или самому себе.

Чистый код будет интересен и новичкам и профессионалам. Для новичков здесь есть несколько глав о том, как вообще нужно оформлять программы. Ведь есть соблазн просто пихать всё в одну-две функции, даже если слышал о принципах SOLID. Даже если понимаешь, что одна функция должна делать одну вещь, часто даже в учебниках встречается не особо правильный чистый код, и это сбивает с толку – подаёт неправильный пример. Здесь много правильных примеров, которые научат начинающего кодера правильно называть переменные, располагать блоки кода, функции и оформлять классы. Также отдельная глава уделяется комментариям, про которые нам в универе говорили лишь, что их можно создавать, ставя / или /* */. А тут пара десятков страниц о их назначении…

Профессионалам тоже не мешало бы вырваться из своего пузыря и посмотреть на код профессионала. Для них есть несколько примеров рефакторинга кода: как распутать клубок спутанных функций. Также довольно много говорится о многопоточности (целая глава и приложение) и системах в целом.

В книге также богатый библиографический список, если вы захотите ещё пополнить библиотеку.

Раскрывать основные принципы я не буду – о них можно почитать и в книге, и в интернете, и посмотреть лекции самого дяди Боба. Если вы хотите краткое превью, то для вас сойдёт глава 17 (которая на самом деле резюмирует содержимое): Smells and Heuristics. Эта глава ссылается на книгу Мартина Фаулера Code Smells.

Но вся прелесть книги как раз в том, насколько подробно здесь разжёваны даже самые мелкие детали, поэтому я двигался от начала до конца и не заглядывал в конец, чтобы не спойлерить главными тезисами.

Что мне в книге не понравилось? В начале дядя Боб обещал несколько глав с задачками на подумать. Так вот, их не было. Были примеры с полным разбором довольно больших кусков кода и их переработкой, но я ожидал разделение глав на теоретические и практические, как в учебниках. Наверно, зря, ведь это всё же не учебник, но тогда не стоило долго и витиевато рассказывать, что не стоит ожидать feel-good книгу.

книга Robert Martin - Clean Code: A Handbook of Agile Software Craftsmanship

Второй минус – это организация четырнадцатой главы. Большие куски кода на нас вываливают без особых комментариев о том, что они должны делать. Только юнит-тесты в конце подсказали мне, что должно происходить и как. Да, наверно, в этой главе идёт упор именно на демонстрацию алгоритма чистки кода на практике и имитации ситуации, когда вам придётся разбираться с непонятным запутанным кодом, но листать страницы туда-сюда просто не очень удобно – в IDE разбор был бы легче.

Третий минус – мне не хватило весёлых историй из жизни. Книга тоже писалась совсем не за этим, но со своим опытом Роберт мог бы ввернуть побольше анекдотов из жизни разработчиков. Он делает пару отсылок к старомодным стилям и тому, как писали раньше, как называли переменные и организовывали функции, но рассказ о динамике чистого кода был бы интересным и не менее вдохновляющим, чем примеры.

Если не считать моих придирок, которые основаны лишь на моих фантазиях и странных ожиданиях, книга хороша и читается довольно быстро.

Я покупал свою печатную версию на Амазоне, ещё когда он доставлял в Россию. Так что моя версия на английском – от издательства Prentice Hall. Книга переведена на русский и доступна также в цифровом варианте, так что проблем её раздобыть не будет. Не знаю, сохранили ли все издания забавные рисунки, но надеюсь, что да.

Теперь я нацелен прочитать и другие книги Роберта: Clean Coder, Clean Architecture и т. д. Но о результатах этой моей идее напишу в других книжных обзорах.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s