软件工程-第十三章程序设计语言和编码
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的名字和类型,便于编译程序检查使用方式的合法 性,从而帮助程序员发现错误。
2021/3/27
国防科技大学计算机学院
6
13.1程序设计语言
过程式程序设计语言的基本机制(续)
(2)
数据类型定义是一种抽象机制,它刻画一组数 据对象和作用在数据对象上的一组操作。
(3)
子程序是可独立编译的程序单元,包含自己的 数据结构和控制结构。在不同的语言中,子程序可 能分别称作子例程、过程或函数。子程序一般具备 如下三种机制:①子程序说明,它给出子程序与其他 程序单元的接口;②子程序体,它实现子程序的数据 和控制结构;③调用方式。
2021/3/27
国防科技大学计算机学院
19
13.4 编程风格
第十三章 程序设计语言和编码
按照软件工程的观点,程序是软件设计的自然结果, 程序的质量主要取决于设计的质量,根据设计的要 求选择了程序设计语言之后,编程的风格在很大程 度上影响着程序的可读性、可测试性和可维护性。
鉴于软件开发的绝大部分成本消耗在测试和维护阶 段,
2021/3/27
国防科技大学计算机学院
21
(2)模块化
13.4编程风格
把代码划分为内聚度高、富有意义的功能块。通常 是把长且复杂的程序段或子程序分解为小且定义良 好的程序段,
·确保物理和逻辑功能密切相关; ·限定一个模块完成一个独立的功能; ·检查代码的重复率。
2021/3/27
国防科技大学计算机学院
①通用性——适用于不同的语言、不同的应用领域和开发方法;
特定的程序设计语言有一些特定的限制,它们影响 着程序员描述和处理问题。
设计程序语言应着重考虑程序员易学易用,不易出 错。
因此程序设计语言必须考虑下列特性:
一致性 二义性 紧致性 局部性 线性
2021/3/27
国防科技大学计算机学院
4
程序设计语言的特性
13.1程序设计语言
为满足软件工程的需要,程序设计语言还应考虑: (1)将设计翻译为代码的便利程度 (2)编译器的效率 (3)源代码的可移植性 (4)配套的开发工具 (5)可维护性
逻辑程序设计被R.Kowal百度文库ki概括为:在计算机 中用逻辑描述信息;用逻辑向计算机提出问题;用 逻辑推理解决这些问题。
2021/3/27
国防科技大学计算机学院
14
13.2程序设计过程
13.2.1 面向对象语言对OOD的支持
直接支持面向对象方法的语言一般提供抽象数据类 型(即类)和继承的机制。
2021/3/27
国防科技大学计算机学院
25
(6)格式化
13.4编程风格
尽量使程序布局合理、清晰、明了。具体措施包括:
·有效地使用编程空间(水平和垂直两个方向),以助于读者 理解;
·适当插入括号,使表达式的运算次序清晰直观,排除二义性;
·有效地使用空格符以区别程序的不同意群(例如,注释与程 序、一个分程序与另一个分程序等等),提高程序的可读 性。
编码的过程就是把详细设计翻译成可执行代码的过 程,也是人借助编程语言与计算机通信的过程。
编程语言的种种特性必然影响到翻译和通信过程的 质量和效率。
程序设计语言既要支持软件工程的原理,又要符合 程序员的心理。
2021/3/27
国防科技大学计算机学院
3
13.1.1 程序设计语言的特性
13.1程序设计语言
16
13.2程序设计过程
13.2.3 过程式语言对OOD的支持
传统语言(如C语言)对数据抽象、封装等概念的支 持较基于对象的语言(如Ada)更弱。
类与对象在C语言中,只好用结构表示。 例13.1、13.2、13.3用C语言的描述。
2021/3/27
国防科技大学计算机学院
17
13.3 编程标准
例13.1:定义抽象数据类型Sensor(传感器) 例13.2:定义Sensor的子类CriticalSensor 例13.3:假设一个传感器一定装在某座建筑物上,
而一座建筑物内可安装多种传感器,表示此关系。
2021/3/27
国防科技大学计算机学院
15
13.2程序设计过程
13.2.2 基于对象语言对OOD的支持
22
(3)简单化
13.4编程风格
去掉过分复杂和不必要的矫揉造作。具体措施包括:
·采用简单和直截了当的算法; ·使用简单的数据结构,避免使用多维数组、指针和复杂的
表; ·注意对象命名的一致性; ·以手工方式简化算术和逻辑表达式。
2021/3/27
国防科技大学计算机学院
23
(4)结构化
13.4编程风格
Ada这类语言虽能支持抽象数据类型,但不能直接 支持继承、消息传递、动态链接等概念,一般认为 Ada是基于对象的语言。
Ada的程序包能将数据结构(属性)和作用在数据 结构上的操作(方法)很好地封装起来,形成一个类。
例13.1、13.2、13.3用Ada对应的描述。
2021/3/27
国防科技大学计算机学院
编码阶段不应单纯追求编码效率,而应全面考虑编 写程序、测试程序、说明程序和修改程序等各项工 作。
影响编码质量的因素包括编程语言、编程准则和编 程风格,它们对程序的可靠性、可读性、可测试性 和可维护性都将产生深远的影响。
2021/3/27
国防科技大学计算机学院
2
13.1 程序设计语言
第十三章 程序设计语言和编码
2021/3/27
国防科技大学计算机学院
5
13.1程序设计语言
13.1.2 程序设计语言的基本机制
软件工程师应该对程序设计语言的基本机制,以及 它们对软件质量的影响有一个全面的了解,以便为 一个开发项目选择语言或为一个设计选择实现方案 时作出合理的技术抉择。
过程式程序设计语言的基本机制包括:
(1) 预先说明程序中将要使用的对象(常量和变量)
13.1.4 程序设计语言的选择
13.1程序设计语言
一般而言,衡量某种程序语言是否适合于特定的项 目,应考虑下面一些因素:
(1)应用领域; (2)算法和计算复杂性; (3)软件运行环境; (4)用户需求中关于性能方面的需要; (5)数据结构的复杂性; (6)软件开发人员的知识水平; (7)可用的编译器与交叉编译器。
把程序的各个构件组织成一个有效系统。具体措施包括:
·按标准化的次序说明数据; ·按字母顺序说明对象名; ·使用读者明了的结构化程序部件; ·采用直接了当的算法; ·根据应用背景排列程序各部分; ·不随意为效率而牺牲程序的清晰度和可读性; ·让机器多做琐碎、繁琐的工作,如重复工作和库函数; ·用公共函数调用代替重复出现的表达式; ·检查参数传递情况保证有效性; ·检查多层嵌套结构,确认是否存在某些语句可从内层循环中提出,避
2021/3/27
国防科技大学计算机学院
13
13.2 程序设计过程
第十三章 程序设计语言和编码
程序设计即用某种程序设计语言将详细设计编码为 计算机可接受的形式。
过程式程序设计因过程式语言与大多数过程设计描 述有直接的对应关系,所以编码过程相对直观、易 掌握。
函数程序设计简单地讲就是以某种方式描述和定义 函数。
面向对象程序设计语言最基本的机制包括类、子类、对象 和实例的定义,单继承和多继承,对象的部分—整体关系, 消息传递和动态链接等等。
2021/3/27
国防科技大学计算机学院
9
13.1程序设计语言
13.1.3 程序设计语言的演变和分类
程序设计语言发展到今天,大致可划分为四代。
2021/3/27
国防科技大学计算机学院
2021/3/27
国防科技大学计算机学院
7
13.1程序设计语言
过程式程序设计语言的基本机制(续)
(4) 几乎所有现代程序设计语言都允许程序员使用
顺序、分枝和循环三类结构化构件,甚至许多语言 的结构编辑器直接给出它们对应的语法框架。
2021/3/27
国防科技大学计算机学院
8
程序设计语言的基本机制
13.1程序设计语言
程序生成器(Program Generators)代表更为 复杂的一类4GL,它输入由甚高级语言书写的语句, 自动产生完整的三代语言程序。
此外,一些决策支持语言,原型语言,形式化规格说明 语言,甚至个人计算机环境中的一些工具也被认为 属于4GL的范畴。
2021/3/27
国防科技大学计算机学院
12
函数式程序设计语言一般包括数据对象定义和函数定义两 种基本机制。在其颇具代表性的两种语言中,LISP采用 λ—表达式的形式定义函数,而ML采用递归方程描述函数。
逻辑程序设计语言一般为某种符号逻辑系统,其中基于 Horn短句的一类语言(例如Prolog)是迄今为止发展得较 完善和实用的语言。它采用特定的逻辑语句形式描述问题 域本身的知识和信息(程序中称为事实和规则)以及待解问 题(程序中称为目标),计算机采用某种推理规则(如归结原 理)
10
程序设计语言的演变和分类
13.1程序设计语言
第一代语言指与机器紧密相关的机器语言和汇编语言,其历 史可追溯到第一台电子计算机问世,甚至更早。因其与硬件 操作一一对应,基本上有多少种计算机就有多少种汇编语言。
第二代语言是50年代未60年代初先后出现的,它们应用面 广,为人们熟悉和接受,有大量成熟的程序库。它们是现代 (第三代)程序设计语言的基础和前身。这代语言包括 Fortran、Cobol、Algol 60和Basic
第十三章 程序设计语言和编码
人们总是希望编制清晰、紧凑、高效的程序,但这 些特性在编码时往往互相矛盾,一般应依次考虑下 列原则:
(1)编制易于修改、维护的代码
主要措施是在模块化和面向对象详细设计 的基础上,进一步按属性划分程序。
(2)编制易于测试的代码
一般来说,人们总是通过运用条件编译语句 尽早设计出测试用例、采用统一的命名规则管 理这些测试用例并适时地进行回归测试等一系 列措施提高程序的可测试性。
齐治昌 教授, 谭庆平 教授, 宁洪 教授, 董威 博士
软件工程
Software Engineering
国防科技大学计算机学院
2004.07
2021/3/27
国防科技大学计算机学院
1
第十三章 程序设计语言和编码
软件工程编码阶段的任务是将详细设计翻译成计算 机可以“理解”并且最终可运行的代码。
根据基本机制可将程序设计语言分为过程式程序设 计语言、函数式程序设计语言、逻辑程序设计语言 和面向对象程序设计语言四类。
免大量
使用嵌套循环结构和嵌套分枝结构; ·坚持使用统一缩进规则;
·只编制单入口单出口的代码。
2021/3/27
国防科技大学计算机学院
24
(5)文档化
13.4编程风格
·有效、适当地使用注释,保证注释有意义,说明性强; ·使用含义鲜明的变量名; ·协调使用程序块注释和程序行注释; ·始终坚持编制文档。
编程风格是在不影响性能的前提下,有效地编排和 组织程序以提高可读性和可维性。
2021/3/27
国防科技大学计算机学院
20
(1)节俭化
·避免程序中不必要的动作和变量; ·避免变量名重载; ·减小程序的体积; ·减少程序的执行时间(提高速度); ·避免模块冗余和重复; ·检查全局变量的副作用。
13.4编程风格
第三代语言(也称为现代或结构化程序语言)的特点是直接 支持结构化构件,并具有很强的过程能力和数据结构能力。 这代语言本身又可细分为三类:通用高级语言、面向对象的 语言和专用语言。
2021/3/27
国防科技大学计算机学院
11
程序设计语言的演变和分类
13.1程序设计语言
第四代语言(4GL)上升到更高的一个抽象层次,尽 管它仍象其他人工语言一样用自己的语法形式表示 控制和数据结构,但已不再涉及太多的算法性细节。 迄今,使用最广的四代语言是数据库查询语言,它支 持用户以复杂的方式操作数据库。
2021/3/27
国防科技大学计算机学院
26
第十三章 程序设计语言和编码
13.5 程序设计支持环境(PSE)
现今编程过程大多在一组CASE工具的支持下进行,这组工 具辅助完成编辑、编译、调试、项目管理等一系列任务,人 们称这组工具构成一个程序设计支持环境(PSE),一个富有 吸引力的PSE应具备下列特性:
2021/3/27
国防科技大学计算机学院
18
编程标准(续)
13.3编程标准
(3)必须将编程与编文档的工作统一开来。一个程 序段的文档应包括下列内容:
①代码的功能; ②代码的完成者; ③代码在整个软件系统中的位置; ④代码编制、复审的时间; ⑤保留代码的原因; ⑥代码中如何使用数据结构和算法。
(4)编程中采用统一的标准和约定,降低程序复杂性 (5)限定每一层的副作用,减少耦合度 (6)尽可能地重用
2021/3/27
国防科技大学计算机学院
6
13.1程序设计语言
过程式程序设计语言的基本机制(续)
(2)
数据类型定义是一种抽象机制,它刻画一组数 据对象和作用在数据对象上的一组操作。
(3)
子程序是可独立编译的程序单元,包含自己的 数据结构和控制结构。在不同的语言中,子程序可 能分别称作子例程、过程或函数。子程序一般具备 如下三种机制:①子程序说明,它给出子程序与其他 程序单元的接口;②子程序体,它实现子程序的数据 和控制结构;③调用方式。
2021/3/27
国防科技大学计算机学院
19
13.4 编程风格
第十三章 程序设计语言和编码
按照软件工程的观点,程序是软件设计的自然结果, 程序的质量主要取决于设计的质量,根据设计的要 求选择了程序设计语言之后,编程的风格在很大程 度上影响着程序的可读性、可测试性和可维护性。
鉴于软件开发的绝大部分成本消耗在测试和维护阶 段,
2021/3/27
国防科技大学计算机学院
21
(2)模块化
13.4编程风格
把代码划分为内聚度高、富有意义的功能块。通常 是把长且复杂的程序段或子程序分解为小且定义良 好的程序段,
·确保物理和逻辑功能密切相关; ·限定一个模块完成一个独立的功能; ·检查代码的重复率。
2021/3/27
国防科技大学计算机学院
①通用性——适用于不同的语言、不同的应用领域和开发方法;
特定的程序设计语言有一些特定的限制,它们影响 着程序员描述和处理问题。
设计程序语言应着重考虑程序员易学易用,不易出 错。
因此程序设计语言必须考虑下列特性:
一致性 二义性 紧致性 局部性 线性
2021/3/27
国防科技大学计算机学院
4
程序设计语言的特性
13.1程序设计语言
为满足软件工程的需要,程序设计语言还应考虑: (1)将设计翻译为代码的便利程度 (2)编译器的效率 (3)源代码的可移植性 (4)配套的开发工具 (5)可维护性
逻辑程序设计被R.Kowal百度文库ki概括为:在计算机 中用逻辑描述信息;用逻辑向计算机提出问题;用 逻辑推理解决这些问题。
2021/3/27
国防科技大学计算机学院
14
13.2程序设计过程
13.2.1 面向对象语言对OOD的支持
直接支持面向对象方法的语言一般提供抽象数据类 型(即类)和继承的机制。
2021/3/27
国防科技大学计算机学院
25
(6)格式化
13.4编程风格
尽量使程序布局合理、清晰、明了。具体措施包括:
·有效地使用编程空间(水平和垂直两个方向),以助于读者 理解;
·适当插入括号,使表达式的运算次序清晰直观,排除二义性;
·有效地使用空格符以区别程序的不同意群(例如,注释与程 序、一个分程序与另一个分程序等等),提高程序的可读 性。
编码的过程就是把详细设计翻译成可执行代码的过 程,也是人借助编程语言与计算机通信的过程。
编程语言的种种特性必然影响到翻译和通信过程的 质量和效率。
程序设计语言既要支持软件工程的原理,又要符合 程序员的心理。
2021/3/27
国防科技大学计算机学院
3
13.1.1 程序设计语言的特性
13.1程序设计语言
16
13.2程序设计过程
13.2.3 过程式语言对OOD的支持
传统语言(如C语言)对数据抽象、封装等概念的支 持较基于对象的语言(如Ada)更弱。
类与对象在C语言中,只好用结构表示。 例13.1、13.2、13.3用C语言的描述。
2021/3/27
国防科技大学计算机学院
17
13.3 编程标准
例13.1:定义抽象数据类型Sensor(传感器) 例13.2:定义Sensor的子类CriticalSensor 例13.3:假设一个传感器一定装在某座建筑物上,
而一座建筑物内可安装多种传感器,表示此关系。
2021/3/27
国防科技大学计算机学院
15
13.2程序设计过程
13.2.2 基于对象语言对OOD的支持
22
(3)简单化
13.4编程风格
去掉过分复杂和不必要的矫揉造作。具体措施包括:
·采用简单和直截了当的算法; ·使用简单的数据结构,避免使用多维数组、指针和复杂的
表; ·注意对象命名的一致性; ·以手工方式简化算术和逻辑表达式。
2021/3/27
国防科技大学计算机学院
23
(4)结构化
13.4编程风格
Ada这类语言虽能支持抽象数据类型,但不能直接 支持继承、消息传递、动态链接等概念,一般认为 Ada是基于对象的语言。
Ada的程序包能将数据结构(属性)和作用在数据 结构上的操作(方法)很好地封装起来,形成一个类。
例13.1、13.2、13.3用Ada对应的描述。
2021/3/27
国防科技大学计算机学院
编码阶段不应单纯追求编码效率,而应全面考虑编 写程序、测试程序、说明程序和修改程序等各项工 作。
影响编码质量的因素包括编程语言、编程准则和编 程风格,它们对程序的可靠性、可读性、可测试性 和可维护性都将产生深远的影响。
2021/3/27
国防科技大学计算机学院
2
13.1 程序设计语言
第十三章 程序设计语言和编码
2021/3/27
国防科技大学计算机学院
5
13.1程序设计语言
13.1.2 程序设计语言的基本机制
软件工程师应该对程序设计语言的基本机制,以及 它们对软件质量的影响有一个全面的了解,以便为 一个开发项目选择语言或为一个设计选择实现方案 时作出合理的技术抉择。
过程式程序设计语言的基本机制包括:
(1) 预先说明程序中将要使用的对象(常量和变量)
13.1.4 程序设计语言的选择
13.1程序设计语言
一般而言,衡量某种程序语言是否适合于特定的项 目,应考虑下面一些因素:
(1)应用领域; (2)算法和计算复杂性; (3)软件运行环境; (4)用户需求中关于性能方面的需要; (5)数据结构的复杂性; (6)软件开发人员的知识水平; (7)可用的编译器与交叉编译器。
把程序的各个构件组织成一个有效系统。具体措施包括:
·按标准化的次序说明数据; ·按字母顺序说明对象名; ·使用读者明了的结构化程序部件; ·采用直接了当的算法; ·根据应用背景排列程序各部分; ·不随意为效率而牺牲程序的清晰度和可读性; ·让机器多做琐碎、繁琐的工作,如重复工作和库函数; ·用公共函数调用代替重复出现的表达式; ·检查参数传递情况保证有效性; ·检查多层嵌套结构,确认是否存在某些语句可从内层循环中提出,避
2021/3/27
国防科技大学计算机学院
13
13.2 程序设计过程
第十三章 程序设计语言和编码
程序设计即用某种程序设计语言将详细设计编码为 计算机可接受的形式。
过程式程序设计因过程式语言与大多数过程设计描 述有直接的对应关系,所以编码过程相对直观、易 掌握。
函数程序设计简单地讲就是以某种方式描述和定义 函数。
面向对象程序设计语言最基本的机制包括类、子类、对象 和实例的定义,单继承和多继承,对象的部分—整体关系, 消息传递和动态链接等等。
2021/3/27
国防科技大学计算机学院
9
13.1程序设计语言
13.1.3 程序设计语言的演变和分类
程序设计语言发展到今天,大致可划分为四代。
2021/3/27
国防科技大学计算机学院
2021/3/27
国防科技大学计算机学院
7
13.1程序设计语言
过程式程序设计语言的基本机制(续)
(4) 几乎所有现代程序设计语言都允许程序员使用
顺序、分枝和循环三类结构化构件,甚至许多语言 的结构编辑器直接给出它们对应的语法框架。
2021/3/27
国防科技大学计算机学院
8
程序设计语言的基本机制
13.1程序设计语言
程序生成器(Program Generators)代表更为 复杂的一类4GL,它输入由甚高级语言书写的语句, 自动产生完整的三代语言程序。
此外,一些决策支持语言,原型语言,形式化规格说明 语言,甚至个人计算机环境中的一些工具也被认为 属于4GL的范畴。
2021/3/27
国防科技大学计算机学院
12
函数式程序设计语言一般包括数据对象定义和函数定义两 种基本机制。在其颇具代表性的两种语言中,LISP采用 λ—表达式的形式定义函数,而ML采用递归方程描述函数。
逻辑程序设计语言一般为某种符号逻辑系统,其中基于 Horn短句的一类语言(例如Prolog)是迄今为止发展得较 完善和实用的语言。它采用特定的逻辑语句形式描述问题 域本身的知识和信息(程序中称为事实和规则)以及待解问 题(程序中称为目标),计算机采用某种推理规则(如归结原 理)
10
程序设计语言的演变和分类
13.1程序设计语言
第一代语言指与机器紧密相关的机器语言和汇编语言,其历 史可追溯到第一台电子计算机问世,甚至更早。因其与硬件 操作一一对应,基本上有多少种计算机就有多少种汇编语言。
第二代语言是50年代未60年代初先后出现的,它们应用面 广,为人们熟悉和接受,有大量成熟的程序库。它们是现代 (第三代)程序设计语言的基础和前身。这代语言包括 Fortran、Cobol、Algol 60和Basic
第十三章 程序设计语言和编码
人们总是希望编制清晰、紧凑、高效的程序,但这 些特性在编码时往往互相矛盾,一般应依次考虑下 列原则:
(1)编制易于修改、维护的代码
主要措施是在模块化和面向对象详细设计 的基础上,进一步按属性划分程序。
(2)编制易于测试的代码
一般来说,人们总是通过运用条件编译语句 尽早设计出测试用例、采用统一的命名规则管 理这些测试用例并适时地进行回归测试等一系 列措施提高程序的可测试性。
齐治昌 教授, 谭庆平 教授, 宁洪 教授, 董威 博士
软件工程
Software Engineering
国防科技大学计算机学院
2004.07
2021/3/27
国防科技大学计算机学院
1
第十三章 程序设计语言和编码
软件工程编码阶段的任务是将详细设计翻译成计算 机可以“理解”并且最终可运行的代码。
根据基本机制可将程序设计语言分为过程式程序设 计语言、函数式程序设计语言、逻辑程序设计语言 和面向对象程序设计语言四类。
免大量
使用嵌套循环结构和嵌套分枝结构; ·坚持使用统一缩进规则;
·只编制单入口单出口的代码。
2021/3/27
国防科技大学计算机学院
24
(5)文档化
13.4编程风格
·有效、适当地使用注释,保证注释有意义,说明性强; ·使用含义鲜明的变量名; ·协调使用程序块注释和程序行注释; ·始终坚持编制文档。
编程风格是在不影响性能的前提下,有效地编排和 组织程序以提高可读性和可维性。
2021/3/27
国防科技大学计算机学院
20
(1)节俭化
·避免程序中不必要的动作和变量; ·避免变量名重载; ·减小程序的体积; ·减少程序的执行时间(提高速度); ·避免模块冗余和重复; ·检查全局变量的副作用。
13.4编程风格
第三代语言(也称为现代或结构化程序语言)的特点是直接 支持结构化构件,并具有很强的过程能力和数据结构能力。 这代语言本身又可细分为三类:通用高级语言、面向对象的 语言和专用语言。
2021/3/27
国防科技大学计算机学院
11
程序设计语言的演变和分类
13.1程序设计语言
第四代语言(4GL)上升到更高的一个抽象层次,尽 管它仍象其他人工语言一样用自己的语法形式表示 控制和数据结构,但已不再涉及太多的算法性细节。 迄今,使用最广的四代语言是数据库查询语言,它支 持用户以复杂的方式操作数据库。
2021/3/27
国防科技大学计算机学院
26
第十三章 程序设计语言和编码
13.5 程序设计支持环境(PSE)
现今编程过程大多在一组CASE工具的支持下进行,这组工 具辅助完成编辑、编译、调试、项目管理等一系列任务,人 们称这组工具构成一个程序设计支持环境(PSE),一个富有 吸引力的PSE应具备下列特性:
2021/3/27
国防科技大学计算机学院
18
编程标准(续)
13.3编程标准
(3)必须将编程与编文档的工作统一开来。一个程 序段的文档应包括下列内容:
①代码的功能; ②代码的完成者; ③代码在整个软件系统中的位置; ④代码编制、复审的时间; ⑤保留代码的原因; ⑥代码中如何使用数据结构和算法。
(4)编程中采用统一的标准和约定,降低程序复杂性 (5)限定每一层的副作用,减少耦合度 (6)尽可能地重用