如何写出好程序 版权信息
- 出版社:机械工业出版社
- 出版时间:2021-07-01
- ISBN:9787111685326
- 条形码:9787111685326 ; 978-7-111-68532-6
如何写出好程序 本书特色
编程初学者、萌新程序员和编程“老兵”必读的宝藏级编程“说明书”,赶走你的编程焦虑
如何写出好程序 内容简介
本书通过丰富的小提示、故事和关键术语的解释,清晰地传授各种编程技巧。书中包含Python、Java和Haskell的示例,无论你正在学习哪一种编程语言,都能帮助你获得可移植的编程技能。
本书主要面向学习编程课程的学生以及编程初学者和希望提升编程技艺的程序员,能帮助你在课程中取得好成绩,并有助于养成良好的软件工程习惯,从而开发出易读且高效的好程序。
如何写出好程序 目录
推荐序一
推荐序二
推荐序三
推荐序四
译者序
第1章 介绍 1
1.1 本书适合谁 3
1.2 关于方框 4
1.3 本书的结构 6
1.4 致谢 6
第2章 什么是好程序 8
第3章 如何开始 11
3.1 究竟什么是程序 11
3.2 你需要什么 12
3.2.1 使用交互式提示 13
3.2.2 使用文本编辑器 14
3.3 了解待办任务 16
3.4 编写程序 18
3.4.1 设置任务 19
3.4.2 朝着完全正确的代码迈进 24
3.5 感到困惑时怎么办 25
第4章 如何理解编程语言 29
4.1 编译与解释 30
4.2 类型 33
4.3 结构 36
4.4 历史、社区与动机 38
4.5 范式 39
第5章 如何使用*佳工具 42
5.1 使用*基本的工具 43
5.2 什么是IDE 44
5.3 展望 47
第6章 如何确保程序不会丢失 48
6.1 立即恢复:撤销 49
6.2 基本灾难恢复:文件 49
6.3 避免灾难:保存版本 51
6.4 流程自动化:使用版本控制系统 52
6.5 管理未使用的代码 54
6.6 备份和云 56
第7章 如何测试程序 59
7.1 手动测试 60
7.2 基本的自动化测试 62
7.3 正确的自动化测试 65
7.4 你应该进行哪些测试 66
7.5 应该在何时编写测试 68
7.6 基于属性的测试 69
第8章 如何让程序清晰 72
8.1 编写清晰的代码对你有何帮助 72
8.2 注释 74
8.3 名字 77
8.4 布局和留白 80
8.5 结构和习惯用法 83
第9章 如何调试程序 87
9.1 当程序还无法运行时 89
9.2 当程序执行错误时 94
9.3 纸板调试法 103
9.4 如果这些都失败了 103
9.5 修复bug 104
9.6 修复bug后 106
9.6.1 查找类似的bug 106
9.6.2 避免重复出现相同的bug 108
9.6.3 防御式编程 112
第10章 如何优化程序 114
10.1 可维护性 115
10.1.1 消除重复 116
10.1.2 选择抽象 120
10.2 效率 122
10.3 重构 126
10.4 提升技能 129
第11章 如何获得帮助 132
11.1 解决一般问题 133
11.2 解决具体问题 135
11.2.1 从错误信息中获得帮助 136
11.2.2 查找说明和有用的代码 137
11.2.3 解决复杂的程序问题 138
11.2.4 寻求帮助 140
11.2.5 入门帮助 141
11.3 当老师让你困惑时怎么办 142
第12章 如何在课程作业中取得好成绩 144
12.1 七条黄金法则 144
12.2 上机实验 146
12.3 课程设计 147
12.4 团队合作 148
12.5 演示 149
12.6 反思写作 150
第13章 如何在编程考试中取得好成绩 152
13.1 准备考试 153
13.1.1 了解考核内容 153
13.1.2 用以前的试卷练手 154
13.1.3 考试规划 155
13.2 考试中 155
13.3 书面考试的具体要点 156
13.4 上机考试的具体要点 156
13.5 选择题考试 157
第14章 如何选择编程语言 159
14.1 需要考虑的问题 159
14.2 你可能遇到的几种语言 162
14.3 语言环境的变化 164
第15章 如何超越本书 166
15.1 编写更多程序 166
15.2 特定的编程语言 167
15.3 一般编程 167
15.4 软件工程 168
15.5 编程语言理论 170
参考文献 172
如何写出好程序 作者简介
佩蒂塔・史蒂文斯(Perdita Stevens),爱丁堡大学的教授,曾教授多种编程语言的编程和软件工程课程,学生涵盖本科一年级学生到成熟的专业软件开发人员。她与人合著了Using UML: Software Engineering with Objects and Components(1998),还因双向转换方面的工作获得了2017年建模大会的10年极具影响力论文奖和最佳论文奖。王磊,资深技术咨询师,具有15年以上软件开发经验,覆盖金融、通信、互联网、汽车等行业。对于微服务架构、DDD、敏捷工程实践、DevOps流程与技术、分布式开发、数据库性能调优、开发有着丰富经验。现任凯捷咨询(中国)有限公司首席架构师,译有《Kubernetes 实战》。周训杰,资深技术咨询师,代表译作《演进式架构》,现任ThoughtWorks北美业务线技术负责人。拥有十多年软件开发相关经验。有着丰富的企业级和互联网应用的开发架构实战经验,擅长遗留系统改造及企业数字化平台建设。万学凡,数字化转型专家,InfoQ2020年度中国十大IT产业推动者。现任凯捷咨询(中国)有限公司助理副总裁,首席咨询顾问。《EDGE:价值驱动的数字化转型》《内容智能:打赢每一场运营战争》《AI重新定义企业》《回顾活动引导》的译者。