Searching...
Deutsch
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
von Robert C. Martin 2011 210 Seiten
4.26
9k+ Bewertungen
Hören
Listen to Summary
Try Full Access for 7 Days
Unlock listening & more!
Continue

Wichtige Erkenntnisse

1. Professionalität in der Softwareentwicklung erfordert Verantwortung und das Nein-Sagen

„Professionals sprechen die Wahrheit zur Macht. Professionals haben den Mut, ihren Vorgesetzten Nein zu sagen.“

Verantwortung übernehmen steht im Mittelpunkt der Professionalität in der Softwareentwicklung. Das bedeutet, Fehler einzugestehen, Verpflichtungen einzuhalten und qualitativ hochwertige Arbeit zu liefern. Professionals verstehen, dass ihre Handlungen Konsequenzen haben und sind bereit, dafür Verantwortung zu übernehmen.

Das Nein-Sagen ist ein ebenso wichtiger Aspekt der Professionalität. Dazu gehört:

  • Unrealistische Fristen abzulehnen
  • Gegen schlechte Praktiken Widerstand zu leisten
  • Keine Kompromisse bei der Qualität einzugehen
  • Übercommitment zu vermeiden

Professionals erkennen, dass das Nein-Sagen, wenn es notwendig ist, sowohl sie selbst als auch ihr Team vor möglichen Misserfolgen schützt und die Integrität ihrer Arbeit wahrt.

2. Testgetriebene Entwicklung (TDD) ist entscheidend für die Produktion von hochwertigem Code

„Das Urteil ist gefällt. Die Kontroverse ist beendet. TDD funktioniert.“

Die Vorteile von TDD umfassen:

  • Verbesserte Codequalität
  • Reduzierte Fehlerquoten
  • Besseres Design und Architektur
  • Höhere Sicherheit bei Codeänderungen

TDD beinhaltet, Tests zu schreiben, bevor der eigentliche Code geschrieben wird. Dieser Ansatz zwingt Entwickler dazu, über das Design und die Funktionalität ihres Codes nachzudenken, bevor sie mit der Implementierung beginnen, was zu saubererem, modularerem und wartbarem Code führt.

Die Implementierung von TDD erfordert Disziplin und Übung. Es kann die anfängliche Entwicklung verlangsamen, zahlt sich jedoch langfristig aus, indem es Bugs reduziert, die Codequalität verbessert und das Refactoring sowie die Wartung des Codes erleichtert.

3. Effektives Zeitmanagement und Fokus sind entscheidend für die Produktivität

„Programmieren ist eine intellektuelle Übung, die längere Konzentrations- und Fokussierungsphasen erfordert.“

Zeit effektiv zu managen ist für Softwareentwickler von entscheidender Bedeutung. Dazu gehört:

  • Aufgaben zu priorisieren
  • Ablenkungen zu vermeiden
  • Techniken wie die Pomodoro-Methode zu nutzen
  • Regelmäßige Pausen einzulegen, um neue Energie zu tanken

Den Fokus aufrechtzuerhalten ist ebenso wichtig. Entwickler sollten ihre produktivsten Stunden erkennen und ihre Arbeit entsprechend strukturieren. Es ist entscheidend, eine Umgebung zu schaffen, die tiefes Arbeiten fördert, und Unterbrechungen während dieser Phasen zu minimieren.

Professionals verstehen auch die Bedeutung der Work-Life-Balance und vermeiden es, auszubrennen, indem sie ihre Energieniveaus managen und Zeit für persönliche Aktivitäten und Erholung einplanen.

4. Schätzung ist eine Fähigkeit, die Übung und klare Kommunikation erfordert

„Eine Schätzung ist eine Vermutung. Es wird kein Engagement impliziert. Es wird kein Versprechen gegeben.“

Die Verbesserung der Schätzfähigkeiten umfasst:

  • Aufgaben in kleinere, handhabbare Teile zu zerlegen
  • Historische Daten und frühere Erfahrungen zu nutzen
  • Mögliche Risiken und Unsicherheiten zu berücksichtigen
  • Schätzungen regelmäßig zu überprüfen und anzupassen

Professionals verstehen, dass Schätzungen keine Verpflichtungen sind. Sie kommunizieren klar über die damit verbundenen Unsicherheiten und geben, wo es angebracht ist, Bereiche anstelle von Einzelzahlen an.

Die effektive Kommunikation von Schätzungen ist entscheidend. Dazu gehört, die Annahmen hinter der Schätzung zu erklären, Kontext zu bieten und Stakeholder zu informieren, wenn sich die Umstände ändern. Professionals widerstehen auch dem Druck, unrealistische Schätzungen abzugeben oder sich zu Fristen zu verpflichten, von denen sie wissen, dass sie unmöglich einzuhalten sind.

5. Professioneller Umgang mit Druck erfordert Gelassenheit und Disziplin

„Der professionelle Entwickler bleibt unter Druck ruhig und entscheidungsfreudig.“

Unter Druck ruhig zu bleiben ist ein Markenzeichen der Professionalität. Dazu gehört:

  • Die Perspektive zu bewahren
  • Sich auf Lösungen statt auf Probleme zu konzentrieren
  • Klar mit Teammitgliedern und Stakeholdern zu kommunizieren
  • Der Versuchung zu widerstehen, Abstriche zu machen oder die Qualität zu gefährden

Professionals verlassen sich in Drucksituationen auf ihre etablierten Disziplinen und Best Practices. Sie verstehen, dass das Aufgeben guter Praktiken in stressigen Zeiten oft zu mehr Problemen auf lange Sicht führt.

Erwartungen zu managen ist ebenfalls entscheidend, wenn man mit Druck umgeht. Dazu gehört, ehrlich über Herausforderungen zu sein, regelmäßige Updates zu geben und realistische Lösungen vorzuschlagen, anstatt Versprechen zu machen, die nicht gehalten werden können.

6. Zusammenarbeit und Teamarbeit sind grundlegend für erfolgreiche Softwareentwicklung

„Programmieren dreht sich alles um die Zusammenarbeit mit Menschen.“

Effektive Zusammenarbeit umfasst:

  • Klare Kommunikation
  • Aktives Zuhören
  • Respekt für unterschiedliche Perspektiven
  • Bereitschaft, Kompromisse einzugehen und gemeinsam Lösungen zu finden

Professionals verstehen, dass Softwareentwicklung ein Teamsport ist. Sie arbeiten aktiv daran, Silos abzubauen, Wissen zu teilen und ihre Kollegen zu unterstützen.

Pair Programming und Code-Reviews sind wertvolle Praktiken, die die Zusammenarbeit fördern und die Codequalität verbessern. Professionals sind offen für Feedback und sehen es als Gelegenheit zur Weiterentwicklung, nicht als Kritik.

7. Kontinuierliches Lernen und Übung sind entscheidend für das berufliche Wachstum

„Professionals üben. Wahre Professionals arbeiten hart daran, ihre Fähigkeiten scharf und bereit zu halten.“

Kontinuierliches Lernen ist in dem sich schnell entwickelnden Bereich der Softwareentwicklung unerlässlich. Dazu gehört:

  • Auf dem Laufenden zu bleiben über neue Technologien und Best Practices
  • Bücher und Artikel zu lesen
  • An Konferenzen und Workshops teilzunehmen
  • Mit neuen Tools und Techniken zu experimentieren

Gezielte Übung ist ebenso wichtig. Dazu gehört:

  • An Nebenprojekten zu arbeiten
  • An Programmierwettbewerben teilzunehmen
  • Zu Open-Source-Projekten beizutragen
  • Regelmäßig grundlegende Fähigkeiten zu überarbeiten und zu verfeinern

Professionals verstehen, dass Lernen eine lebenslange Reise ist und übernehmen Verantwortung für ihr eigenes Wachstum und ihre Entwicklung.

8. Akzeptanztests gewährleisten eine klare Kommunikation der Anforderungen

„Der Zweck von Akzeptanztests ist Kommunikation, Klarheit und Präzision.“

Die Vorteile von Akzeptanztests umfassen:

  • Klareres Verständnis der Anforderungen
  • Reduzierte Missverständnisse zwischen Entwicklern und Stakeholdern
  • Frühe Erkennung von Problemen und Inkonsistenzen
  • Verbesserte Gesamtqualität der Software

Akzeptanztests dienen als formale Spezifikation, wie das System sich verhalten sollte. Sie werden in Zusammenarbeit zwischen Entwicklern, Testern und Geschäftsstakeholdern geschrieben, um ein gemeinsames Verständnis der Anforderungen sicherzustellen.

Die Automatisierung von Akzeptanztests ermöglicht schnellere Rückmeldungen und hilft, Regressionen frühzeitig zu erkennen. Professionals setzen sich für automatisierte Akzeptanztests ein und implementieren sie als Teil ihres Entwicklungsprozesses.

9. Mentoring und Handwerkskunst sind entscheidend für die Entwicklung qualifizierter Professionals

„Die Schule kann die Theorie des Programmierens lehren. Aber die Schule kann nicht, und kann niemals, die Disziplin, Praxis und das Können eines Handwerkers lehren.“

Mentoring spielt eine entscheidende Rolle bei der Entwicklung qualifizierter Professionals. Dazu gehört:

  • Wissen und Erfahrung zu teilen
  • Anleitung und Feedback zu geben
  • Mentees herauszufordern, zu wachsen und sich zu verbessern
  • Professionelles Verhalten und Praktiken vorzuleben

Handwerkskunst in der Softwareentwicklung umfasst mehr als nur technische Fähigkeiten. Sie beinhaltet:

  • Ein Engagement für Qualität
  • Kontinuierliche Verbesserung
  • Ethisches Verhalten
  • Stolz auf die eigene Arbeit

Professionals erkennen ihre Verantwortung, weniger erfahrene Entwickler zu mentorieren und zu leiten, um die nächste Generation qualifizierter Praktiker zu fördern und hohe Standards in der Branche aufrechtzuerhalten.

Zuletzt aktualisiert:

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.

Rezensionen

4.26 von 5
Durchschnitt von 9k+ Bewertungen von Goodreads und Amazon.

Der saubere Programmierer erhält gemischte Kritiken, wobei viele die Einsichten zur professionellen Softwareentwicklung loben. Die Leser schätzen die Anekdoten des Autors sowie seine Ratschläge zu Arbeitsethik, Schätzung und Kommunikation. Einige empfinden das Buch als veraltet oder extrem in seinen Erwartungen, insbesondere hinsichtlich der Arbeitszeiten. Kritiker bemängeln sich wiederholende Geschichten und einen selbstbezogenen Ton. Trotz dieser Meinungsverschiedenheiten empfehlen die meisten Rezensenten es als wertvolle Ressource für angehende professionelle Programmierer und heben dabei die Betonung auf Disziplin, Verantwortung und kontinuierliches Lernen hervor.

Your rating:
4.61
49 Bewertungen

Über den Autor

Robert Cecil Martin, bekannt als Uncle Bob, ist ein angesehener Software-Ingenieur und Berater. Er setzt sich für agile Entwicklungsmethoden ein und ist Präsident von Object Mentor Inc. Martins Karriere erstreckt sich über mehrere Jahrzehnte, in denen er mit globalen Kunden zu Themen wie objektorientiertem Design, Mustern, UML und agilen Methoden zusammengearbeitet hat. Von 1996 bis 1999 war er Chefredakteur des C++ Report. Als herausragende Persönlichkeit in der Software-Entwicklungsgemeinschaft ist Martin ein gefragter Redner auf internationalen Konferenzen und Messen. Sein Fachwissen und sein langanhaltender Einfluss auf dem Gebiet haben ihn zu einer respektierten Stimme in den Praktiken der Softwaretechnik und der beruflichen Entwicklung gemacht.

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: Personalized for you
Ratings: Rate books & see your ratings
100,000+ readers
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 May 13,
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
Find a barcode to scan

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