Sale!
, , , , ,

Clean Code: A Handbook of Agile Software Craftsmanship 1st Edition

(14 customer reviews)

Original price was: $49.99.Current price is: $46.99.

Author ‏ : ‎ Robert C. “Uncle Bob” Martin

Publisher ‏ : ‎ Pearson; 1st edition (August 1, 2008)

Language ‏ : ‎ English

Paperback ‏ : ‎ 464 pages

ISBN-10 ‏ : ‎ 9780132350884

ISBN-13 ‏ : ‎ 978-0132350884

Item Weight ‏ : ‎ 1.65 pounds

Dimensions ‏ : ‎ 6.8 x 0.9 x 9 inches

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, who has helped bring agile principles from a practitioner’s point of view to tens of thousands of programmers, 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 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 Codeis 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
  • What “smells” and heuristics can help you identify bad code

This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

14 reviews for Clean Code: A Handbook of Agile Software Craftsmanship 1st Edition

  1. Mario J. Wunderlich

    5.0 out of 5 stars

    A must-read for anyone who takes programming seriously

    Robert C. Martin clearly explains why clean code is important, and successfully details why & how it is important. While most software engineering books focus on the science part of programming – this is one of the few books that focuses on computer programming as an artform: it will transform the way you look at programming and help you grow into a mature software engineer. I believe that mastery of computer programming involves mastery of both the science & the art of programming, and this is the go-to book for the art of computer programming.Clean Code has a definite place in my shelf. It’s one of those books you’ll read fully, then find yourself re-reading every year.

    5 people found this helpful

  2. X

    5.0 out of 5 stars

    I’ve become a better and more mature developer

    I’ve been reading this for the past few weeks and just by applying the principles and concepts I’ve learned so far, I’ve become a better and more mature developer. The lead dev on my team recently noticed and commented on the positive changes in my code as of late. He was also impressed when I used what I learned to refactor a bit of our code base. Even though it’s Java-based and I am a Go developer with a background that is primarily JS, I’ve been able to use the ideas in this book to clean up my own code, both personally and professionally.

    51 people found this helpful

  3. David Harkness

    5.0 out of 5 stars

    Great collection of solid advice

    When I first started reading, I found that I already knew much of the material–some of which I actually practiced. However, as I progressed into the book I found myself learning new methods of approaching code and new ways to apply old lessons. By the time I finished the book I found myself actively applying the techniques with renewed vigor and really enjoying writing code again.Now that I’ve had a few months to let the advice sink in and use it on a couple projects and languages, I can safely say that I found the book on the whole to be an invaluable resource. I have integrated more of the material than I expected into my day-to-day coding practice, and I highly recommend it to my colleagues.

    One person found this helpful

  4. Ernest Mallett

    5.0 out of 5 stars

    A love/hate relationship

    Honestly I have developed a love/hate relationship with this book. I just got it the other day and after reading it I can honestly say it has changed my outlook on my work. I used to be extremely proud of my work due to how efficient it was and how well it worked. Now I find myself scrambling through old code trying to clean it up! Lol This book is definitely well worth the price, I would highly recommend all programmers read it. All of the examples are in Javan, but being a C# programmer the syntax is fairly similar. Bottom line: Buy It!!! The only way you’ll regret this book is if (like me) you’ve been writing dirty code and didn’t know it!

    2 people found this helpful

  5. Pekka Hellsten

    5.0 out of 5 stars

    A must-read for programmers

    This book changed the way I write code. After getting over the author’s very strict “do it my way or the highway” mentality for describing the various topics (he actually points this out in the preface but it was still slightly off-putting), I started seeing the ingenuity in the principles and patterns.I remember being skeptical about certain practices which were most distinct from my coding style at the time, until I decided to prototype them in a project I was working. Try to forget any prejudices, use the patterns and practices yourself, and I’ll guarantee you’ll get the most out of this book.

    One person found this helpful

  6. Peter J. Hanson

    5.0 out of 5 stars

    Excellent for the whole team

    As CTO of a software company I co-founded, I’m not only looking for books that help me improve individually, but also books that the whole development team – from developers to architects – may find useful. Robert C. Martin’s Clean Code does both, and, like the good code described therein, it’s well written, clear, and easy to read. Martin includes many helpful examples and his suggestions are applicable to any programming language.Ideally, each developer takes charge of their own education and is constantly improving their skillset, an aspect that Martin covers in The Clean Coder. I view it as an important part of my job to help my team improve. To do so, I distill a lot of written material down to actionable components and provide that to my development team. Concepts from Clean Code have become very helpful guides for them. Below are a few of my favorite takeaways.The first is what Martin calls The Boy Scout Rule: “Leave the campground a little cleaner than you found it.” It’s a great concept, not only because it’s simple to follow, but also because it has broad applicability and can be used on any project. Essentially, when a team member works on a piece of code, they should aim to improve it somehow by the time their task is finished. A few examples of this among many are: fixing an unclear variable name, breaking up a large function into smaller functions, or cleaning up a conditional for improved clarity. With everyone on the team doing this, the code improves over time and everyone feels responsible for the code whether they wrote it personally or not. Even if something can’t be addressed immediately, developers are encouraged to log the issues they see.Another of my favorite takeaways is the Three Laws of TDD, a concept I was able to quickly roll out to the team as a framework to follow for how TDD should be conducted on a project. This virtually ensures that all of your product code has test coverage. It also helps make most of your code SOLID (https://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29), since code that is built in this fashion is structured with SOLID concepts in mind. This is a must for effective testing.Finally, the topics of proper identifier names and commenting really resonated with me and my team. In our company, we tend to “adopt” existing codebases – projects that have already been started by other developers whose code is of widely varying quality. If we’re lucky, it’s structured well and demonstrates best practices and approaches in how it’s constructed. Unfortunately, the code is sloppy at times and requires some TLC to get it in shape. A part of that process is understanding what the existing application does. As Clean Code correctly outlines, many comments are superfluous or even plain wrong and misleading. As a team, we don’t blindly trust the accuracy of existing comments and instead go right to the application’s code to determine what it does. This is where proper naming comes into play. With good names, the code reads like comments or as a narrative of what the application does, nullifying most needs for additional commenting. Simply put, the code comments itself. We also use refactoring tools to improve names and clean up comments as we go. Of course, by doing so, we’re also applying the Boy Scout Rule.Overall, Clean Code is a wonderful book with much useful and immediately-applicable information for developers of all levels. If you’re looking for a book that will help make you a better developer, this will.

    22 people found this helpful

  7. Jeffry K. Lefevre

    5.0 out of 5 stars

    Knowledge in This Tome is the Demarcation Between Programmers and Engineers

    There are one or two chapters that don’t apply if you’re not programming in Java, but the vast majority of what you read here can be transformative when put into practice. Don’t let the book’s age fool you. These issues are as relevant as ever.Have you heard of SOLID? You’ll learn about it here. Code smells? Learn how to avoid them here. Need code that is readable, maintainable, and usable, but seems like an impossibility? You’ll get there by applying what you learn here.This isn’t a book you read once and put down. You should get to know what’s in it by reading and re-reading.

    9 people found this helpful

  8. Jesse Liberty

    5.0 out of 5 stars

    Top 10 Books on SW Development – A Must Read

    I first met Bob Martin 15 years ago by reading his brilliantly lucid _Designing Object Oriented C++ Applications Using The Booch Method_. He was kind enough to help me sort out my own struggles with the writings of the “Three Amigos” and I’ve been something of a fan ever since.He followed with a number of excellent books; took the lead first on Patterns and then on Agile development; but now he has reached beyond his dedicated audience of serious software architecture geeks, with this extraordinary work on writing code well.This book ranks on any shelf that has either Code Complete by Steve McConne or Refactoring by Martin Fowler; both classics (though loyalty and enjoyment causes me to add Why Software Sucks by David Platt as belonging on that shelf as well).It is true that seasoned developers will find that they “already know” much of what is in the early portion of the book — but my experience is that Martin has a unique ability to crystalize even common wisdom in a way that gives accepted practice new impetus and that expands my understanding of the implications of tenets I hold to but don’t always fully implement.Bob Martin is known to many of us as “Uncle Bob,” and with good reason; his writing is avuncular in the finest sense of being solid advice offered in good cheer and without condescension.All of that said, this is not a light weight book; while offering up the fundamental principles that separate yeoman programmers from the truly expert, he goes on to teach more (and more effectively) about test driven development in one chapter than most authors accomplish in a book. He does the same for refactoring and, I would argue, on the way he offers a brilliant introduction to Agile programming.While we’re at it, let’s note that the chapters on naming and on comments would serve well as a standard for any software development group and should certainly be required reading for all new developers.In short, this book is recommended without reservation to those who are not yet convinced they know all that can be known about creating great software. I own both the electronic and the hardcover version, and it was money very well spent.

    5 people found this helpful

  9. Bryan

    5.0 out of 5 stars

    Profoundly changed how I code

    Profoundly changed how I approach coding. I’ve been coding professionally for 10 years and felt as if I was in a rut and ran into the same issues multiple times.Clean Code goes into the depths of the problem. Robert Martin takes you through pages upon pages of code to make the points clear and relevant to real world problems. Too many books give simple examples that are difficult to make meaningful.Overall this is a great book that I recommend to programmers at all levels. You will learn something new (even though it’s an “older” book).

    16 people found this helpful

  10. Arijit Chakraborti

    5.0 out of 5 stars

    Learning to leave the code cleaner than before

    As part of our learning activities, we learn quite a few programming languages. We also learn designs, patterns, good coding practices, and many more. We don’t usually spend time to learn how to write a good, readable code. The relevance of this book is enormous. Not just the programmers should read it, the education providers should also read it. In fact, the education providers should plan to include this in their curriculum associated with every programming languages.I started reading this book and finished it in almost three consecutive sittings. That way, the book is well structured, and the topics are well sequenced. The author cautioned at the beginning of the book that it is not for the armchair readers. The reader should spend adequate effort to read through the code examples, think through those, and try out some of those through self scribbling. This is indeed necessary for the coders. This is also necessary for the instructors of coding, or programming languages. I chose to skim through the examples with just enough thinking while paying attention to every detail of the English text. Such speed reading worked for me too. Such reading technique should work for all who are not into direct coding today, but was a programmer once upon a time, and spends a lot of time in conversing with the programmers nowadays.Coming back to the content of the book – this was quite informative and thought provoking. I read it fully and tried to jot down my takeaways from this book reading. I have got six of them.I learned the general rules for commenting, and summarized those in four points. I learned the general rules for code formatting, and summarized those in four points. I learned the general practice of code size – for a significant system, for a code file, for a typical function. I learned the general rules of organizing concepts and variables, and summarized those in five points. In fact, the definition of concepts was itself was a new learning for me. I learned the three laws of test driven development, rather I re-learned those once more while reading this book. Finally, I jotted down the final takeaway – leave the code cleaner than what you had started with.The book is full of good references, in fact at the end of every chapter. I tried to summarize the list of further readings, and I got another five book titles listed in my to-read list. I read it on my Kindle device, and on my desktop using Amazon Cloud Reader – the formatting was good.As coders, we all have the responsibility to leave the code cleaner than what we start with. As code reviewers, we all have the responsibility to comment on the cleanliness of the codes. As the supervisor or manager of coders, we all have the responsibility to communicate the importance of clean coding and to encourage coders towards clean coding. I will recommend to all these group of people to read this book, and practice the clean coding techniques described here.Good work indeed!

    5 people found this helpful

  11. AkbarmirzoAkbarmirzo

    5.0 out of 5 stars

    It’s not fake

    I was worried to receive a fake version of it. But all went well 👍

    4 people found this helpful

  12. owls say orly

    5.0 out of 5 stars

    required reading for every business application developer

    While this is a great text for intermediate programmers, some of the content is just the kind of stuff that starts inter-office holy wars. I would encourage anyone even remotely interested in becoming a better software craftsman to put it on top of their reading list and think critically about the situations presented, but if you don’t embrace code as a craft then you won’t get anything out of the book.In my personal opinion, the content in this book is like an ergonomic study on the act of coding. If you’ve worked in code bases larger than a few thousand lines while also having to do things like write design docs, project proposals, give presentations, mentor interns, etc, you will appreciate being able to do more in less time and with less bugs.

    One person found this helpful

  13. Scott

    5.0 out of 5 stars

    A must read! Fantastic!

    This is a fantastic book about writing clean code and test driven development. Robert dedicated an entire chapter, 14, to refactoring code and included why he refactored the way he did. Thats not all, the way Robert wrote this book is from one coder to another meaning you are his audience; very refreshing. He doesn’t hold your hand, but gives you enough information to get you literally on the same page as him with every line. The patterns and “smell tests” included here are worth the cost of this book alone.This book got me passionate about coding again and about unit testing. If you are a programmer, it doesn’t matter what language, (I write python mostly) this book deserves a place on your bookshelf.

    One person found this helpful

  14. O. Halabieh

    5.0 out of 5 stars

    Mastering the Craft of Coding

    What is clean code you might ask? One of the definitions that most resonated with me is that of Grady Booch, author of Object Oriented Analysis and Design with Applications: “Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer’s intent but rather is full of crisp abstractions and straightforward lines of control.”The main premise of the book, as stated by the author, is: “learning code is hard work. It requires more than just the knowledge of principles and patterns. You must sweat over it. You must practice it yourself, and watch yourself fail. You must watch others practice it and fail. You must see them stumble and retrace their steps. You must see them agonize over decisions and see the price they pay for making those decisions the wrong way.”The book is made up of three sections: The first one outlines the “principles, patterns, and practices of writing clean code”. This includes topics such as naming, functions, comments, formatting etc. The second one, includes several working examples of code cleanup using the tools from the first section. The last section, includes a number of heuristics and smells that help identify the need for cleaning code. These smells are divided by area, such as environment, names, comments etc.What sets this book apart is the applicability, practicality and breadth of the concepts discussed. The last section of the book is of particular relevance as a starting point for identifying weaknesses or deficiencies in code. These then serve as a testing ground for applying the concepts introduced in the book. What the author stresses throughout his work, is the need to continuous practice and to clean the code in an iterative manner.A recommended read for anyone involved with the software development lifecycle regardless of experience. From a critical standpoint, the choice of some of the case study code bases was at times questionable given its abstraction. This made them hard to follow at times.

Add a review

Your email address will not be published. Required fields are marked *

Shopping Cart