***软件开发大师Robert C. Martin在书中介绍了真实软件技艺中的各项原则、技术、工具和实践,展示了怎么以自豪、自尊和自信的心态进行软件开发,怎么取得卓越表现和丰硕成果,怎么做到有效沟通和确切估算,怎么以坦诚的心态面对困难,并引导读者认识到专业程序员肩负的责任重大,阐述了什么才是程序员的职业素养。
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 IDE/Editor / 集成开发环境/编辑器 194 Issue Tracking / 问题跟踪 196 Continuous Build / 持续构建 197 Unit Testing Tools / 单元测试工具 198 Component Testing Tools / 组件测试工具 199 Integration Testing Tools / 集成测试工具 200 UML/MDA 201 Conclusion / 结论 204