logo
分类于: 互联网 其它

简介

编程格调

编程格调 7.5分

资源最后更新于 2020-09-05 21:58:01

作者:[美] Brian W. Kernighan

译者:高博

出版社:人民邮电出版社

出版日期:2015-01

ISBN:9787115379528

文件格式: pdf

标签: 编程 程序设计 计算机 编程艺术 软件工程 计算机科学 经典 技术

简介· · · · · ·

《编程格调》是编程惯用法和规则的实践指南。全书从表达、控制结构、程序结构、输入和输出、常见错误、效率和测试工具、文档等多个角度,概括了程序设计中若干的最佳实践或规则,并通过代码示例加以分析和阐释。

本书两位作者都是程序设计领域的大师级任务。他们四十年前在本书中给出的70多条最佳实践和规则,大多数在今天仍然适用。

本书堪称计算机专业人士和程序员的必读的经典之作,适合于不同层级的程序员和计算机相关专业的学生参考阅读。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

第1章 绪论 1
撰写简洁的程序—不要耍小聪明 2
第2章 表达 13
简单并且直接地表达你要说的意思 14
使用库函数 14
避免使用临时变量 16
代码要清晰,不要为了“效率”牺牲可读性 16
让机器干脏活 17
用函数调用替代重复的表达式 18
加括号来避免歧义 21
选择不会被混淆的变量名 21
避免使用Fortran的算术IF 23
避免不必要的分支 25
使用语言好的特性,避免使用不好的特性 25
不要使用条件分支来代替一个逻辑表达式 26
用“电话测试”来检查可读性 29
第3章 控制结构 39
使用DO-END和缩进来界定语句组 40
用IF-ELSE强调两个操作中只有一个被执行 42
用DO和DO-WHILE来强调循环的存在 45
确保你的程序是自顶向下阅读的 46
使用IF…ELSE IF…ELSE IF…ELSE 来实现多路分支 47
使用基本的控制流结构 48
先用容易理解的伪语言编写代码,然后再翻译成 你需要使用的语言 52
避免使用THEN-IF和空ELSE 55
避免使用ELSE GOTO和ELSE RETURN 56
判断要尽可能紧挨着与之相关的操作 58
使用数组来避免重复的控制流 61
选择可以简化程序的数据表示方法 63
不要止步于第一遍的代码草稿 66
第4章 程序结构 71
模块化,使用子例程 74
让模块之间的耦合变得可见 75
每一个模块都应该做好一件事 76
确保每一个模块都隐藏好一些东西 78
以数据为导向来构建程序的结构 80
不要修补烂代码——重写它 84
分块编写和测试大的程序 91
对于递归定义的数据结构使用递归过程 91
第5章 输入和输出 97
校验输入的合法性和合理性 100
保证输入数据不会违背程序的限制 101
利用文件结束符号或结束标志来终止输入, 不要让用户去计数 102
识别出非法输入数据,如果可能则纠正之 103
使用统一的形式处理文件结束条件 105
让输入数据易于准备,并让输出数据意义不言自明 108
使用统一的输入格式 110
让输入数据易于校对 111
尽可能选择自由格式输入 112
使用含义自明的输入,指定默认值,将以上二者都输出 112
将输入与输出局限在子例程中 116
第6章 常见错误 119
确保所有的变量在使用之前都被初始化 120
不要停留在一个bug上 122
使用调试编译器 124
用DATA语句或INITIAL属性初始化常量, 用可执行语句初始化变量 125
小心“差一”错误 126
要注意对不等式进行正确的分支 126
避免循环有多个出口 128
确保你的代码巧妙地“不做事情” 131
在边界值上测试程序 135
预防性编程 136
10.0乘以0.1不等于1.0 137
不要比较浮点数是否相等 139
第7章 效率和测试工具 145
先做对,再做快 147
在提高程序运行速度时,要保持其正确性 149
先把程序改得更简洁,再提高其运行速度 150
不要为了“效率”上的蝇头小利而牺牲程序的简洁性 151
让编译器执行平凡优化 151
不要勉强地复用代码,应该进行改编 152
保证特殊情况真的有特殊性 155
保持简单性,反而会更快 157
不要为了提高速度而画蛇添足—去寻找更好的算法 159
在程序中放置测试语句,“增效”之前先执行测算 161
第8章 文档 165
确保注释和代码一致 167
不要用注释复述代码做的事情, 每个注释都要有实际意义 167
不要注释糟糕的代码——重写它 169
使用含有意义的变量名 170
使用含有意义的语句标签 171
程序的格式要有助于读者的理解 171
用缩进来体现程序的逻辑结构 172
记录你的数据规划 175
不要过度注释 176
结束语 180