代码的艺术:用工程思维驱动软件开发(必读经典简装本)

代码的艺术:用工程思维驱动软件开发(必读经典简装本)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2023-01
版次: 1
ISBN: 9787121444852
定价: 76.00
装帧: 其他
开本: 32开
纸张: 胶版纸
页数: 292页
  • ● 本书是作者围绕软件工程能力所做的系列培训的内容汇编。这些内容来源于作者20 多年以来对软件工程的学习体会和项目实践,以及对中国工业界软件工程师的观察和教育实践。
      ● 全书共8章,第1 章说明了什么是软件工程能力,阐述了软件工程能力中的素质要求。第2~8章分别从代码、文档、项目管理这三个方面讲解了提升软件工程能力素质的实践方法。 对于代码,第2章\"代码的艺术”对其进行了总体说明,第3 章重点说明了代码评审,第4章以Mini-spider 为例说明了方法如何运用。 对于文档,第5章说明了如何写好项目文档,第6章说明了做研究的基本方法。对于项目管理,第7章简要说明了如何做好项目管理,第8章重点说明了如何做好项目沟通。 章淼,博士,百度智能云资深研发工程师,BFE开源项目发起人。

    1997年至2006年在清华大学从事互联网协议和网络体系结构的研究。

    2012年加入百度,一直从事网络基础架构的研发工作。同时积极推动百度的代码质量和工程能力的提升,百度技术培训中心“金牌讲师”,曾任百度代码规范委员会主席。 第1 章

    软件工程能力

    1.1 为什么要重视工程能力 / 3

    1.2 什么是工程能力 / 5

    1.2.1 工程能力的误区 / 5

    1.2.2 工程能力的定义 / 6

    1.3 怎样提升工程能力 / 11

    第2 章

    代码的艺术

    2.1 背景和初衷 / 17

    2.2 代码和艺术 / 18

    2.2.1 代码也能成为艺术作品 / 18

    2.2.2 软件工程师和“码农” / 22

    2.2.3 来自艺术的启发 / 24

    2.2.4 写代码并非易事 / 26

    2.3 好代码和坏代码 / 28

    2.3.1 好代码的特性 / 28

    2.3.2 坏代码的例子 / 33

    2.4 好代码从哪里来 / 35

    2.4.1 好代码不止于编码 / 35

    2.4.2 需求分析和系统设计 / 36

    2.5 如何做好需求分析 / 41

    2.5.1 如何描述需求 / 41

    2.5.2 对需求分析的误解 / 43

    2.5.3 需求分析的重要性 / 47

    2.6 如何做好系统设计 / 47

    2.6.1 什么是系统设计 / 48

    2.6.2 设计文档的分类 / 49

    2.6.3 什么是系统架构 / 50

    2.6.4 系统设计的原则和方法 / 52

    2.6.5 重视对外接口 / 56

    2.7 如何写出好代码 / 59

    2.7.1 代码的沟通价值 / 59

    2.7.2 模块的设计方法 / 64

    2.7.3 划分模块的方法 / 71

    2.7.4 函数的设计方法 / 75

    2.7.5 代码块的编写注意事项 / 85

    2.7.6 软件开发中的命名 / 89

    2.8 如何支持系统运营 / 90

    2.8.1 可监测性的重要性 / 91

    2.8.2 以BFE 开源项目为例 / 92

    2.9 成为优秀软件工程师的三条路径 / 93

    2.9.1 路径一:学习—思考—实践 / 93

    2.9.2 路径二:知识—方法—精神 / 96

    2.9.3 路径三:基础乃治学之根本 / 98

    第3 章

    代码评审

    3.1 代码评审的常见误区 / 103

    3.2 为什么要做好代码评审 / 104

    3.2.1 代码评审的重要意义 / 104

    3.2.2 没有做好代码评审的后果 / 106

    3.2.3 为什么要提升代码质量 / 106

    3.2.4 为什么要提升编码能力 / 108

    3.3 如何做好代码评审 / 108

    3.3.1 代码评审的常见问题 / 109

    3.3.2 代码评审的正确态度 / 109

    3.3.3 代码评审的推荐步骤 / 111

    3.3.4 对坏代码的简单判断 / 112

    3.3.5 代码评审的注意事项 / 113

    3.4 如何成为好的代码评审人 / 116

    第4 章

    “代码的艺术”应用

    4.1 需求的分析 / 121

    4.1.1 题目说明 / 121

    4.1.2 功能分析 / 122

    4.2 软件的架构 / 123

    4.2.1 模块切分 / 123

    4.2.2 系统架构 / 128

    4.2.3 软件组装 / 130

    4.2.4 crawler 间的数据共用 / 132

    4.2.5 数据封装 / 133

    4.2.6 crawler 的执行逻辑 / 134

    4.3 多线程机制 / 135

    4.3.1 数据互斥访问 / 136

    4.3.2 临界区注意事项 / 138

    4.3.3 任务的分发 / 141

    4.3.4 程序的优雅退出 / 143

    4.4 其他实现细节 / 146

    4.4.1 配置的读取 / 146

    4.4.2 种子信息的读取 / 147

    4.4.3 import 的使用 / 150

    4.4.4 异常处理 / 151

    4.4.5 构造函数的使用 / 153

    4.4.6 正则表达式的使用 / 154

    4.5 延伸思考 / 156

    4.5.1 实现对各网站的限速 / 156

    4.5.2 从单机扩展到分布式 / 157

    第5 章

    项目文档

    5.1 正确认识项目文档 / 161

    5.1.1 项目文档的重要作用 / 161

    5.1.2 项目文档的常见误区 / 162

    5.1.3 项目文档的常见问题 / 164

    5.1.4 什么时候需要写项目文档 / 165

    5.1.5 项目文档是写给谁的 / 167

    5.1.6 项目文档的基本规范 / 169

    5.2 项目文档的编写 / 170

    5.2.1 编写顺序 / 170

    5.2.2 文档标题 / 171

    5.2.3 段落编写 / 173

    5.2.4 问题划分 / 176

    5.2.5 表述模式 / 177

    5.3 项目文档中的图片 / 179

    5.4 文档的评审 / 185

    5.4.1 文档评审常见问题 / 185

    5.4.2 文档评审的方法 / 186

    5.5 文档的存放 / 187

    5.5.1 文档存放常见错误 / 187

    5.5.2 文档存放的建议 / 188

    5.5.3 文档索引的例子 / 189

    5.5.4 存放工具的选择 / 192

    5.6 文档编写工具 / 194

    5.7 如何提高文档编写能力 / 195

    第6 章

    做研究

    6.1 什么是研究 / 199

    6.2 如何做好研究 / 201

    6.2.1 发现问题 / 201

    6.2.2 分析问题 / 203

    6.2.3 解决问题 / 205

    6.3 做好研究的必备素质 / 206

    6.3.1 关于做人 / 206

    6.3.2 关于做事 / 208

    6.3.3 关于做学问 / 209

    第7 章

    项目管理

    7.1 重视项目管理 / 213

    7.2 相关基本概念 / 215

    7.3 项目管理的过程和步骤 / 218

    7.3.1 项目启动和规划 / 219

    7.3.2 项目执行和监控 / 224

    7.3.3 项目总结与回顾 / 227

    第8 章

    项目沟通

    8.1 项目沟通的重要性 / 233

    8.2 项目沟通方式及对比 / 235

    8.3 面对面沟通 / 238

    8.4 电话沟通 / 239

    8.5 会议沟通 / 240

    8.6 IM 工具沟通 / 245

    8.7 Email 沟通 / 247

    附录A

    延伸阅读图书推荐

    软件工程和编程思想类 / 251

    项目管理类 / 252

    项目文档编写和阅读类 / 252

    产品设计类 / 253

     
  • 内容简介:
    ● 本书是作者围绕软件工程能力所做的系列培训的内容汇编。这些内容来源于作者20 多年以来对软件工程的学习体会和项目实践,以及对中国工业界软件工程师的观察和教育实践。
      ● 全书共8章,第1 章说明了什么是软件工程能力,阐述了软件工程能力中的素质要求。第2~8章分别从代码、文档、项目管理这三个方面讲解了提升软件工程能力素质的实践方法。 对于代码,第2章\"代码的艺术”对其进行了总体说明,第3 章重点说明了代码评审,第4章以Mini-spider 为例说明了方法如何运用。 对于文档,第5章说明了如何写好项目文档,第6章说明了做研究的基本方法。对于项目管理,第7章简要说明了如何做好项目管理,第8章重点说明了如何做好项目沟通。
  • 作者简介:
    章淼,博士,百度智能云资深研发工程师,BFE开源项目发起人。

    1997年至2006年在清华大学从事互联网协议和网络体系结构的研究。

    2012年加入百度,一直从事网络基础架构的研发工作。同时积极推动百度的代码质量和工程能力的提升,百度技术培训中心“金牌讲师”,曾任百度代码规范委员会主席。
  • 目录:
    第1 章

    软件工程能力

    1.1 为什么要重视工程能力 / 3

    1.2 什么是工程能力 / 5

    1.2.1 工程能力的误区 / 5

    1.2.2 工程能力的定义 / 6

    1.3 怎样提升工程能力 / 11

    第2 章

    代码的艺术

    2.1 背景和初衷 / 17

    2.2 代码和艺术 / 18

    2.2.1 代码也能成为艺术作品 / 18

    2.2.2 软件工程师和“码农” / 22

    2.2.3 来自艺术的启发 / 24

    2.2.4 写代码并非易事 / 26

    2.3 好代码和坏代码 / 28

    2.3.1 好代码的特性 / 28

    2.3.2 坏代码的例子 / 33

    2.4 好代码从哪里来 / 35

    2.4.1 好代码不止于编码 / 35

    2.4.2 需求分析和系统设计 / 36

    2.5 如何做好需求分析 / 41

    2.5.1 如何描述需求 / 41

    2.5.2 对需求分析的误解 / 43

    2.5.3 需求分析的重要性 / 47

    2.6 如何做好系统设计 / 47

    2.6.1 什么是系统设计 / 48

    2.6.2 设计文档的分类 / 49

    2.6.3 什么是系统架构 / 50

    2.6.4 系统设计的原则和方法 / 52

    2.6.5 重视对外接口 / 56

    2.7 如何写出好代码 / 59

    2.7.1 代码的沟通价值 / 59

    2.7.2 模块的设计方法 / 64

    2.7.3 划分模块的方法 / 71

    2.7.4 函数的设计方法 / 75

    2.7.5 代码块的编写注意事项 / 85

    2.7.6 软件开发中的命名 / 89

    2.8 如何支持系统运营 / 90

    2.8.1 可监测性的重要性 / 91

    2.8.2 以BFE 开源项目为例 / 92

    2.9 成为优秀软件工程师的三条路径 / 93

    2.9.1 路径一:学习—思考—实践 / 93

    2.9.2 路径二:知识—方法—精神 / 96

    2.9.3 路径三:基础乃治学之根本 / 98

    第3 章

    代码评审

    3.1 代码评审的常见误区 / 103

    3.2 为什么要做好代码评审 / 104

    3.2.1 代码评审的重要意义 / 104

    3.2.2 没有做好代码评审的后果 / 106

    3.2.3 为什么要提升代码质量 / 106

    3.2.4 为什么要提升编码能力 / 108

    3.3 如何做好代码评审 / 108

    3.3.1 代码评审的常见问题 / 109

    3.3.2 代码评审的正确态度 / 109

    3.3.3 代码评审的推荐步骤 / 111

    3.3.4 对坏代码的简单判断 / 112

    3.3.5 代码评审的注意事项 / 113

    3.4 如何成为好的代码评审人 / 116

    第4 章

    “代码的艺术”应用

    4.1 需求的分析 / 121

    4.1.1 题目说明 / 121

    4.1.2 功能分析 / 122

    4.2 软件的架构 / 123

    4.2.1 模块切分 / 123

    4.2.2 系统架构 / 128

    4.2.3 软件组装 / 130

    4.2.4 crawler 间的数据共用 / 132

    4.2.5 数据封装 / 133

    4.2.6 crawler 的执行逻辑 / 134

    4.3 多线程机制 / 135

    4.3.1 数据互斥访问 / 136

    4.3.2 临界区注意事项 / 138

    4.3.3 任务的分发 / 141

    4.3.4 程序的优雅退出 / 143

    4.4 其他实现细节 / 146

    4.4.1 配置的读取 / 146

    4.4.2 种子信息的读取 / 147

    4.4.3 import 的使用 / 150

    4.4.4 异常处理 / 151

    4.4.5 构造函数的使用 / 153

    4.4.6 正则表达式的使用 / 154

    4.5 延伸思考 / 156

    4.5.1 实现对各网站的限速 / 156

    4.5.2 从单机扩展到分布式 / 157

    第5 章

    项目文档

    5.1 正确认识项目文档 / 161

    5.1.1 项目文档的重要作用 / 161

    5.1.2 项目文档的常见误区 / 162

    5.1.3 项目文档的常见问题 / 164

    5.1.4 什么时候需要写项目文档 / 165

    5.1.5 项目文档是写给谁的 / 167

    5.1.6 项目文档的基本规范 / 169

    5.2 项目文档的编写 / 170

    5.2.1 编写顺序 / 170

    5.2.2 文档标题 / 171

    5.2.3 段落编写 / 173

    5.2.4 问题划分 / 176

    5.2.5 表述模式 / 177

    5.3 项目文档中的图片 / 179

    5.4 文档的评审 / 185

    5.4.1 文档评审常见问题 / 185

    5.4.2 文档评审的方法 / 186

    5.5 文档的存放 / 187

    5.5.1 文档存放常见错误 / 187

    5.5.2 文档存放的建议 / 188

    5.5.3 文档索引的例子 / 189

    5.5.4 存放工具的选择 / 192

    5.6 文档编写工具 / 194

    5.7 如何提高文档编写能力 / 195

    第6 章

    做研究

    6.1 什么是研究 / 199

    6.2 如何做好研究 / 201

    6.2.1 发现问题 / 201

    6.2.2 分析问题 / 203

    6.2.3 解决问题 / 205

    6.3 做好研究的必备素质 / 206

    6.3.1 关于做人 / 206

    6.3.2 关于做事 / 208

    6.3.3 关于做学问 / 209

    第7 章

    项目管理

    7.1 重视项目管理 / 213

    7.2 相关基本概念 / 215

    7.3 项目管理的过程和步骤 / 218

    7.3.1 项目启动和规划 / 219

    7.3.2 项目执行和监控 / 224

    7.3.3 项目总结与回顾 / 227

    第8 章

    项目沟通

    8.1 项目沟通的重要性 / 233

    8.2 项目沟通方式及对比 / 235

    8.3 面对面沟通 / 238

    8.4 电话沟通 / 239

    8.5 会议沟通 / 240

    8.6 IM 工具沟通 / 245

    8.7 Email 沟通 / 247

    附录A

    延伸阅读图书推荐

    软件工程和编程思想类 / 251

    项目管理类 / 252

    项目文档编写和阅读类 / 252

    产品设计类 / 253

     
查看详情
相关图书 / 更多
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码中的软件工程
孟宁
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码整洁之道 英文版
[美]罗伯特·C. 马丁(Robert C. Martin)
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码审计与实操
胡前伟;时瑞鹏;李华风
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码随想录——跟着Carl学算法
孙秀洋
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码安全
杨东晓;章磊;付威;金竹君
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码坏味检测方法研究及重构分析
姜德迅 编
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码安全实验指导(网络空间安全重点规划丛书)
杨东晓、章磊、吴迪、司乾伟 著
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码的艺术:用工程思维驱动软件开发
章淼
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码精进之路 从码农到工匠
张建飞
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码大全2(纪念版)
[美]史蒂夫.麦康奈尔(Steve McConnell)著 陈玉毅 陈军 杨志昂 洪佳 徐东伟 王国良 徐毅 译
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码整洁之道程序员的职业素养英文版
[美]罗伯特·C.、马丁(Robert、C.、Martin 著
代码的艺术:用工程思维驱动软件开发(必读经典简装本)
代码大全2(英文限量珍藏版)
[美]史蒂夫·麦康奈尔(Steve McConnell) 著