the item

Clean Code
Clean Code
2008

the questions

  1. How to be a better programmer
  2. How to program: OOP programming

more about the



the consensus



recent reviews

  1. Zen and the Art of Motorcylce Maintenance
  2. The Sparrow
  3. SEOMoz
  4. Mythical Man-Month
  5. Code Complete
  6. Pragmatic Programmer: From Journeyman to Master
  7. This Perfect Day


join our mailing list


if you liked
'Clean Code'
you also might like



Your Ad Here



comment on
'Clean Code'




book ideas? feature requests?
other information not related to 'Clean Code'?




continue the research

















all external links are affiliate links. bit.ly is used to provide real-time tracking

   

the buzz

Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along


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.

  • 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
     


What is this?

A while back I wrote an article on my blog listing all the books that hackers recommended to each other from the site HackerNews. The purpose was to provide a place to list book recommendations so that people didn't have to type in the same list over and over again. (HN gets several requests for book recommendations a week. I also get at least a couple each month). It was very well received, and many posters and commenters either asked that I make a site or sent me an email asking me to do so.

How is this any different from the list on the blog?

This list has more books. This list is sortable both by what question you have and your skill level. In addition, once you sort the list, you can save the link with your sort and send it to somebody else. So, for instance, when somebody wants a book for noobs learning to program, you can make a link for that and then reuse it

How did you collect these books?

Initially the list came from Googling HackerNews.com "best book" and taking the books from the first few pages returned. Later, I added all the books that were mentioned "You left that out!" when Jacques posted the link. While adding those books, I came across a Stack Overflow link where programmers were asked to list their favorite tech books, so I included those too.

If I ask you to put a book on here, will you?

It depends.

These books were all gathered by finding places where hackers hang out and are suggesting books to other hackers and other hackers agree with them by voting up their suggestion. If I can find an example of this for your book, I'm happy to include it.

How are the books ranked?

I did the best I could with ranking. I am sure there are many things you do not agree with. It would be possible to add voting and personal ranking -- that would make the system much better. Heck, you could rank the books yourself and use it as a customized book list to show to people who want your advice. I'd like to do that, but if I've learned anything is to not let your featureset get ahead of the users. This first version will test the waters to see what kind of interest the community might have.