Прочитал книгу “Чистый код: создание, анализ и рефакторинг” Роберт Мартин.
В начале книги автор говорит о разбитие книги на три части.
“Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода, приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги - концентрирование выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и “запахов кода”, собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.”
Первая и третья часть были мне понятны, а вот вторая часть была непонятной. В книге все примеры кода на java, для меня практически все примеры были мало понятны. Примеры кода представляют из себя какой то отдельный функционал из большой программы, который автор улучшает. Мне не было понятно ни java, ни сами примеры кода, слишком сложно и запутанно для меня.
В ведение автор пишет: “Если вы прочитаете первую и третью часть, пропустив анализ практических сценариев, - считайте, что вы прочитали еще одну “легкую” книгу о написании качественного кода. Но если вы потратите время на проработку всех сценариев, проследите за каждый крошечным шагом, за каждым решением, если вы поставите себя на наше место и заставите себя думать в том же направлении, то ваше понимание этих принципов, паттернов, приемов и эвристик значительно углубится. Знания уже не будут “внешними”. Они проникнут в ваши пальцы, глаза и сердце. Они станут частью вашей личности - как велосипед становится продолжением тела, когда вы учитесь на нем ездить.”
Получается я прочитал “легкую” книгу о написании качественного кода. Я пытался разобраться в примерах, но сделать это по листингу кода, на незнакомом мне языке, с непонятными функциями, оказалось очень трудно и я решил не тратить на это время. В итоге я просто читал, как автор описывает код, его проблему и как он ее решил.
Постараюсь применять правила из третьей главы на практике. Например, больше внимания уделять комментариям, не делать функции с большим количеством аргументов, давать функциям имена описывающие что они делают, заменять “волшебные числа” на именованные константы, инкапсулировать условные конструкции, избегать отрицательных условий, делать функцию которая выполняет только одну операцию. Это правила, которые мне понятны и я могу их уже применять в работе, остальное надеюсь станет понятным, после перечитывания книги позже с бОльшим опытом работы.