Clean Code: A Handbook of Agile Software Craftsmanship
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. Mart
Paperback, 434 pages
Published
August 1st 2008
by Prentice Hall PTR
(first published January 1st 2007)
There is a good chance some of your friends read this book. Sign in to see!
sign in »
Friend Reviews
To see what your friends thought of this book,
please sign up.
Community Reviews
(showing
1-30
of
1,250)
This book makes some very good points, sometimes taking them to extreme ("Never write functions longer than 15 lines! Never write functions with more than three arguments!"). Some of these points were quite new and useful for me - YMMV. It's too Java-specific in a few places, and reading the last refactoring chapter on a kindle was quite a challenge, but otherwise it was well worth a read. At least I got a clear picture of how I want to refactor a big piece of my current project after ...more
The first half of this book is well worth a read. Then I was reminded of Martin Fowler's (I think) comment that the original Design Patterns Elements of Reusable Software book was a response to the limitations of C++. It dovetailed so well into Java because Java has a lot of the same annoying limitations, and in some ways is even harder.
The latter section of the book contains some worked examples that I didn't always agree with because they seemed to be totally over done. A lot of th...more
The latter section of the book contains some worked examples that I didn't always agree with because they seemed to be totally over done. A lot of th...more
David Workman
rated it
There is a lot of useful information in this book, giving a very good description of clean code and how to achieve it in your own projects. It backs this up with lots of worked examples and a partial catalogue of heuristics and code smells to look out for in your own code as indicators of code that's starting to get (or is extremely) dirty.
It just missed out on a 5 star rating in my mind because of a couple of shortcomings. First, its chapter on concurrency is a bit hazy and vague on...more
It just missed out on a 5 star rating in my mind because of a couple of shortcomings. First, its chapter on concurrency is a bit hazy and vague on...more
There is a movement brewing in the world of professional software development. This movement is concerned not merely with writing functional, correct code, but also on writing good code. Taking pride in code. This movement is the Software Craftsmanship movement, and one of the people near the head of this movement is Robert C. Martin, also known as Uncle Bob.
His book "Clean Code" is, in many ways, an introduction to the concept of Software Craftsmanship and a guide for d...more
His book "Clean Code" is, in many ways, an introduction to the concept of Software Craftsmanship and a guide for d...more
This book is basically split in to two things: organizing your code so that it’s easy to read and following “good” OO practices. A great deal of the information presented in Clean Code is Robert C. Martin's personal preference, he’s very upfront about that, and what he has to say throughout the book makes a lot of sense.
The first part of the book makes it seem like writing clean code is relatively simple:
Use unambiguous names for variables and methods.
Comments should say th...more
The first part of the book makes it seem like writing clean code is relatively simple:
Use unambiguous names for variables and methods.
Comments should say th...more
There is nothing particularly new in this book. It just discusses how to write "clean code" — the code that is really easy to understand and maintain. Nevertheless this book is worth reading just to remind you another time how important "clean code" is!
This book provides lots of concrete advice how to make your code "cleaner". It discusses importance of proper naming, code formatting and testing. It stresses importance of constant refactoring and provides...more
This book provides lots of concrete advice how to make your code "cleaner". It discusses importance of proper naming, code formatting and testing. It stresses importance of constant refactoring and provides...more
This served as a useful refresher for good programming style. The sad thing is that these are items I should have forefront in my mind while coding but in recent years I've been too content to just get the program working and move on.
As I work mostly with legacy code lacking unit tests it does reinforce the necessity of creating unit tests to support radical refactoring.
It does this without the unpleasant dogmatic harangue that I see from a number of Agile pushers which, ...more
As I work mostly with legacy code lacking unit tests it does reinforce the necessity of creating unit tests to support radical refactoring.
It does this without the unpleasant dogmatic harangue that I see from a number of Agile pushers which, ...more
A decent book that I found to be mostly review, and longer than it needed to be. All the obvious suggestions were included such as use short classes and methods, intention revealing names, etc. but there were a few principles that stood out. First is limiting constructor and method arguments to no more than four and preferably none. Next greenfield project I start, I am going to try and enforce this at the build level and see how it affects the design. Next is extracting methods/classes when...more
Excellent book on keeping you code clean. The only disagreement I had was with how far he took some of the refactoring, I don't think 20 methods with one line of code is easier to read than 5 methods with 4 lines of code. They really emphasized getting down to these tiny (3-5 line) methods which, in practicality doesn't always work.
Overall, well organized and good arguments and examples (it does get a little hard to follow the examples by flipping pages around, but it is worth it to ...more
Overall, well organized and good arguments and examples (it does get a little hard to follow the examples by flipping pages around, but it is worth it to ...more
Ottima raccolta di consgli e best practice per la programmazione con qualsiasi linguaggio, anche se tutti gli esempi sono in Java. Le prime 200 pagine dicono già tutto, mentre le successive sono esempi di refactoring seguendo le regole esposte e ripetizione delle stesse con parole diverse. Le appendici (lunghissime) approfondiscono la programmazione multithread e presentano un esempio di libreria rifattorizzata. Alcune delle pratiche consigliate possono risultare opinabili con linguaggi diversi...more
I had a tough time deciding whether I really liked or It was amazing. I liked the writing style of the book. Its simple, clean, and well crafted.
First few chapters of the book makes good practical advice from naming variables-functions-classes to writing functions to testing. Most of the smells and heuristics I found in these chapters can be found in real-world as well.
First few chapters of the book makes good practical advice from naming variables-functions-classes to writing functions to testing. Most of the smells and heuristics I found in these chapters can be found in real-world as well.
Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build, and t...more
Although it's not rare that I underestimate the value of these kind of books, I must say that this one was definitely worth reading. Each point and thesis justified by clear examples, simple reasoning and experience of the author make it both easy to understand (and, luckily, keep yourself from thinking about the authour being a fanatic) the origin of each suggestion and compare your own experience with writing good code. This is a must-read for everybody who aims to be a professional coder. If ...more
Giuseppe Pizzimenti
rated it
anche se l'autore principale incute un certo (e giustificato!) timore reverenziale, la lettura si è rivelata scorrevolissima; i concetti espressi , che coprono pressoché tutti gli aspetti della scrittura del codice, si mantengono sempre pratici ed è possibile ricavare ottimi spunti qualunque sia il proprio livello tecnico
Antti Karanta
added it
This is something every programmer should read! Only four stars due to the Java-bias, but that is understandable from commercial point of view. Unfortunately it limits the audience somewhat - c#:rs, rubyists, c++:ers and others should read this also but may reject it because of the Java code samples.
Must read for any programmer. The epic refactors would have worked better as screencasts but were still useful. I found myself nodding in agreement a lot thinking "yep I know this" but I am applying it all much better now. It put me in a really good state of mind.
Also, so glad I don't use java anymore.
Also, so glad I don't use java anymore.
This book was a good summary of many of the basic principles that I have learned throughout my first two years as a software engineer and I would recommend it to anyone new to the field.
I like they way Martin emphasizes minimal function size: "The first rule of functions is that they should be small. The second rule is that they should be smaller than that") as well as the fewest number of arguments possible in both methods and constructors.
One thing to note i...more
I like they way Martin emphasizes minimal function size: "The first rule of functions is that they should be small. The second rule is that they should be smaller than that") as well as the fewest number of arguments possible in both methods and constructors.
One thing to note i...more
This book is repetitive at times and mentions content already covered in some of the other books in the Robert C. Martin series. I think part of this repetition is due to many of the chapters being authored by different writers, which also occasionally prevents the book from flowing smoothly.
The book is a quick read and raises some interesting arguments on how code should be written. However, if you've read other books in the Robert C. Martin series, you might skip this one. Or if...more
The book is a quick read and raises some interesting arguments on how code should be written. However, if you've read other books in the Robert C. Martin series, you might skip this one. Or if...more
Extremely useful. All developers should listen when a successful tenured developer speaks. The lessons they have learned were learned the hardway. Maybe, they can save you some pain. Biggest take-aways; Red-Green-Refactor, Boy Scout rule, code should be readable.
Definitely going to have to buy this one. Also, I'm looking forward to reading his update and "sequel", The Clean Coder: A Code of Conduct for Professional Programmers when it is released. A must for anyone programming or interested in programming.
Great book, good starting point for beginner programmers. Examples are mainly in Java. I read this after I read the PPP book and felt like I should have read it the other way around. But a good book either way.
Long book to tell: Write a rough draft of code that works together with the tests, then make it better with short methods, a clear intent, a single responsibility per class, ...
There is also a part about concurrency in there which is interesting but doesn't fit with the main theme of the book.
Still a nice book which learns you a couple of things to be a better programmer.
There is also a part about concurrency in there which is interesting but doesn't fit with the main theme of the book.
Still a nice book which learns you a couple of things to be a better programmer.
For a software engineer of any level, this book has a lot of great ideas to make your code more readable and maintainable. The Elements of Style for programming languages. I wish I had discovered it earlier.
This should be required reading for every software developer: how to write maintainable, well designed software. Contains concrete advice, examples, and a case study.
This had lots of good, practical advice that spanned everything from naming to testing to concurrency. A lot of it was pretty Java centric, so I skimmed a few sections.
By far the best portions of the book were the ones where the author demonstrates -- step by step -- his process for writing code test-first, as well as refactoring.
If you get frustrated with either of the two at times, these parts of the book are *fantastic*, because you see that even someone who's been ...more
By far the best portions of the book were the ones where the author demonstrates -- step by step -- his process for writing code test-first, as well as refactoring.
If you get frustrated with either of the two at times, these parts of the book are *fantastic*, because you see that even someone who's been ...more
This book is #1 on my list of books I'd recommend to other programmers. I don't know how else to elaborate on how important I think the ideas in this book are.
The writing is clear and simple, and the points are clearly presented. I don't really think you could ask for more in a technical book.
Each chapter written by a different contributor, so a little disjoined in writing style, but excellent info & knowledge contained within
Nothing new for experienced developer...
Too Java oriented in many places. Code Complete, 2ed is better from my point of view
Too Java oriented in many places. Code Complete, 2ed is better from my point of view
This is a 'must read' book for software developers, it contains a lot of best practices and advices that are proven to be useful.
Great tips for writing code. This is a keeper and should be reviewed at least annually.
There are no discussion topics on this book yet.
Be the first to start one »
Goodreads is Hiring Engineers!
If you like books like these and love to build cool products, we may be looking for you.
Learn more »
Learn more »
Share This Book
No trivia or quizzes yet. Add some now »
“It is not enough for code to work.”
—
1 person liked it
More quotes…

Loading...










view 2 comments






































