【代码大全】——组织直线型代码
文章目录
- 组织直线型代码
- 必须有明确顺序的语句
- 顺序无关的语句
- 核对表
- Key Points
组织直线型代码
本章从以数据为中心的编程观点转到以语句为中心的观点上。
即按先后顺序放置语句和语句块。
尽管组织直线型代码是一个相对简单的任务,但代码结构上的一些微妙之处还是会对代码的质量、正确性、可读性和可维护性带来影响。
必须有明确顺序的语句
示例:有前后依赖关系的语句
data = Readdata():
results=Calculateresultsfromdata( data )
Printresults( results )
这个例子中潜在的根本概念与依赖性有关。第三条语句依赖于第二条条依赖于第一条。在本例中,前后语句之间的依赖关系可以很明显地从子程序名。
- 设法组织代码,使依赖关系变得非常明显
- 使子程序名能突显依赖关系
- 利用子程序参数明确显示依赖关系
- 用注释对不清晰的依赖关系进行说明
- 用断言或者错误处理代码来检查依赖关系
顺序无关的语句
你也许见过这种情形,即代码中若干语句或语句块的先后顺序看上去完全没
有关系。一条语句并不依赖于或者在逻辑上承接另一条语句。但是顺序的确对可
读性、性能和可维护性有影响,而且当缺少执行顺序依赖关系的时候,你可以用
第二标准来判断语句或者代码块的顺序。这其中的指导原则就是就近原则
( Principle of Proximity):把相关的操作放在一起。
使代码易于自上而下地阅读
作为一条普遍性原则,要让程序易于自上而下阅读,而不是让读者的目光跳来
跳去。专家们认为自上而下的顺序对提高可读性最有帮助。简单地让控制流在运行
时自上而下地运行还不够。如果有人在阅读你代码的时候不得不搜索整个应用程序
以便找到所需的信息,那么就应该重新组织你的代码了。把相关的语句组织在一起
检查相关的语句是不是组织得很好起来的一种简便方法是,打印出你的子程
序代码,然后把相关的语句画上框。如果这些语句排列得很好,你就会得到类似
于图141那样的图形,其中的方框是不会彼此交叠的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YqltvgOB-1595748943878)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200726152316406.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TfIhMouQ-1595748943884)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200726152446864.png)]
核对表
组织直线型代码 |
---|
代码使得语句之间的依赖关系变得明显吗? 子程序的名字使得依赖关系变得明显吗? 子程序的参数使得依赖关系变得明显吗? 如果依赖关系不明确,你是否用注释进行了说明? 你用“内务管理变量”( housekeeping variables)米检查代码中关键位置 的顺序依赖关系了吗? 代码容易按照自上而下的顺序阅读吗? 相关的语句被组织在一起吗? 把相对独立的语句组放进各自的子程序里吗? |
Key Points
- 组织直线型代码的最主要原则是按照依赖关系进行排列
- 可以用好的子程序名、参数列表、注释,以及一一如果代码足够重要一一内
务管理变量来让依赖关系变得更明显。 - 如果代码之间没有顺序依赖关系,那就设法使相关的语句尽可能地接近。
【代码大全】——组织直线型代码相关推荐
- 读书笔记_代码大全_第14章_组织直线型代码_第15章_使用条件语句
组织直线型代码 + 使用条件语句 希望我的读书笔试能带你翻过18页的书 http://www.cnblogs.com/jerry19880126/ <代码大全>第14章和第15章的内容比较 ...
- 《代码大全2》第14章 组织直线型代码
目录 前言 14.1 必须有明确顺序的语句 14.1.1 组织语句的原则 14.2 顺序无关的语句 14.2.1 使代码自上而下的阅读 14.2.2 把相关的语句组织到一起 <Code_Comp ...
- html flash 动画效果代码大全,flash动作代码大全
flash动画代码中的flash动作代码大全 一.几种Action命令 1.影片的播放与停止: Play( )://播放命令 stop( )://停止命令 2.改变Frame流向命令 gotoAndP ...
- python基础代码大全-python基础代码大全
[实例简介] python代码大全,适用于基础python学习者,里面的代码基本上是基础学习者必经过程. Python学习入门很快,但学习之路任重道远 [实例截图] [核心代码] python代码大全 ...
- 金色css颜色代码大全,CSS颜色代码大全
标签:CSS颜色代码大全 颜色代码表(一): EEEEEE FFCCFF FF66FF FF00FF DDDDDD FFCCCC FF66CC FF00CC CCCCCC FFCC99 FF6699 ...
- JS常用脚本+html代码大全+对联广告代码效果大全
JS常用脚本 1. on_contextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border on_co ...
- css常用代码大全,html+css代码
css常用代码大全,html+css代码 html+css可以很方便的进行网页的排版布局,还能减少很多不必要的代码. 一.文本设置 1.font-size: 字号参数 2.font-style: 字 ...
- python程序编程代码大全,python编程代码详解
大家好,本文将围绕python程序编程代码大全展开说明,python编程游戏代码是一个很多人都想弄明白的事情,想搞清楚python代码大全简单需要先了解以下几个事情. 1.python编程例子有哪些? ...
- c语言分手代码大全,C语言代码大全
从今天开始,我将C语言的代码实例从发表在博客上.供技术交流.比较基础,遵循循序渐进的原则,由简单到复杂,为以后的程序员生涯打好基础. 1.编写一个C程序输出以下信息. **************** ...
最新文章
- javascript乘法和加法_JavaScript大数相加相乘的实现方法实例
- 晒晒公司整改后的拓扑图和设备
- Saber2016安装包和安装详细安装步骤
- java el表达式 导航规则_诺禾:在jsp里面如何不写java代码展示数据(EL表达式的使用)...
- 使用基本工具类和预编译进行对数据库的增删改查
- TypeScript的类型断言,有点像ABAP的强制类型转换
- SpringBoot注解大全(转)
- Linux函数--inet_pton / inet_ntop
- Machine Learning——octave矩阵操作(2)——DAY3
- mybatis 打印SQL
- mysql execute指令_MYSQL简单命令
- python partial_Python--并行计算框架(pathos)
- 五个案例简述Web设计原则:通用一致
- 微信小程序开发笔记2——如何发布小程序体验版
- mysql简单部署_Docker部署简单的mysql
- php 基础系列之 php快速入门
- 四十五.加密与解密 AIDE入侵检测系统 扫描与抓包
- rpm安装mysql指定数据仓库_linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境-Go语言中文社区...
- mysql 间隙锁 的范围_mysql间隙锁
- java时间戳的单位_java – SimpleDateFormat – 解析时间戳,以毫秒为单位