Robert C. Martin是世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report前主编,被后辈程序员尊称为“Bob大叔”。20世纪70年代初成为职业程序员,后创办Object Mentor公司并任总裁。他还是一名多产的作家,至今已发表数百篇文章、论文和博客文章。除本书外,还著有《代码整洁之道》《敏捷软件开发:原则、模式和实践》等。
目錄:
目录
Pre-Requisite Introduction 必读引言 1
Chapter 1 Professionalism 专业主义 7
Be Careful What You Ask For 清楚你要什么 8
Taking Responsibility 担当责任 8
First, Do No Harm 首先,不行损害之事 11
Work Ethic 16
Bibliography 参考文献 22
Chapter 2 Saying No 说“不” 23
Adversarial Roles 对抗角色 26
High Stakes 高风险时刻 29
Being a “Team Player” 要有团队精神 30
The Cost of Saying Yes 说“是”的成本 36
Code Impossible 如何写出好代码 41
Chapter 3 Saying Yes 说“是” 45
A Language of Commitment 承诺用语 47
Learning How to Say “Yes” 学习如何说“是” 52
Conclusion 结论 56
Chapter 4 Coding 编码 57
Preparedness 做好准备 58
The Flow Zone 流态区 62
Writer’s Block 阻塞 64
Debugging 调试 66
Pacing Yourself 保持节奏 69
Being Late 进度延迟 71
Help 帮助 73
Bibliography 参考文献 76
Chapter 5 Test Driven Development 测试驱动开发 77
The Jury Is In 此事已有定论 79
The Three Laws of TDD TDD的三项法则 79
What TDD Is Not TDD的局限 83
Bibliography 参考文献 84
Chapter 6 Practicing 练习 85
Some Background on Practicing 引子 86
The Coding Dojo 编程柔道场 89
Broadening Your Experience 自身经验的拓展 93
Conclusion 结论 94
Bibliography 参考文献 94
Chapter 7 Acceptance Testing 验收测试 95
Communicating Requirements 需求的沟通 95
Acceptance Tests 验收测试 100
Conclusion 结论 111
Chapter 8 Testing Strategies 测试策略 113
QA Should Find Nothing QA应该找不到任何错误 114
The Test Automation Pyramid 自动化测试金字塔 115
Conclusion 结论 119
Bibliography 参考文献 119
Chapter 9 Time Management 时间管理 121
Meetings 会议 122
Focus-Manna 注意力点数 127
Time Boxing and Tomatoes 时间拆分和番茄工作法 130
Avoidance 要避免的行为 131
Blind Alleys 死胡同 131
Marshes, Bogs, Swamps, and Other Messes 泥潭 132
Conclusion 结论 133
Chapter 10 Estimation 预估 135
What Is an Estimate 什么是预估 138
PERT 141
Estimating Tasks 预估任务 144
The Law of Large Numbers 大数定律 147
Conclusion 结论 147
Bibliography 参考文献 148
Chapter 11 Pressure 压力 149
Avoiding Pressure 避免压力 151
Handling Pressure 应对压力 153
Conclusion 结论 155
Chapter 12 Collaboration 协作 157
Programmers versus People 程序员与人 159
Cerebellums 小脑 164
Conclusion 结论 166
Chapter 13 Teams and Projects 团队与项目 167
Does It Blend 只是简单混合吗 168
Conclusion 结论 171
Bibliography 参考文献 171
Chapter 14 Mentoring, Apprenticeship, and Craftsmanship 辅导、学徒期与技艺 173
Degrees of Failure 失败的学位教育 174
Mentoring 辅导 174
Apprenticeship 学徒期 180
Craftsmanship 技艺 184
Conclusion 结论 185
Appendix A Tooling 工具 187
Tools 工具 189
Source Code Control 源代码控制 189
IDEEditor 集成开发环境编辑器 194
Issue Tracking 问题跟踪 196
Continuous Build 持续构建 197
Unit Testing Tools 单元测试工具 198
Component Testing Tools 组件测试工具 199
Integration Testing Tools 集成测试工具 200
UMLMDA 201
Conclusion 结论 204