Clean Craftsmanship Disciplines, Standards, and Ethics : 510 pages
Author : Robert C. Martin
1) DESCRIPTION
In , the legendary Robert C. Martin ("Uncle Bob") brings together the disciplines, standards, and ethics students need to deliver robust, effective code.
Martin, the best-selling author of The Clean Coder, first provides a pragmatic, technical, and prescriptive guide to the foundational disciplines of software craftsmanship. Then, he moves on to standards, showing how the world's expectations of developers often differ from their own and helping students bring the two in sync. Finally, he turns to the ethics of the programming profession, describing the fundamental promises all developers should make to their colleagues, their users, and, above all, themselves.
With Martin's insights, all programming students can consistently deliver code that builds trust instead of undermining ittrust among users and throughout societies that depend on software for their survival.
Moving towards the "north star" of true software craftsmanship: the state of knowing how to program well
Practical, specific guidance for applying five core disciplines: test-driven development, refactoring, simple design, collaborative programming, and acceptance tests
How developers and teams can promote productivity, quality, and courage
The true meaning of integrity and teamwork among programmers, and ten specific commitments every programming student should make.
2) Features
The eagerly-anticipated new book from "Uncle Bob"Robert C. Martin, author of The Clean Coder, Clean Code, Clean Architecture, and Clean Agile
Pragmatic, technical, and prescriptive advice on the five foundational disciplines of software craftsmanship
Insights for escaping the mindset that higher productivity must mean lower qualityand building software that's worthy of trust
3) Table of Contents
Foreword xvii
Preface xxi
Acknowledgments xxvii
About the Author xxix
Chapter 1: Craftsmanship 1Part I: The Disciplines 11Extreme Programming 13Test-Driven Development 15Refactoring 16Simple Design 17Collaborative Programming 17Acceptance Tests 18Chapter 2: Test-Driven Development 19Overview 20The Basics 35Conclusion 79Chapter 3: Advanced TDD 81Sort 1 82Sort 2 87Getting Stuck 95Arrange, Act, Assert 103Test Doubles 108Architecture 143Conclusion 145Chapter 4: Test Design 147Testing Databases 148Testing GUIs 150Test Patterns 154Test Design 160Transformation Priority Premise 184Conclusion 196Chapter 5: Refactoring 197What Is Refactoring? 199The Basic Toolkit 200The Disciplines 217Conclusion 221Chapter 6: Simple Design 223YAGNI 226Covered by Tests 228Maximize Expression 233Minimize Duplication 237Minimize Size 239Chapter 7: Collaborative Programming 241Chapter 8: Acceptance Tests 245The Discipline 248The Continuous Build 249Part II: The Standards 251Your New CTO 252Chapter 9: Productivity 253We Will Never Ship S**T 254Inexpensive Adaptability 256We Will Always Be Ready 258Stable Productivity 259Chapter 10: Quality 261Continuous Improvement 262Fearless Competence 263Extreme Quality 264We Will Not Dump on QA 265QA Will Find Nothing 266Test Automation 267Automated Testing and User Interfaces 268Testing the User Interface 269Chapter 11: Courage 271We Cover for Each Other 272Honest Estimates 274You Must Say NO 276Continuous Aggressive Learning 277Mentoring 278Part III: The Ethics 279The First Programmer 280Seventy-Five Years 281Nerds and Saviors 286Role Models and Villains 289We Rule the World 290Catastrophes 291The Oath 293Chapter 12: Harm 295First, Do No Harm 296Best Work 306Repeatable Proof 316Chapter 13: Integrity 327Small Cycles 328Relentless Improvement 342Maintain High Productivity 346Chapter 14: Teamwork 355Work as a Team 356Estimate Honestly and Fairly 358Respect 372Never Stop Learning 373Index 375