编程格调/The Elements of Programming
仅仅通过听取一般原理,就想很好地掌握程序设计,这是不可能的事。
一、绪论
撰写简洁的程序——不要耍聪明
编程是为了解决问题,要点在于使代码的意图不会被误解,而不是为了炫技。简洁、真确是首要的。
尽量编写更通用的程序
好的程序应当能够返回错误信息或简短消息
Tacey:不要把计算机的输出奉为圭臬。但,时代发展至今,多数错误还是要在自己写的代码中找。
二、表达
语句的完美表达是用任何注释、格式规范或补充文档都无法替代的。
简单并且直接地表达你要说的意思
尽量使用语言内置函数、模块。
使用库函数
代码过度“精明”和代码过度“简单”一样难于理解。
避免使用临时变量
在现代语言中这已经不是太过重要的注意点了
代码要清晰,不要为了“效率”牺牲可读性
让机器干脏活
没必要为机器感到劳累,机器没有“人格”。机器的成本远小于人员成本
用函数调用替代重复的表达式
这已经是编程的常识
加括号避免歧义
括号很重要,可以避免歧义,不用过度记忆优先级,减少脑力、心智负担
选择不会被混淆的变量名
这已经是编程常识
避免不必要的分支
注意精简代码,精简逻辑
使用语言好的特性,避免使用不好的特性
要熟悉、理解自己常用语言的特性。扬长避短
不要使用条件分支来代替一个逻辑表达式
注意逻辑的清晰。
如果通过电话大声朗读,其他人就能理解你的代码,这就说明代码写的足够清楚。
三、控制结构
计算机程序是数据的表示和控制流的语句所塑造的。
使用DO-WHILE来进界定语句组
已经是编程常识。在Python中甚至已经是语法的一部分强制规定
用IF-ELSE强调两个操作中只有一个被执行
用DO-WHILE来强调循环的存在
这个要看具体的语言语法了。主要的是明确循环退出的那部分,不要将其隐藏在循环的内部。
确保你的程序是自顶向下阅读的
方便阅读,在实际编程中是有一定限制的
使用IF...ELSE IF ... ELSE IF ...ELSE来实现多路分支
额,现在多数语言都支持了switch语法。
使用基本的控制流结构
过时了
先用容易理解的伪语言编写代码,然后再翻译成你需要的语言
在构建一个模型、服务时,先用流程图、示意图分析整个流程。或者先试着写代码的整个结构。
避免使用ELSE GOTO 和ELSE RETURN
尽量把RETURN语句放置在函数尾部
判断要尽肯能紧挨着与之相关的操作
除非判断是为了确定一个后续操作的一个标志。
选择可以简化程序的数据表示方法
不要止步于第一遍的代码草稿
不断重构优化代码
四、程序结构
多数的程序规模都太大,以至于难以当作一个整块来理解,必须划分成更小的部分才能分别掌握。这是编写可靠程序的唯一方法,也是阅读和理解程序的唯一途径。
把代码合理地划分到模块之中是编写程序很重要的一个方面。
模块化,使用子例程
已经是常识。现在