- Series: Robert C. Martin Series
- Paperback: 256 pages
- Publisher: Prentice Hall; 1 edition (May 23, 2011)
- Language: English
- ISBN-10: 0137081073
- ISBN-13: 978-0137081073
- Product Dimensions: 7 x 1 x 9 inches
- Shipping Weight: 14.9 ounces (View shipping rates and policies)
- Average Customer Review: 140 customer reviews
- Amazon Best Sellers Rank: #16,891 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The Clean Coder: A Code of Conduct for Professional Programmers 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
This item, sold by Amazon.com, is currently reserved exclusively for Prime members.
- Unlimited Free Two-Day Shipping
- Instant streaming of over 40,000 movies and TV episodes
- A Kindle book to borrow for free each month - with no due dates
- Over a million songs and hundreds of playlists
Also available to Amazon Students. Check for eligibility
Customers who bought this item also bought
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
From the Publisher
|A Handbook of Agile Software Craftsmanship||Practical Advice for the Professional Programmer||A Craftsman's Guide to Software Structure and Design||Professionalism, Pragmatism, Pride||Get Better Performance Out of Your Legacy Systems|
|Title||Clean Code||Clean Coder||Clean Architecture||The Software Craftsman||Working Effectively with Legacy Code|
|Core Concept||Best agile practices of cleaning code “on the fly” that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.||Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice–about everything from estimating and coding to refactoring and testing.||Uncle Bob presents the universal rules of software architecture that will help you dramatically improve developer productivity throughout the life of any software system.||Sandro Mancuso helped found the world’s largest organization of software craftsmen; now, he shares what he’s learned through inspiring examples and pragmatic advice you can use in your company, your projects, and your career.||Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases.|
|Endoresement||"It is the best pragmatic application of Lean principles to software I have ever seen in print." —James O. Coplien, Founder of the Pasteur Organizational Patterns project||“Some technical books inspire and teach; some delight and amuse. Rarely does a technical book do all four of these things. Read, learn, and live the lessons in this book and you can accurately call yourself a software professional.” —George Bullock Senior Program Manager Microsoft Corp.||"A good architecture comes from understanding it more as a journey than as a destination, more as an ongoing process of enquiry than as a frozen artifact." -- Kevlin Henney||"If you are the type of programmer, team lead, or manager who craves to be able to go home after a long day of work, look in the mirror, and say, 'Damn, I did a good job today!' then this is the book for you." -- Robert C. Martin||"This book describes a set of disciplines, concepts, and attitudes that you will carry with you for the rest of your career and that will help you to turn systems that gradually degrade into systems that gradually improve." --- Robert C. Martin|
“‘Uncle Bob’ Martin definitely raises the bar with his latest book. He explains his expectation for a professional programmer on management interactions, time management, pressure, on collaboration, and on the choice of tools to use. Beyond TDD and ATDD, Martin explains what every programmer who considers him- or herself a professional not only needs to know, but also needs to follow in order to make the young profession of software development grow.”
Senior Software Developer
“Some technical books inspire and teach; some delight and amuse. Rarely does a technical book do all four of these things. Robert Martin’s always have for me and The Clean Coder is no exception. Read, learn, and live the lessons in this book and you can accurately call yourself a software professional.”
Senior Program Manager
“If a computer science degree had ‘required reading for after you graduate,’ this would be it. In the real world, your bad code doesn’t vanish when the semester’s over, you don’t get an A for marathon coding the night before an assignment’s due, and, worst of all, you have to deal with people. So, coding gurus are not necessarily professionals. The Clean Coder describes the journey to professionalism . . . and it does a remarkably entertaining job of it.”
University of Illinois at Urbana-Champaign
“The Clean Coder is much more than a set of rules or guidelines. It contains hard-earned wisdom and knowledge that is normally obtained through many years of trial and error or by working as an apprentice to a master craftsman. If you call yourself a software professional, you need this book.”
–R. L. Bogetti
Lead System Designer
From the Back Cover
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 codeHow to write good code and how to transform bad code into good codeHow to create good names, good functions, good objects, and good classesHow to format code for maximum readabilityHow to implement complete error handling without obscuring code logicHow to unit test and practice test-driven developmentThis book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
As other reviews have said, it feels like a collection of blog articles published in a book.
Chapter 1. Professionalism
The book got off to a bad start for me... the first chapter on professionalism:
"Do the math. In a week there are 168 hours. Give your employer 40, and your career another 20. That leaves 108. Another 56 for sleep leaves 52 for everything else.
Perhaps you don't want to make that kind of commitment, That's fine, but should not think of yourself as a professional. Professionals spend time caring for their profession."
Really? 20 hours per week; so if you spend 10 per week reading blogs, listening to podcasts, doing kata's etc... you are no longer a professional? While I agree, you have to take personal responsibility for your career, asserting that you have to spend 20 hours a week seems over the top to me. Perhaps the author wishes to be controversial and overly opinionated to provoke debate?
Chapter 4. Coding.
The section on listening to music while coding has a truly bizarre anecdote:
"One day I went back into a module that I been editing while listening to the opening sequence of The Wall. The comments in that code contained lyrics from the piece, and editorial notations about dive bombers and crying babies."
I'm guessing lots of people listen to music while coding without a problem. I can imagine, if I had been working 80 hour weeks for the last month, I would something similar, but surely that is a symptom of being on a death march?
I liked the section on false delivery. It can sometimes be difficult for everyone to have a shared understanding of 'done'. A former Scrum Master used to have a short meeting whenever a new team member joined us to cover the "definition of done".
I'm a little skeptical of repeatedly doing the same kata; yes create side projects to spike a new technology that you wish to learn about - but I'm not convinced that continued repetition of kata helps.
9. Time Management
I was glad to read, that it is OK to decline a meeting. It validates my practice of declining meetings without an agenda/ goal/ deliverable.
I liked the advice, on how to leave a meeting that you are not adding value to and from which you are receiving no value.
I thought this section contradicted what the author mentioned about 'The Flow Zone' in chapter 4.
"We write code when our focus-manna is high; and we do no other, less productive things when it's not.".
On the Zone - "It is the highly focused, tunnel-vision state of consciousness that programmers can get into while they write code.".
The following excerpt I found very peculiar - "I've only been drunk two times in my life, and only really drunk once. It was at the Teradyne Christmas party in 1978. I was 26 years old.".
14. Mentoring, apprenticeships and Craftsmanship.
I felt this chapter could have been longer, with more depth and more concrete proposals; this chapter should of been the highlight of the book - as the most of the themes of the book are either covered in depth elsewhere or are part of best practices/ agile bandwagon (TDD, unit tests, acceptance tests). It would have been nice to provide more information about efforts the IEEE or the ACM are doing to promote the idea of software professionals. A discussion on certifications may have been useful.
It felt like the book ended rather abruptly with on Tools. It seems this chapter is going to make the book dated very quickly; whereas a book on titled "The Clean Coder: A Code of Conduct for professional programmers" should be timeless.
Software development is a field historically dominated by strong individualists. I'm not saying that there isn't a place for "company men" in our profession, just that they don't fare as well over the long term as do those who intelligently look after their own interests, first.
You don't need someone else's "Code of Conduct". Discover your own.
Another good point Martin makes is that a professional programmer should take the responsibility to hone his or her skills outside working hours. He recommends working a focused and productive 40 hours a week, and then spending 20 hours a week on career development: reading, learning other languages, even practicing programming "katas".
One of the most controversial claims Martin makes is that getting into "the zone" - that mental state of total concentration for which programmers strive - is a bad idea, because it results in too narrow a focus. Personally, I'm not convinced. I think that the problems of focused programming can be remedied by being sure to take a big-picture view from time to time, and also by code reviews.
A problem with this book is Martin's use of overstatement to indicate emphasis. So when he says "never, never, never" agree to meet a deadline by working extra hard and long, he means "hardly ever". His insistence that agreeing to accelerate effort inevitably result in low quality code just does not wash. Not that it can go on forever, but my own experience is that a brief and intense push can often get things done faster without sacrificing quality. Even Martin's suggested regimen suggests that there is slack in the schedule: surely the 20 per week of career development could be sacrificed from time to time. I shudder to think of a mid-level programmer, influenced by Martin's rhetoric, refusing to work extra hours "on principle", thus harming both his own career and the prospects of his company.
With that caveat, however, the book has much sound advice, and is an excellent read to boot.