《代码整洁之道程序员的职业素养》
《The Clean Coder: A Code of Conduct for Professional Programmers》
PDF高清完整版-免费下载!!!
下载地址:https://pan.baidu.com/s/1cpp_pLOYJyhOGSSFpi5auw
提取码:xi8i
【内容简介】
1. 汇聚编程大师40余年编程生涯的心得体会
2. 阐释软件工艺中的原理、技术、工具和实践
3. 助力专业软件开发人员具备令人敬佩的职业素养
成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。他们之所以能够成功,是因为拥有一个共同点,都深切关注创建软件所需的各项实践。他们将软件开发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,他们具有职业素养。
软件开发大师Robert C. Martin在书中介绍了真实软件技艺中的各项原则、技术、工具和实践,展示了怎么以自豪、自尊和自信的心态进行软件开发,怎么取得卓越表现和丰硕成果,怎么做到有效沟通和确切估算,怎么以坦诚的心态面对困难,并引导读者认识到专业程序员肩负的责任重大,阐述了什么才是程序员的职业素养。
书中的具体内容包括:
● 成为真正的软件专业人士需要具备哪些条件,如何应对彼此冲突又紧张的进度表和不近情理的管理人员;
● 如何做到流畅编程,克服阻塞状态;
● 如何应对无休止的工作压力,避免崩溃;
● 如何培养坚持不懈的态度,如何拥抱新的开发范式;
● 如何管理好时间,避免身陷泥潭无法自拔;
● 如何培育有利于程序员和开发团队茁壮成长的环境;
● 什么时候应该说“不”,怎么说;
● 什么时候应该说“是”,承诺意味着什么。
软件强大、优雅而实用,让人惊叹不已,不论是开发者还是用户都乐于使用这样的软件。它们并非是由机器编写出来的,而是出自那些对软件技艺拥有坚定信念的专业软件开发者之手。本书将帮助读者成为专业软件开发者中的一员,并赢得只有他们才能拥有的荣誉感和成就感。
【作者简介】
作者:[美]罗伯特 C. 马丁(Robert C. Martin) 译者:余晟 章显洲
作者介绍
Robert C. Martin,软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report前主编,被后辈程序员尊称为“Bob大叔”。20世纪7 0年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,至今已发表数百篇文章、论文和博客文章。除本书外,还著有《代码整洁之道》《敏捷软件开发:原则、模式和实践》《UML:Java程序员指南》等。他创办了cleancoders.com网站,专为软件开发人员提供教育视频。
译者介绍
余晟,混迹软件开发和互联网行业多年,目前在沪江网负责研发和架构管理工作。业余喜爱阅读、思考,关注工程师的全面发展,探索更聪明的技术方案,乐于帮助外界更多理解IT行业的约束、规律和习惯。
章显洲,蚂蚁金服高级项目专家,业余以技术翻译作为个人修炼与回馈软件开发社区的途径。自2009年来,翻译和与人合译多本技术管理书籍,偶尔也会出现在技术社区聚会上作一些分享。近年来主要致力于蚂蚁金服基础设施和架构升级方面的项目集管理。
【目录】
必读引言
第1章 专业主义 7
1.1清楚你要什么 8
1.2担当责任 8
1.3首先,不行损害之事 10
1.3.1不要破坏软件功能 10
1.3.2不要破坏结构 12
1.4职业道德 13
1.4.1了解你的领域 14
1.4.2坚持学习 16
1.4.3练习 16
1.4.4合作 17
1.4.5辅导 17
1.4.6了解业务领域 17
1.4.7与雇主/客户保持一致 18
1.4.8谦逊 18
1.5参考文献 18
第2章 说“不” 19
2.1对抗角色 21
2.2高风险时刻 24
2.3要有团队精神 25
2.3.1试试看 26
2.3.2消极对抗 28
2.4说“是”的成本 30
2.5如何写出好代码 35
第3章 说“是” 37
3.1承诺用语 39
3.1.1识别“缺乏承诺”的征兆 40
3.1.2真正的承诺听起来是怎样的 40
3.1.3总结 43
3.2学习如何说“是” 43
3.2.1“试试”的另一面 43
3.2.2坚守原则 44
3.3结论 46
第4章 编码 47
4.1做好准备 48
4.1.1凌晨3点写出的代码 49
4.1.2焦虑时写下的代码 50
4.2流态区 51
4.2.1音乐 52
4.2.2中断 53
4.3阻塞 53
4.4调试 53
4.5保持节奏 57
4.5.1知道何时应该离开一会 58
4.5.2开车回家路上 58
4.5.3洗澡 58
4.6进度延迟 58
4.6.1期望 59
4.6.2盲目冲刺 59
4.6.3加班加点 60
4.6.4交付失误 60
4.6.5定义“完成” 61
4.7帮助 61
4.7.1帮助他人 61
4.7.2接受他人的帮助 62
4.7.3辅导 62
4.8参考文献 63
第5章 测试驱动开发 65
5.1此事已有定论 66
5.2 TDD的三项法则 67
5.3 TDD的优势 68
5.3.1确定性 68
5.3.2缺陷注入率 68
5.3.3勇气 69
5.3.4文档 69
5.3.5设计 70
5.3.6专业人士的选择70
5.4 TDD的局限 70
5.5参考文献 71
第6章 练习 73
6.1引子 73
6.1.1 10的22次方 74
6.1.2转变 75
6.2编程柔道场 76
6.2.1卡塔 77
6.2.2瓦萨 78
6.2.3自由练习 78
6.3自身经验的拓展 79
6.3.1开源 79
6.3.2关于练习的职业道德 79
6.4结论 80
6.5参考文献 80
第7章 验收测试 81
7.1需求的沟通 81
7.1.1过早精细化 83
7.1.2迟来的模糊性 83
7.2验收测试 85
7.2.1“完成”的定义 85
7.2.2沟通 88
7.2.3自动化 88
7.2.4额外工作 89
7.2.5验收测试什么时候写,由谁来写 90
7.2.6开发人员的角色 90
7.2.7测试的协商与被动推进 91
7.2.8验收测试和单元测试 93
7.2.9图形界面及其他复杂因素 93
7.2.10持续集成 94
7.3结论 95
第8章 测试策略 97
8.1 QA应该找不到任何错误98
8.1.1 QA也是团队的一部分 98
8.1.2需求规约定义者98
8.1.3特性描述者 98
8.2自动化测试金字塔 98
8.2.1单元测试 99
8.2.2组件测试 100
8.2.3集成测试 100
8.2.4系统测试 101
8.2.5人工探索式测试 102
8.3结论 102
8/4参考文献 102
第9章 时间管理 103
9.1会议 104
9.1.1拒绝 104
9.1.2离席 105
9.1.3确定议程与目标 105
9.1.4立会 106
9.1.5迭代计划会议 106
9.1.6迭代回顾和DEMO展示 107
9.1.7争论/反对 107
9.2注意力点数 108
9.2.1睡眠 108
9.2.2咖啡因 108
9.2.3恢复 109
9.2.4肌肉注意力 109
9.2.5输入与输出 109
9.3时间拆分和番茄工作法 110
9.4要避免的行为 110
9.5死胡同 111
9.6泥潭 111
9.7结论 112
第10章 预估 113
10.1什么是预估 115
10.1.1承诺 115
10.1.2预估 115
10.1.3暗示性承诺 117
10.2 PERT
10.3预估任务 120
10.4大数定律 122
10.5结论 123
10.6参考文献 123
第11章 压力 125
11.1避免压力 127
11.1.1承诺 127
11.1.2保持整洁 127
11.1.3危机中的纪律 128
11.2应对压力 128
11.2.1不要惊慌失措 128
11.2.2沟通 129
11.2.3依靠你的纪律原则 129
11.2.4寻求帮助 129
11.3结论 129
第12章 协作 131
12.1程序员与人 133
12.1.1程序员与雇主 133
12.1.2程序员与程序员 135
12.2小脑 137
12.3结论 138
第13章 团队与项目 139
13.1知识简单混合吗 139
13.1.1有凝聚力的团队 140
13.1.2如何管理有凝聚力的团队 141
13.2结论 142
13.3参考文献 143
第14章 辅导、学徒期与技艺 145
14.1失败的学位教育 145
14.2辅导 146
14.2.1 DIGI-COMP I,我的第一台计算机 146
14.2.2高中时代的ECP-18 148
14.2.3非常规辅导 150
14.2.4艰难的锤炼 150
14.3学徒期 151
14.3.1软件学徒期 152
14.3.2现实情况 154
14.4技艺 154
14.5结论 155
下载地址:https://pan.baidu.com/s/1cpp_pLOYJyhOGSSFpi5auw
提取码:xi8i