The Clean Coder: A Code of Conduct for Professional Programmers (Anglais) Broché – 13 mai 2011
|Neuf à partir de||Occasion à partir de|
Produits fréquemment achetés ensemble
Les clients ayant acheté cet article ont également acheté
Descriptions du produit
Revue de presse
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
Présentation de l'éditeur
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.
In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert 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. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
Readers will learn
- What it means to behave as a true software craftsman
- How to deal with conflict, tight schedules, and unreasonable managers
- How to get into the flow of coding, and get past writer’s block
- How to handle unrelenting pressure and avoid burnout
- How to combine enduring attitudes with new development paradigms
- How to manage your time, and avoid blind alleys, marshes, bogs, and swamps
- How to foster environments where programmers and teams can thrive
- When to say “No”–and how to say it
- When to say “Yes”–and what yes really means
Great software is something to marvel at: powerful, elegant, functional, a pleasure to work with as both a developer and as a user. Great software isn’t written by machines. It is written by professionals with an unshakable commitment to craftsmanship. The Clean Coder will help you become one of them–and earn the pride and fulfillment that they alone possess.
Aucun appareil Kindle n'est requis. Téléchargez l'une des applis Kindle gratuites et commencez à lire les livres Kindle sur votre smartphone, tablette ou ordinateur.
Pour obtenir l'appli gratuite, saisissez votre adresse e-mail ou numéro de téléphone mobile.
Détails sur le produit
En savoir plus sur l'auteur
Dans ce livre(En savoir plus)
Quels sont les autres articles que les clients achètent après avoir regardé cet article?
Commentaires en ligne
Meilleurs commentaires des clients
On apprend notamment qu'un vrai professionnel doit dire "non" à ses supérieurs lorsqu'ils demandent d'effectuer le travail d'un mois en trois jours, et la véritable façon de travailler en équipe (dire oui tout le temps étant simplement de la soumission).
Bref, il s'agit d'un véritable plaidoyer mettant le codeur dans une position de maître artisan, qui prend la responsabilité de ses engagements ; le codeur n'est plus le grouillot exploité, bêtement fier de dormir à son travail pour tenir des délais impossibles, au nom du respect de soi-même et du travail bien fait, mais il est bien l'expert capable d'estimer le plus précisément le temps que prendra une tâche pour être effectuée, et qui s'occupe lui-même d'aiguiser ses facultés, tel un musicien de haut niveau !
Pour les avides de méthode et de façon de penser saines, je recommande aussi "le développement informatique durable" de Félix Guillemot.
A compléter avec le livre du même auteur que "The Clean Coder", "Clean Code".
Martin analyzed, synthesized and helps coders correct the major image problem the profession suffers.
Robet R Matrtins AKA "Uncle Bob" is a model to inspire ones carrer.
Commentaires client les plus utiles sur Amazon.com (beta)
Sometimes the author presents strategies very specific to him that wouldn't work for me. For example, I tried the pomodoro method before and had mixed results. I think readers would benefit more looking at the goal (better time management) and finding a methodology that works for them to accomplish that goal.
He is very bullish on unit tests, stating that there is no longer and controversy over TDD. As a huge fan of unit tests, I find many places I have worked at have very little interest in unit testing or don't see any real benefit.
The book is also very strongly against being in the Flow to program which I found interesting. This is pretty much 100% the opposite of everything else I have ever heard/read.
He is also against listening to music while programming. He provides a weird example where while listening to Pink Floyd his code comments had Pink Floyd references. The author has a tendency to confuse something that is true for him ("I don't listen to music while programming") to a general universal rule ("Programmers shouldn't listen to music while programming").
Most programmers I know who listen to music do so as white noise. For instance, I listen to techno many times while programming. I don't like techno but the droning drum servies to drown out the office chitter chatter at my current gig.
Like Clean Code, I don't always agree with the author but provides good food for thought and is worth the read!
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.
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.
For example, I see value in tests and writing them as you write code, not after, but I would be interested in arguments for a very tight test/code cycle. Arguments that address what wisdom there is in knowing your tools well enough that you know what your wrote and how it will work (that you know what your wrote). Arguments that also address the fact that it's just unit testing and there are limits to the feedback you get from them. A customer is not vetting your code, so any mistakes you make with regard to requirements, or understanding the problem, are still reflected in the test. Unit tests are good. Writing them as you write code keeps you on top of it, but they aren't the end-all. Coverage is something to be proud of, but it won't tell you if you are building the wrong thing. Martin writes with such emphasis for TDD, without mentioning it's limits that some might be mislead.
I'm an experienced developer with over 20 years of experience to draw upon to temper and evaluate any rules presented to me. While I think there are some good points in here, they aren't justified well enough for a beginner to understand these opinions and integrate them thoughtfully into their own practice. Just as a coder should have a good understanding of the fundamentals of their tools, of why things work they way they do, eschewing black magic, so should that coder understand process and guidelines such as those presented here.
Read The Pragmatic Programmer by Dave Thomas instead. Consider also Rob Pike's The Practice of Programming, maybe The Unix Philosphy, and even stuff like Peopleware (Demarco and Lister), Software Craftsmanship (McBreen), and Professional Software Development (McConnell) first.
It's still an interesting reading, but if you do read it, keep some distance, it's not the Truth.