Довольно давно меня интересовал способ написания АДЕКВАТНОГО кода на любом языке программирования. Так уж получилось, что в течение длительного времени я занимался исключительно ухудшением своего программного почерка. Собственно писал так, как меня учили – лишь бы работало. Оно и работало. И даже проходило тесты, но возвращаться к коду было абсолютно невозможно – разобрать свой почерк без длительного вкуривания комментов (слава нулям и единицам – их я осиливал) я не мог. Несколько месяцев назад я полез в старый код, который писал еще на Delphi и ужаснулся тому, что понять ничего не возможно как не пытайся. В этот момент меня стукнуло по голове – надо браться за чистоту и понятность кода. Погуглив секунд 30 я понял, что лучшее, что написано на данный момент – “Чистый код” Роберта Мартиина. Так как в моей олимпийской столице найти хоть что-то отличное от книг по Delphi нереально, то заказал через интернет. Дождался. Прочитал. Читайте краткую рецензию.
Конечно, можно долго рассуждать про то, какой код можно читать лучшим – быстрый или читаемый (читаемый и быстрый – это идеал). Я свой выбор сделал. Нечитаемый код бесполезен, так как не подлежит копипасту. Копипаст – жесткий способ проверки кода. Если в двух проектах нужен примерно один функционал, то дважды писать плохой код – это намного хуже, чем скопировать хороший. Если же вернуться к книге, то она учит писать именно такой хороший код.
Книга написана очень хорошо. Все рассасывается до состояния кашицы и впрыскивается в вас так, чтобы вопросов не возникало. Конечно, сразу видно, что разные главы писали разные люди, так как иногда то, что принципиально для одного, для другого является лишь рекомендацией, но это лишь дает место для брожения мысли в вашей черепной коробке – вы сами должны определить приоритеты в работе. Но некоторые принципы абсолютны для всех – например, читабельность названий переменных и повторяемость кода. В первом случае она нужна, во втором, соответственно, нет.
Еще мне очень понравилось, что Роберт Мартин написал все очень краткими главами, которые просто прочитать даже в те моменты, когда ты отвлекаешься от своего кода, чтобы поплевать в потолок и помечтать о собственном Гугле. Немного напрягла глава про последовательное очищение кода, написанная интересно, но включающая слишком большие куски кода, которые читать (а потом еще и сравнивать с новым релизом) крайне сложно. Уверен, что можно было бы сделать это и попроще. Хотя, что я могу знать.
Издательство “Питер”, конечно, ничего особого предложить не смогло в оформлении книги, но перевод хороший и ровный (а еще очень мало опечаток, что радует безмерно, ибо испытываю к ним вселенскую ненависть).
В общем книга отличная и если вы еще не пишите правильно, то пожалуйста, начинайте – вдруг мне когда-нибудь придется это читать.
А название этой записи мне навеяла другая книга этого издательства – “Как пасти котов”. Кстати тоже довольно любопытная.