第7章程序编码的实现--站在前人的肩膀实现您的聪明内容概览程序设计语言的选择程序编码的风格程序效率程序编码规范案例—Java编码规范7.1程序设计语言的选择程序设计语言是人与计算机交互信息的最基本工具。由于程序设计语言自身的特性,不可避免地会影响到程序员解决问题的思路或方式,从而最终对编写出的程序代码产生一定的影响,因此编码之前必须根据软件项目的特点等因素综合考虑,选择一种合适的编程语言进行程序开发。7.1.1程序设计语言的特点对程序设计语言特点的研究有许多不同的认识,下面主要从技术、软件心理学和软件工程的观点分别介绍程序设计语言的特点。1.技术的观点一旦确定了软件需求之后,待选用的程序设计语言的技术特性就显得非常重要。如果软件设计面对大量的数据处理,程序编写需要复杂的数据结构,那么就要仔细选择有哪些语言能够提供复杂数据结构描述。如果软件设计首要目的是满足系统具有高性能、实时处理的能力,那么就需要选用适合于实时处理的计算机编程语言。7.1.1程序设计语言的特点2.软件心理学观点从软件设计到程序代码的转换基本上是手工为主的活动,因此程序设计语言的性能会对程序员的心理产生重大的影响。在一定的硬件环境下,程序员总是希望选择简单易学、使用方便的语言,提高编程效率和程序质量。从心理学的观点,影响程序员的语言特性有以下方面:(1)一致性(2)二义性(3)简洁性(4)局部性(5)线性7.1.1程序设计语言的特点3.软件工程的观点从软件工程观点看,程序设计语言的特性应着重考虑软件开发项目的需要。为此,程序设计语言要有如下一些工程上的特性。(1)详细设计能够直接地翻译程序代码。(2)源程序具有可移植性。(3)编译程序应具有较高的效率。(4)尽可能应用代码生成的自动工具。(5)可维护性,源程序的可维护性对复杂的软件开发项目尤其重要,可维护性的前提是代码的可理解性。7.1.2程序设计语言的分类1.机器语言(第一代语言)2.汇编语言(第二代语言)3.高级程序设计语言(第三代)4.第四代语言(theFourthGenerationLanguage)7.2程序编码的风格编码风格又称为程序设计风格。所谓风格是指创作者在创作活动中喜欢和习惯使用的表达自己作品内涵的方式。从20世纪70年代以来,编码的目标从强调效率转变为强调清晰。与此相应编码风格也从追求“技巧”变为“简明”。人们逐渐认识到,良好的编码风格能在一定程度上弥补语言存在的缺点,如果不注重风格,即使使用了结构化的程序设计语言,也不一定能写出高质量的程序。特别是程序员团队集体开发时,尤其强调良好、一致的编码风格,以利于相互通信,减少因不协调而引起的问题。下面从编码过程中的数据说明、语句结构、输入输出和源程序文档化等方面简述编码风格的要求。从程序设计语言语法要求上,数据说明的顺序与语法是无关的,其次序是任意排放的。但是,为了方便阅读源程序、理解和维护的需要,应当规范数据说明的顺序,易于查找数据属性,便于测试、排错。7.2.1数据说明7.2.2程序语句结构在软件设计阶段确定了软件的逻辑结构,实现其具体功能则是编码阶段的任务。具体功能的实现需要程序语句构造,在语句构造过程中要力求简明、直接。不能为了片面追求效率而使语句复杂化了。子系统应具有定义良好的接口,通过接口和整个系统的其他部分进行通信;源程序行中,一行只写一条语句,并采取适当的缩进格式,是程序的功能逻辑变得更加清晰。子系统的数量不应太多。编写程序首先应当考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑。程序编写过程中,引用临时变量是为了加强程序的可理解性,如果使用临时变量而使源代码的可读性下降,则应该避免。程序中goto语句7.2.3源程序文档化程序的编写力求可读性,就是整个源程序代码的格式要美观、整齐,具有较强的逻辑层次,这就需要源程序文档化,包括选择标识符的名字、安排注释以及程序的视觉组织等。1.符号名的命名2.程序的注释3.程序格式清晰7.3程序效率程序效率是指程序的执行速度及程序占用的存储空间。程序编码是最后提高运行速度和节省存储空间的机会。软件效率应以需求为准,在需求分析阶段明确给出说明,好的设计可以提高效率。程序的效率是与程序的简单性相关的。7.3.1算法对效率的影响在详细设计到源程序编写过程中,可参考以下原则进行:在编程序前,尽可能化简有关的算术、逻辑表达式;仔细检查算法中的嵌套循环,尽可能将某些语句或表达式移到循环体外;尽量避免使用多维数组;简化使用指针和复杂表;选用等效的高效率算法。7.3.2编程安全提高软件质量和软件产品可靠性的技术大致可分为两类:减免错误技术(在开发过程中尽可能地不让差错潜入软件的技术);容错技术(对错误的处理技术)。减免错误技术是进行质量管理、实现产品应有质量所必不可少的技术,也就是软件工程中所讨论的先进的软件分析、开发和管理技术。但是,无论使用多么高超的减免错误技术,也无法使得程序完美无缺、绝无错误,这就需要容错技术。实现容错技术主要手段是冗余和防错程序设计。7.4程序编码规范案例—Java编码规范下面将以目前在软件开发项目中,程序编码广泛使用的Java语言为例,探讨程序编码规范,从而提供一些有效的建议。1.命名规范2.Java源程序样式3.代码编写格式4.编程技巧5.调试6.性能小结程序编码的目的,是把详细设计的结果(即模型、具体定义)翻译成用选定的程序设计语言而书写的源程序代码。程序质量主要由设计质量决定的。但是,编码的风格和所使用的程序语言,对编码质量也会有着一定的影响。良好的编码风格,应当从程序规范的数据说明、合理的程序语句结构和清晰的文档化源程序等方面注重程序编写。程序编码过程中,还要充分考虑程序“输入/输出”功能以实现用户与计算机系统之间的友好交互,以及保证程序安全、可靠运行的程序编码事项。