Facebook Pixel
Searching...
Français
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
The Clean Coder

The Clean Coder

A Code of Conduct for Professional Programmers
par Robert C. Martin 2011 210 pages
4.26
9k+ évaluations
Écouter
Listen to Summary

Points clés

1. Le professionnalisme dans le développement logiciel nécessite de prendre des responsabilités et de dire "non"

"Les professionnels disent la vérité au pouvoir. Les professionnels ont le courage de dire non à leurs managers."

Prendre des responsabilités est au cœur du professionnalisme dans le développement logiciel. Cela signifie reconnaître ses erreurs, respecter ses engagements et fournir un travail de haute qualité. Les professionnels comprennent que leurs actions ont des conséquences et sont prêts à en assumer la responsabilité.

Dire "non" est un aspect tout aussi important du professionnalisme. Cela implique :

  • De refuser des délais irréalistes
  • De s'opposer à de mauvaises pratiques
  • De ne pas faire de compromis sur la qualité
  • D'éviter de s'engager au-delà de ses capacités

Les professionnels reconnaissent que dire "non" lorsque c'est nécessaire protège à la fois eux-mêmes et leur équipe des échecs potentiels et préserve l'intégrité de leur travail.

2. Le développement piloté par les tests (TDD) est essentiel pour produire un code de haute qualité

"Le verdict est tombé. La controverse est terminée. Le TDD fonctionne."

Les avantages du TDD incluent :

  • Une qualité de code améliorée
  • Des taux de défauts réduits
  • Un meilleur design et une meilleure architecture
  • Une confiance accrue dans les modifications de code

Le TDD consiste à écrire des tests avant d'écrire le code réel. Cette approche oblige les développeurs à réfléchir au design et à la fonctionnalité de leur code avant la mise en œuvre, ce qui conduit à un code plus propre, plus modulaire et plus facile à maintenir.

Mettre en œuvre le TDD nécessite de la discipline et de la pratique. Cela peut ralentir le développement initial, mais cela porte ses fruits à long terme en réduisant les bogues, en améliorant la qualité du code et en facilitant le refactoring et la maintenance du code au fil du temps.

3. Une gestion efficace du temps et une concentration sont cruciales pour la productivité

"La programmation est un exercice intellectuel qui nécessite de longues périodes de concentration et de focus."

Gérer son temps efficacement est essentiel pour les développeurs de logiciels. Cela implique :

  • De prioriser les tâches
  • D'éviter les distractions
  • D'utiliser des techniques comme la méthode Pomodoro
  • De prendre des pauses régulières pour se ressourcer

Maintenir sa concentration est tout aussi important. Les développeurs doivent reconnaître leurs heures de productivité maximale et structurer leur travail en conséquence. Il est essentiel de créer un environnement propice au travail en profondeur et de minimiser les interruptions pendant ces périodes.

Les professionnels comprennent également l'importance de l'équilibre entre vie professionnelle et vie personnelle et évitent de s'épuiser en gérant leurs niveaux d'énergie et en prenant du temps pour des activités personnelles et du repos.

4. L'estimation est une compétence qui nécessite de la pratique et une communication claire

"Une estimation est une supposition. Aucun engagement n'est impliqué. Aucune promesse n'est faite."

Améliorer ses compétences en estimation implique :

  • De décomposer les tâches en morceaux plus petits et plus gérables
  • D'utiliser des données historiques et des expériences passées
  • De prendre en compte les risques et incertitudes potentiels
  • De revoir et d'ajuster régulièrement les estimations

Les professionnels comprennent que les estimations ne sont pas des engagements. Ils communiquent clairement sur les incertitudes impliquées et fournissent des plages plutôt que des chiffres uniques lorsque cela est approprié.

Une communication efficace des estimations est cruciale. Cela inclut d'expliquer les hypothèses derrière l'estimation, de fournir un contexte et de tenir les parties prenantes informées si les circonstances changent. Les professionnels résistent également à la pression de fournir des estimations irréalistes ou de s'engager sur des délais qu'ils savent impossibles à respecter.

5. Gérer la pression de manière professionnelle implique de rester calme et de s'appuyer sur des disciplines

"Le développeur professionnel reste calme et décisif sous pression."

Rester calme sous pression est une caractéristique du professionnalisme. Cela implique :

  • De garder du recul
  • De se concentrer sur les solutions plutôt que sur les problèmes
  • De communiquer clairement avec les membres de l'équipe et les parties prenantes
  • D'éviter la tentation de bâcler le travail ou de compromettre la qualité

Les professionnels s'appuient sur leurs disciplines établies et leurs meilleures pratiques lorsqu'ils sont sous pression. Ils comprennent qu'abandonner de bonnes pratiques en période de stress conduit souvent à plus de problèmes à long terme.

Gérer les attentes est également crucial lorsqu'on fait face à la pression. Cela inclut d'être honnête sur les défis, de fournir des mises à jour régulières et de proposer des solutions réalistes plutôt que de faire des promesses impossibles à tenir.

6. La collaboration et le travail d'équipe sont fondamentaux pour un développement logiciel réussi

"La programmation consiste avant tout à travailler avec des personnes."

Une collaboration efficace implique :

  • Une communication claire
  • Une écoute active
  • Un respect des perspectives diverses
  • Une volonté de compromis et de trouver des solutions ensemble

Les professionnels comprennent que le développement logiciel est un sport d'équipe. Ils s'efforcent activement de briser les silos, de partager des connaissances et de soutenir leurs collègues.

La programmation en binôme et les revues de code sont des pratiques précieuses qui favorisent la collaboration et améliorent la qualité du code. Les professionnels sont ouverts aux retours et les considèrent comme une opportunité de croissance plutôt que comme une critique.

7. L'apprentissage continu et la pratique sont vitaux pour la croissance professionnelle

"Les professionnels pratiquent. Les véritables professionnels travaillent dur pour garder leurs compétences aiguisées et prêtes."

L'apprentissage continu est essentiel dans le domaine en constante évolution du développement logiciel. Cela inclut :

  • De se tenir au courant des nouvelles technologies et des meilleures pratiques
  • De lire des livres et des articles
  • D'assister à des conférences et des ateliers
  • D'expérimenter de nouveaux outils et techniques

La pratique délibérée est tout aussi importante. Cela implique :

  • De travailler sur des projets annexes
  • De participer à des défis de codage
  • De contribuer à des projets open-source
  • De revisiter et de perfectionner régulièrement les compétences fondamentales

Les professionnels comprennent que l'apprentissage est un voyage tout au long de la vie et prennent la responsabilité de leur propre croissance et développement.

8. Les tests d'acceptation garantissent une communication claire des exigences

"Le but des tests d'acceptation est la communication, la clarté et la précision."

Les avantages des tests d'acceptation incluent :

  • Une compréhension plus claire des exigences
  • Une réduction des malentendus entre développeurs et parties prenantes
  • Une détection précoce des problèmes et des incohérences
  • Une amélioration de la qualité globale du logiciel

Les tests d'acceptation servent de spécification formelle sur le comportement attendu du système. Ils sont rédigés en collaboration entre développeurs, testeurs et parties prenantes commerciales pour garantir une compréhension partagée des exigences.

L'automatisation des tests d'acceptation permet un retour d'information plus rapide et aide à détecter les régressions tôt. Les professionnels plaident en faveur de l'automatisation des tests d'acceptation comme partie intégrante de leur processus de développement.

9. Le mentorat et l'artisanat sont essentiels pour développer des professionnels qualifiés

"L'école peut enseigner la théorie de la programmation informatique. Mais l'école ne peut pas, et ne peut jamais enseigner la discipline, la pratique et l'habileté d'être un artisan."

Le mentorat joue un rôle crucial dans le développement de professionnels qualifiés. Cela implique :

  • De partager des connaissances et des expériences
  • De fournir des conseils et des retours
  • De défier les mentorés à grandir et à s'améliorer
  • De modéliser un comportement et des pratiques professionnelles

L'artisanat dans le développement logiciel va au-delà des compétences techniques. Il englobe :

  • Un engagement envers la qualité
  • L'amélioration continue
  • Un comportement éthique
  • La fierté dans son travail

Les professionnels reconnaissent leur responsabilité de mentor et de guider les développeurs moins expérimentés, contribuant ainsi à cultiver la prochaine génération de praticiens qualifiés et à maintenir des normes élevées dans l'industrie.

Dernière mise à jour:

FAQ

What's "The Clean Coder" about?

  • Professionalism in Programming: "The Clean Coder" by Robert C. Martin is a guide to professional conduct for software developers, emphasizing the importance of professionalism in the field.
  • Code of Conduct: It outlines a code of conduct for programmers, focusing on responsibility, accountability, and ethical behavior in software development.
  • Practical Advice: The book provides practical advice on how to handle common challenges faced by programmers, such as dealing with pressure, managing time, and saying no.
  • Improving Software Craftsmanship: It aims to improve the craft of software development by encouraging developers to adopt disciplined practices and continuous learning.

Why should I read "The Clean Coder"?

  • Enhance Professionalism: Reading this book can help you enhance your professionalism and improve your reputation as a reliable software developer.
  • Practical Guidance: It offers practical guidance on handling real-world challenges in software development, making it a valuable resource for both new and experienced programmers.
  • Ethical Framework: The book provides an ethical framework for making decisions, which is crucial in maintaining integrity and trust in the workplace.
  • Career Growth: By adopting the practices and principles outlined in the book, you can advance your career and contribute positively to your team and organization.

What are the key takeaways of "The Clean Coder"?

  • Responsibility and Accountability: Programmers should take responsibility for their work and be accountable for their mistakes, striving to deliver high-quality software.
  • Saying No: Learning to say no is crucial when faced with unrealistic demands or deadlines, ensuring that commitments are realistic and achievable.
  • Continuous Learning: Developers should continuously learn and practice their craft to stay relevant and improve their skills.
  • Testing and Clean Code: Emphasizes the importance of writing clean, maintainable code and using test-driven development to ensure software quality.

What is the "do no harm" approach in "The Clean Coder"?

  • Avoiding Bugs: Programmers should strive to avoid introducing bugs into the software, as they can cause significant harm to the project and the business.
  • Testing Thoroughly: Code should be thoroughly tested to ensure it works as intended, with automated tests providing a safety net for changes.
  • Maintaining Structure: The structure of the code should be maintained to ensure it remains flexible and easy to change, preventing future issues.
  • Continuous Improvement: Developers should continuously refactor and improve the codebase to prevent it from becoming rigid and difficult to work with.

How does "The Clean Coder" suggest handling pressure?

  • Avoiding Pressure: The book advises avoiding pressure by managing commitments carefully and maintaining clean code to prevent last-minute crises.
  • Staying Calm: Under pressure, developers should remain calm and rely on their disciplines and training to guide them through challenging situations.
  • Effective Communication: Communicating effectively with the team and stakeholders can help manage expectations and reduce pressure.
  • Seeking Help: When under pressure, seeking help from colleagues and collaborating can provide support and lead to better solutions.

What is the role of acceptance testing in "The Clean Coder"?

  • Defining Done: Acceptance tests help define what "done" means for a feature, ensuring that all parties agree on the requirements and expectations.
  • Automated Tests: These tests should be automated to provide a reliable and repeatable way to verify that the software meets the specified requirements.
  • Collaboration: Acceptance tests are created through collaboration between developers, testers, and stakeholders, ensuring that all perspectives are considered.
  • Reducing Ambiguity: By specifying requirements in the form of tests, ambiguity is reduced, leading to clearer communication and fewer misunderstandings.

What does "The Clean Coder" say about saying no?

  • Importance of Saying No: Saying no is crucial when faced with unrealistic demands or deadlines, protecting the quality of the work and the well-being of the developer.
  • Professional Responsibility: It is a professional responsibility to push back against requests that cannot be reasonably fulfilled without compromising standards.
  • Negotiation: Saying no should be part of a negotiation process to find a mutually agreeable solution that meets the needs of the business and the capabilities of the team.
  • Avoiding Overcommitment: By saying no when necessary, developers can avoid overcommitment and ensure they can deliver on their promises.

How does "The Clean Coder" define professionalism in programming?

  • Taking Responsibility: Professionalism involves taking responsibility for one's work and being accountable for the outcomes, both good and bad.
  • Continuous Improvement: Professionals continuously seek to improve their skills and knowledge, staying current with industry trends and best practices.
  • Ethical Behavior: Ethical behavior is a cornerstone of professionalism, ensuring that developers act with integrity and honesty in all their dealings.
  • Commitment to Quality: Professionals are committed to delivering high-quality software, adhering to best practices and standards to achieve this goal.

What is the significance of test-driven development (TDD) in "The Clean Coder"?

  • Ensuring Quality: TDD is a discipline that helps ensure the quality of the software by writing tests before the code, guiding development.
  • Confidence in Code: By having a suite of tests, developers can have confidence that their code works as intended and that changes won't introduce new bugs.
  • Design Influence: TDD influences design by encouraging decoupled and testable code, leading to better architecture and maintainability.
  • Professional Practice: TDD is presented as a professional practice that developers should adopt to improve their craft and deliver reliable software.

What are the best quotes from "The Clean Coder" and what do they mean?

  • "Professionalism is all about taking responsibility." This quote emphasizes the importance of being accountable for one's work and actions as a software developer.
  • "QA should find nothing." This highlights the goal of developers to deliver software that is so well-tested and reliable that QA finds no issues.
  • "Saying yes to dropping our professional disciplines is not the way to solve problems." This warns against compromising standards and practices in the face of pressure or deadlines.
  • "The only way to prove that your software is easy to change is to make easy changes to it." This underscores the importance of maintaining clean and flexible code that can be easily modified.

How does "The Clean Coder" address time management?

  • Prioritizing Tasks: Developers should prioritize tasks based on their importance and urgency, focusing on what delivers the most value.
  • Avoiding Meetings: Unnecessary meetings should be avoided to maximize productive time, with developers attending only those that are essential.
  • Using Techniques: Techniques like the Pomodoro Technique can help manage time effectively by breaking work into focused intervals.
  • Balancing Work and Life: Time management also involves balancing work with personal life, ensuring that developers maintain their well-being and avoid burnout.

What is the role of mentoring in "The Clean Coder"?

  • Guiding New Developers: Mentoring is crucial for guiding new developers, helping them learn best practices and develop their skills.
  • Sharing Knowledge: Experienced developers should share their knowledge and experience with less experienced colleagues to foster growth and development.
  • Building a Culture: Mentoring helps build a culture of learning and improvement within a team, encouraging continuous development.
  • Professional Responsibility: It is a professional responsibility for senior developers to mentor and support junior team members, contributing to the overall success of the team.

Avis

4.26 sur 5
Moyenne de 9k+ évaluations de Goodreads et Amazon.

Le Codeur Propre suscite des avis partagés, avec de nombreux lecteurs louant ses réflexions sur le développement logiciel professionnel. Les lecteurs apprécient les anecdotes de l'auteur et ses conseils sur l'éthique de travail, l'estimation et la communication. Certains jugent le livre dépassé ou excessif dans ses attentes, notamment en ce qui concerne les heures de travail. Les critiques soulignent des récits répétitifs et un ton centré sur l'auteur. Malgré ces désaccords, la plupart des critiques le recommandent comme une ressource précieuse pour les programmeurs professionnels en herbe, mettant en avant son insistance sur la discipline, la responsabilité et l'apprentissage continu.

À propos de l'auteur

Robert Cecil Martin, connu sous le nom d'Oncle Bob, est un ingénieur logiciel et consultant de renom. Il prône les méthodes de développement Agile et est le président d'Object Mentor Inc. La carrière de Martin s'étend sur plusieurs décennies, au cours desquelles il a conseillé des clients du monde entier sur la conception orientée objet, les modèles, l'UML et les méthodologies Agile. Il a été rédacteur en chef du C++ Report de 1996 à 1999. Figure emblématique de la communauté du développement logiciel, Martin est un conférencier très recherché lors de conférences et salons internationaux. Son expertise et son influence durable dans le domaine en ont fait une voix respectée en matière de pratiques d'ingénierie logicielle et de développement professionnel.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Get personalized suggestions
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Apr 5,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner

Point camera at a book's barcode to scan

Scanning...

Settings
General
Widget
Appearance
Loading...
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →