«Чистый код» — вторая книга, которую я прочитал после «Эффективного инженера». Его также предложил мой наставник Франциск Ксавериус. Опять же, это оказалось точным соответствием тому, что мне было нужно в тот момент. На этот раз это было более практично. После того, как я настроилась на установку на рост и на хорошие советы и рекомендации, которые я почерпнула из предыдущих книг. Следующим делом было посмотреть, как я пишу свой код. Я пишу хороший код? Легко ли мой код читать с точки зрения другого инженера? Будет ли это код, который «легко поддерживать»? Именно на эти вопросы я ожидаю получить ответы после прочтения этой книги.

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

Эта книга не для «легкого чтения», это интенсивное чтение. После нескольких глав вы найдете множество примеров того, как очистить код, как преобразовать код, который имеет много проблем, в код с меньшим количеством проблем. Он проведет вас шаг за шагом к каждому повороту, пока не приблизится к тому, что авторы ищут, как к идеальному чистому коду. Авторы действительно призывают нас внимательно прочитать эту часть, чтобы получить «более полное» представление о методах и причинах каждого решения, принятого при очистке кода. Прежде чем приступить к упражнениям, первые несколько глав книги объяснят принципы, шаблоны и практику написания чистого кода.

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

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

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

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

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

Итак, это еще одна хорошая книга, которую я настоятельно рекомендую инженеру-программисту. Пример кода на Java, но я все еще думаю, что он может быть полезен для разработчиков, не использующих Java. Предлагаю и вам ознакомиться с кейсами, в отличие от меня 😅. Я тоже постараюсь прочитать оставшуюся часть главы, чтобы не пропустить ни одного важного урока.

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

Опять же, если у вас есть хорошая книга по разработке программного обеспечения, будь то нетехническая или техническая, пожалуйста, сообщите мне!

Спасибо!