文章目录

  • 组织直线型代码
    • 必须有明确顺序的语句
    • 顺序无关的语句
    • 核对表
    • 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

  • 组织直线型代码的最主要原则是按照依赖关系进行排列
  • 可以用好的子程序名、参数列表、注释,以及一一如果代码足够重要一一内
    务管理变量来让依赖关系变得更明显。
  • 如果代码之间没有顺序依赖关系,那就设法使相关的语句尽可能地接近。

【代码大全】——组织直线型代码相关推荐

  1. 读书笔记_代码大全_第14章_组织直线型代码_第15章_使用条件语句

    组织直线型代码 + 使用条件语句 希望我的读书笔试能带你翻过18页的书 http://www.cnblogs.com/jerry19880126/ <代码大全>第14章和第15章的内容比较 ...

  2. 《代码大全2》第14章 组织直线型代码

    目录 前言 14.1 必须有明确顺序的语句 14.1.1 组织语句的原则 14.2 顺序无关的语句 14.2.1 使代码自上而下的阅读 14.2.2 把相关的语句组织到一起 <Code_Comp ...

  3. html flash 动画效果代码大全,flash动作代码大全

    flash动画代码中的flash动作代码大全 一.几种Action命令 1.影片的播放与停止: Play( )://播放命令 stop( )://停止命令 2.改变Frame流向命令 gotoAndP ...

  4. python基础代码大全-python基础代码大全

    [实例简介] python代码大全,适用于基础python学习者,里面的代码基本上是基础学习者必经过程. Python学习入门很快,但学习之路任重道远 [实例截图] [核心代码] python代码大全 ...

  5. 金色css颜色代码大全,CSS颜色代码大全

    标签:CSS颜色代码大全 颜色代码表(一): EEEEEE FFCCFF FF66FF FF00FF DDDDDD FFCCCC FF66CC FF00CC CCCCCC FFCC99 FF6699 ...

  6. JS常用脚本+html代码大全+对联广告代码效果大全

    JS常用脚本 1. on_contextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border on_co ...

  7. css常用代码大全,html+css代码

    css常用代码大全,html+css代码 html+css可以很方便的进行网页的排版布局,还能减少很多不必要的代码. 一.文本设置 1.font-size: 字号参数  2.font-style: 字 ...

  8. python程序编程代码大全,python编程代码详解

    大家好,本文将围绕python程序编程代码大全展开说明,python编程游戏代码是一个很多人都想弄明白的事情,想搞清楚python代码大全简单需要先了解以下几个事情. 1.python编程例子有哪些? ...

  9. c语言分手代码大全,C语言代码大全

    从今天开始,我将C语言的代码实例从发表在博客上.供技术交流.比较基础,遵循循序渐进的原则,由简单到复杂,为以后的程序员生涯打好基础. 1.编写一个C程序输出以下信息. **************** ...

最新文章

  1. javascript乘法和加法_JavaScript大数相加相乘的实现方法实例
  2. 晒晒公司整改后的拓扑图和设备
  3. Saber2016安装包和安装详细安装步骤
  4. java el表达式 导航规则_诺禾:在jsp里面如何不写java代码展示数据(EL表达式的使用)...
  5. 使用基本工具类和预编译进行对数据库的增删改查
  6. TypeScript的类型断言,有点像ABAP的强制类型转换
  7. SpringBoot注解大全(转)
  8. Linux函数--inet_pton / inet_ntop
  9. Machine Learning——octave矩阵操作(2)——DAY3
  10. mybatis 打印SQL
  11. mysql execute指令_MYSQL简单命令
  12. python partial_Python--并行计算框架(pathos)
  13. 五个案例简述Web设计原则:通用一致
  14. 微信小程序开发笔记2——如何发布小程序体验版
  15. mysql简单部署_Docker部署简单的mysql
  16. php 基础系列之 php快速入门
  17. 四十五.加密与解密 AIDE入侵检测系统 扫描与抓包
  18. rpm安装mysql指定数据仓库_linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境-Go语言中文社区...
  19. mysql 间隙锁 的范围_mysql间隙锁
  20. java时间戳的单位_java – SimpleDateFormat – 解析时间戳,以毫秒为单位

热门文章

  1. 如何成为现代科学家:代码
  2. 加减乘除Decimal
  3. Android最好用的底部导航栏
  4. SAP表示S/4HANA和人工智能都已经做好准备迎接黄金时代
  5. 页面布局-左侧菜单右侧内容
  6. SOA 服务架构之简介及理解以及面试题
  7. 设置Tomcat的UTF-8编码
  8. 2_一、Linux中的网络配置
  9. 深度优先搜索和宽度优先搜索
  10. express基本用法