[美] Robert C·Martin《程序员的职业素养》

[美] Robert C·Martin《程序员的职业素养》

作者:[美] Robert C·Martin

出版社:人民邮电出版社

出版年:2012-9-1

评分:8.6

ISBN:9787115291578

所属分类:散文随笔

书刊介绍

内容简介

Robert C. Martin,世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report 前主编,被后辈程序员尊称为“Bob大叔”。20世纪70年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,至今已发表数百篇文章、论文和博客,除本书外,还著有《代码整洁之道》、《敏捷软件开发:原则、模式和实践》、《UML:Java程序员指南》等。他最近创办了cleancoders.com网站,专为软件开发人员提供教育视频。

章显洲,阿里巴巴高级技术专家,敏捷与精益方法实践者,专注于敏捷与精益管理,擅长互联网研发团队的构建与改善。业余以技术翻译作为个人修炼与回馈软件开发社区的途径。自2009年来,翻译和合译的技术书籍包含《精益软件开发艺术》、《微软的秘密》、《软件架构师应该知道的97件事》、《程序员的职业素养》、《看板》。偶尔也会出现在技术社区的聚会上作一些分享和演讲。博http://genericbrain.com 。新浪微博@章显洲-Arthur。

余晟,毕业于东北师范大学计算机系,副修中文,非正统型技术爱好者。曾任抓虾网、银杏泰克主力程序员,盛大创新院高级研究员,现任华南某电商公司技术总监。坚信计算机可以无限延伸人的能力,前提是人必须理解计算机的逻辑,所以对任何技术都不应该浅尝辄止,仅仅满足于“会用”。

作品目录

目 录

第1章专业主义1

1.1清楚你要什么2

1.2担当责任2

1.3首先,不行损害之事4

1.3.1不要破坏软件功能4

1.3.2不要破坏结构7

1.4职业道德8

1.4.1了解你的领域10

1.4.2坚持学习11

1.4.3练习11

1.4.4合作12

1.4.5辅导12

1.4.6了解业务领域13

1.4.7与雇主/客户保持一致13

1.4.8谦逊13

1.5参考文献14

第2章说“不”15

2.1对抗角色17

2.2高风险时刻20

2.3要有团队精神22

2.3.1试试看24

2.3.2消极对抗25

2.4说“是”的成本27

2.5如何写出好代码34

第3章说“是”37

3.1承诺用语39

3.1.1识别“缺乏承诺”的征兆40

3.1.2真正的承诺听起来是怎样的41

3.1.3总结43

3.2学习如何说“是”43

3.2.1“试试”的另一面43

3.2.2坚守原则44

3.3结论47

第4章编码48

4.1做好准备49

4.1.1凌晨3点写出的代码50

4.1.2焦虑时写下的代码51

4.2流态区53

4.2.1音乐54

4.2.2中断55

4.3阻塞55

4.4调试57

4.5保持节奏60

4.5.1知道何时应该离开一会60

4.5.2开车回家路上61

4.5.3洗澡61

4.6进度延迟61

4.6.1期望62

4.6.2盲目冲刺62

4.6.3加班加点63

4.6.4交付失误63

4.6.5定义“完成”64

4.7帮助64

4.7.1帮助他人64

4.7.2接受他人的帮助65

4.7.3辅导66

4.8参考文献66

第5章测试驱动开发67

5.1此事已有定论69

5.2TDD的三项法则69

5.3TDD的优势70

5.3.1确定性70

5.3.2缺陷注入率71

5.3.3勇气71

5.3.4文档72

5.3.5设计72

5.3.6专业人士的选择73

5.4TDD的局限73

5.5参考文献74

第6章练习75

6.1引子75

6.1.110的22次方76

6.1.2转变77

6.2编程柔道场79

6.2.1卡塔80

6.2.2瓦萨81

6.2.3自由练习81

6.3自身经验的拓展82

6.3.1开源82

6.3.2关于练习的职业道德82

6.4结论83

6.5参考文献83

第7章验收测试84

7.1需求的沟通84

7.1.1过早精细化86

7.1.2迟来的模糊性87

7.2验收测试89

7.2.1“完成”的定义89

7.2.2沟通91

7.2.3自动化92

7.2.4额外工作93

7.2.5验收测试什么时候写,由谁来写93

7.2.6开发人员的角色94

7.2.7测试的协商与被动推进95

7.2.8验收测试和单元测试96

7.2.9图形界面及其他复杂因素97

7.2.10持续集成98

7.3结论98

第8章测试策略99

8.1QA应该找不到任何错误100

8.1.1QA也是团队的一部分100

8.1.2需求规约定义者100

8.1.3特性描述者100

8.2自动化测试金字塔101

8.2.1单元测试101

8.2.2组件测试102

8.2.3集成测试103

8.2.4系统测试104

8.2.5人工探索式测试104

8.3结论105

8.4参考文献105

第9章时间管理106

9.1会议107

9.1.1拒绝107

9.1.2离席108

9.1.3确定议程与目标109

9.1.4立会109

9.1.5迭代计划会议109

9.1.6迭代回顾和DEMO展示110

9.1.7争论/反对110

9.2注意力点数111

9.2.1睡眠112

9.2.2咖啡因112

9.2.3恢复112

9.2.4肌肉注意力112

9.2.5输入与输出113

9.3时间拆分和番茄工作法113

9.4要避免的行为114

9.5死胡同115

9.6泥潭115

9.7结论116

第10章预估117

10.1什么是预估119

10.1.1承诺119

10.1.2预估120

10.1.3暗示性承诺121

10.2PERT122

10.3预估任务125

10.4大数定律127

10.5结论127

10.6参考文献128

第11章压力129

11.1避免压力131

11.1.1承诺131

11.1.2保持整洁132

11.1.3危机中的纪律132

11.2应对压力133

11.2.1不要惊慌失措133

11.2.2沟通133

11.2.3依靠你的纪律原则133

11.2.4寻求帮助134

11.3结论134

第12章协作135

12.1程序员与人137

12.1.1程序员与雇主137

12.1.2程序员与程序员140

12.2小脑142

12.3结论143

第13章团队与项目144

13.1只是简单混合吗144

13.1.1有凝聚力的团队145

13.1.2如何管理有凝聚力的团队146

13.1.3项目承包人的困境147

13.2结论148

13.3参考文献148

第14章辅导、学徒期与技艺149

14.1失败的学位教育149

14.2辅导150

14.2.1DIGI-COMP I, 我的第一台计算机150

14.2.2高中时代的ECP-18152

14.2.3非常规辅导154

14.2.4艰难的锤炼155

14.3学徒期156

14.3.1软件学徒期158

14.3.2现实情况159

14.4技艺160

14.5结论161

附录工具162

相关推荐

微信二维码