Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer but only if you work at it. What kind of work will you be doing? You'll be reading code - lots of code. And you will be challenged to think about what's right about that code, and what's wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft. Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code - of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and "smells" gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code. Readers will come away from this book understanding
‣ How to tell the difference between good and bad code ‣ How to write good code and how to transform bad code into good code ‣ How to create good names, good functions, good objects, and good classes ‣ How to format code for maximum readability ‣ How to implement complete error handling without obscuring code logic ‣ How to unit test and practice test-driven development
This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Robert Cecil Martin, commonly called Uncle Bob, is a software engineer, advocate of Agile development methods, and President of Object Mentor Inc. Martin and his team of software consultants use Object-Oriented Design, Patterns, UML, Agile Methodologies, and eXtreme Programming with worldwide clients.
He was Editor in Chief of the C++ Report from 1996 to 1999. He is a featured speaker at international conferences and trade shows.
Не понимаю, нужна ли какая-то рецензия на подобного рода литературу, но я напишу 🙃
Книжка скорее понравилась, чем не понравилась. Где-то половину можно спокойно читать, много принципов написания кода для себя подчерпнуть и автор не забывает соблюдать нужный уровень абстракции, чтобы любой разработчик мог вынести для себя полезное. Я теперь действительно больше понимаю в том, как лучше именовать переменные, как распределять ответственность между функциями, как читаемо оформлять тесты и почему комментарии это зло (оказывается!)
К сожалению, примерно с середины началось сильно про джаву и мне, как джаваскрипт девелоперке, было не сильно угарно читать про многопоточность, но я попыталась и оттуда вынести что-то полезное А в конце вообще классный справочник с небольшими тезисами из всей книги. Это, конечно, и так заменяется конспектом, который я для себя сделала, но все равно респект
В моменте читать было не всегда просто и приятно, но после прочтения сейчас чувствую себя круче, умнее и лучше, чем до нее, а это всегда здорово!
Полезная книга, помогает систематизировать и правильно использовать знания накопленные за годы разработки. Помогает писать действительно чистый код и задумываться о том, что ты пишешь.
Главная идеи книги: - правило бойскаута "Оставь место стоянки чище, чем оно было до твоего прихода.". - трата времени на чистый код окупается в дальнейшей разработке, меньше времени на понимание того, что ты читаешь и более быстрая возможность редактировать, добавлять новый функционал - чистого когда, без тестов, не может быть
Книга, прочитав которую начинаешь сомневаться в том, что Robert Martin совсем сумасшедший. Не совсем. Триста страниц отличных советов накидал. Один абзац очень повеселил — «When you'll look at this code after four year passed...». Дядушка, да где ж это видано, чтобы на одном месте больше двух лет сидеть.
Когда я начинал читать книгу, то думал, что это раздутая книга про правильное именование переменных, процедур и функций, и что прочтение будет лёгкой прогулкой. Ха, как бы не так. По началу то оно всё так и есть- в первых главах автор действительно рассказывает про выравнивание, пробелы, табуляцию и названия. Но потом начинается материал посложнее, адресованный достаточно продвинутому кодеру. И вот тут мне немного не ясна концепция книги. Первые главы явно дают понять, что книга для джунов, но далее автор углубляется (не особо разжёвывая свои мысли) в достаточно специфические дебри, которые простому джуну будут не понятны. А для миддлов и сеньоров первые примерно 100 страниц являются лишними, т.к. если ты хотя бы миддл, то до всего этого уже и сам дошёл, наверняка.
Примеры кода в книге на Java, поэтому перед прочтением необходимо хоть немного ориентироваться в т.н. Java core. Также местами проскальзывают примеры с использованием паттернов.
В общем, вторая половина книги пока что не для моего уровня. Я прочитал 180 страниц и отложил на потом, когда буду покруче в плане понимания.
Возможно, почти двадцать лет назад, эта книга и казалась откровением. Однако сегодня часть ее - это общеизвестные факты. Другая часть уже не воспринимается истиной и даже оспаривается многими авторами. И не во всех случаях SOLID и другие принципы чистого кода это добро. Иногда они неимоверно затрудняют жизнь программистов. Своими глазами видел супер-чистый код в десятках файлов и около тысячи строк. Всё было при этом настолько нелогично, хоть и програмно верно, что было принято решение провести рефакторинг. Получился код «погрязнее», зато намного интуитивно понятнее и легче для поддержания.
Впечатление от книги в целом положительное. Расписаны основные нюансы и правила написания «чистого» кода. К минусам можно отнести однобокие концепции ООП подхода. Ну и листинг кода в конце книги не на один десяток страниц кажется лишним.
Конечно книга подустарела для 2020-2021 годов, но основные принципы разработки остались неизменны. DRY, комментарии, компоненты и т.д. Мой совет для чтения, не вдаваться в каждую главу, как рекомендует автор, а посмотреть по верхам, найти интересные вам главы и с удовольствием их прочитать)
* Придумывать норм имена переменным/функцифм и так далее * Не использовать в именах файлов Abstract/Interface * Не комментируйте плохой код - лучше перепишите его И много других полезных советов (особенно для новичков)
Чистый код Роберта Мартина оставил неоднозначное впечатление. С одной стороны идеи правильные, важные и нужные. Но с другой стороны при чтении постоянно возникало ощущение, что книгу написали в конце девяностых. Гигантские листинги, повсеместное использование mutable state, активная пропаганда overengineering'а в виде решения микроскопических проблем применением одного-двух паттернов – все это казалось безумно устаревшим и приводило к сильным приступам скепсиса. Ну не всегда кучка из 50 методов по одной строке лучше читаются, чем один метод из 50 строк!
Манера изложения материала, кажется подчиняется идеям автора – в книге присутствует множество мини глав в пару абзацев, однако общая структура повествования при этом страдает – единой мысли, стоящей за этими главами, успешно удается прятаться
Тем не менее, книга заставляет думать в правильном направлении, и в этом её неоспоримая польза. Рекомендуется к прочтению программистами любой степени матерости, но надо помнить, что советы, данные в книге, не стоит возводить в разряд догм, а применять не забывая о прагматизме