中国学术杂志网

源程序美学表现与效率研究

 论文栏目:美学理论论文     更新时间:2017/11/6 10:14:20   

摘要:美是人类工作生活追求的目标之一,人类对高的工作效率和生活质量梦寐以求,美与工作效率、生活质量互相影响,相长相消,计算机语言源程序的美学表现同样对人类工作效率以及程序运行效率产生很大影响.计算机软件设计人员应给与源程序美学表现以足够高的重视.

关键词:源程序;美;效率

引言

美与效率相长相消.人类所有工作的一个重要目的是为了追求美,发现美,创造美.美好的事物不仅给人以享受,也能带来工作效率的提高和生活质量的改善.C++之父STROUSTRUPB先生在他的重要著作中[1]常提到“优雅”的字眼,“优雅”代表的就是简洁、漂亮、美观和高效.对此所有从事过多年程序设计工作的人肯定会有同感.从各层面精心设计的程序,会给人以整体美的感受,甚至就是一件精雕细刻的艺术品,这样设计出来的程序使用及运行效率一般会较高.事实上,计算机程序设计语言的演化过程就是一个很好的例子,从二进制的机器语言到汇编语言,再到高级语言,再到现在的4GL,每次进化都会使程序设计更接近人类语言,更符合人类审美观念,语言学习,程序设计工作,程序的运作更具效率.计算机是人类追求效率的直接产物,源程序的美学表现力直接影响人、程序和计算机的工作效率.软件设计中的美学表现可以体现在各个层面上,从整体规划到代码编制,从界面到源程序,从一个符号、一条指令到一个文件,从视觉表现到逻辑结构都是如此.我认为能把美学思想融到软件设计的各个层面,能在各层面透射出美学表现的软件会有更高的效率,也会有更多的成功机会.软件设计中,凡能透射美的每一个层面会带来各种效率的提升.美观的源程序编排格式自然提高人们阅读和理解的效率.精致的用户界面和简洁易用的操作流程必然赢得用户的青睐,自然也能提高他们的工作效率.代码合理顺序,精良的算法体现出程序的逻辑美,这总是带来空间、时间、应用及运行效率的改善.这里我将就源程序方面的美学表现和效率问题谈一些自己的看法,当然这些看法更多是对别人类似观点的汇总.

1视觉美学表现与效率

源程序中最小的元素应该是各种符号、运算符和基本命令,一直大到整个软件的所有源程序,其间还有表达式、复合语句、过程、函数到一个源程序文件,每个层次都需要有合理的美学表现,从基本单元到文件整体及单元和整体相互作用各角度融入美学思想,才能打造出视觉效果优良的源程序代码.透射美学表现的源程序对别人的阅读,程序员间交流,设计人员日后查询提供极大方便,显著提高工作效率.一个实用软件中会涉足许多符号,例如变量名、函数名、类名等等,为一实体命名,也就是编制一个符号是大有学问的,不但要求视觉美观,还要含义准确简单,于是出现了各种符号命名风格,其中著名的要数“匈牙利表示法”(为了纪念Microsoft程序员CharlesSimonyi)[2],这种方法里,变量名以一个或多个小写字母开始,这些字母表示变量的数据类型,当然也有各自形成的习惯或随意命名.这里并不存在哪个更好的问题,重要的是根据实际情况和需要来确定.例如循环控制变量一般用i,j,k等简短的符号即可,如果用a,b,c等就不太好,若用匈牙利表示法表示为iI,iJ,iK或iA,iB,iC(这里i为整型)就明显不好,而用iNumberOfPeople,count_of_element等表示几乎是一种丑陋.事实上在含义清楚,不引起混淆的前提下,任何符号要尽可能短小.简短明了,意义清楚的各种符号,不仅阅读容易,书写方便,占据更小的空间,也为以后整个源程序良好编排奠定基础.如果把整个程序比作画,符号就是画的一笔,每一笔画好了,是画好一幅画的基础.

1.1源程序视觉表现分析

下面是一个VisualFoxpro函数示例的程序使用a,b就很好了.函数名前缀fun显得可笑,这一方面是由于VisualFoxpro本身有过程和函数之分,另一方面也是程序员的多此一举.关键字FUNCTION,ENDFUNCTION,PARAMETERS太长也是火上浇油.VFoxpro的鼻祖设计者(DBase的设计者)们大概也意识到了这个问题,作为弥补,VFoxpro中可通过4字符关键字缩短符号应用.显示表达式中ALLTRIM(),STR()的频繁使用也潜在着丑陋的地方.STR()不该无原则给转换结果添加空格,那应该是用户可选择的事情,STR()的失误带来不必要的ALLTRIM()调用.关键字过长、库函数设计缺陷这是语言设计的缺美之处,过度使用大写字母这是语言及程序员不妥之处,毫无道理使用长符号是程序员的过失,看来,这是典型的缺乏美学表现的例子,这样的源程序显然缺乏各层次的效率.下面改造可能好些.源程序版面对阅读的影响显而易见.版面编排与实体有一定关联.例如在C/C++中,有头文件(.h或.hpp)和实现文件(.c或.cpp)之分,它们不仅完成接口和实现的分离,为代码保密带来便利,同时也为阅读和使用带来益处.

1.2颜色对源程序的视觉影响

尽管目前源代码还不支持颜色(指编译器不支持),但C++之父STROUSTRUPB先生正在设想未来的C++可能重载颜色.到那时,源程序中红色a和黄色a是不同的.如此一来我们就能编排出更美的源程序,源程序将会有更强的美学表现力,并且提供更高的应用效率.这里要说明的是,目前,多数源程序编辑器支持语法颜色,实践证明,编辑器语法颜色支持增强了源程序的美学表现力,同时提升了源程序使用效率.

1.3源程序注释的美学表现

对源程序中的注释,人们依然有许多显然不同的说法.为源程序添加适当数量的注释是大多数人的共识.但添加许多注释或干脆不加注释的源程序也是可以见到的.注释问题会涉及到添加还是不添加,添加多少,添加在代码的什么层次的什么位置.对此我个人的看法是:美观并且富有效率应成为添加注释的基本准则.其实代码原本具有自解释性,为什么还要有注释,因为计算机语言毕竟不是人类语言,更何况就是人类语言,还有语言不通的时候.因此适当的,言简意赅的注释再加上源程序一定程度上的自明性,辅以恰当的注释位置,源程序的阅读就成了一件轻松愉快的事.相反,缺乏必要的注释,罗嗦多余的注释,含义不清的注释,位置不当的注释都会带来阅读上的困难和不适,甚至出现理解错误.源程序中代码块的规模显著影响人们对源程序的阅读和应用,例如C/C++中的结构,类和函数.一个体积庞大的结构,类或函数,无论从阅读还是应用都可能造成困难,尤其可能引起人们理解上的误差.例如MFC中的CDC类就是超大的C++类[3],我想,设计和维护这个类的Microsoft的工程师们在摆弄这个类的源代码时至少会有点累吧,至少会感到它真的有点大吧.我觉得类似这样的类有点丑陋,从心理上会影响我对它的使用,换句话说,这会引起使用效率的下降.函数体也一样,一个大规模的函数体不仅丑陋,也很可笑,甚至是危险的.其实,理论上不管多大的软件都可只有一个函数,这就好比巴黎的埃菲尔铁塔,它完全可以一次成型造就,但那意味着什么?意味着至少会有更为巨大的投入和难以想象的浪费.将函数中最小的不可分的逻辑相关代码块分离出来成为小函数,就可避免胖子函数,对于类也有类似情况.一个源程序文件中的各类要素保持美的表现,多个源文件保持相同风格,一个软件的源程序从视觉上就会具有很强的美感,由此会显著提高阅读和应用效率.

2逻辑美学表现与效率

与视觉美学表现相比,逻辑美学表现并不直观,逻辑美感表现在更深的层次上.逻辑上的美学表现除了一定程度上对视觉的影响外,更多的隐藏在视觉背后.源程序视觉美学表现直接影响到源程序使用人员的工作效率和心理体验,但对最终目标程序的效率影响要弱于对人的影响,逻辑美学表现更多的是对目标程序工作效率的影响,同时逻辑美学表现从更深一层影响着人的视觉美感,并由此上升到更高一层的美的欣赏.

2.1编译系统的逻辑表现

计算机语言的编译或解释系统在生成机器代码时,并非对源程序做一一对应的翻译,而是要做各种加工,人们熟知的是优化处理,但有时也会画蛇添足.例如前面的表达式:?ALLTRIM(STR(pnFIRSTDATA)),“*”,ALLTRIM(STR(pnSECONDDATA)),;“=”,ALLTRIM(STR(pnFIRSTDATA*pnSECONDDATA))从逻辑上讲这个表达式也是丑陋的,例如ALLTRIM()和STR()的使用就有问题,悄悄的加上空格,再去掉它,真是糟糕.

2.2源程序语言要素的逻辑表现

源程序语言要素的选择,语句顺序,算法设计,类与函数的合理设计,代码在文件中的分布等都可以体现源程序的逻辑美学表现.完成某个程序功能,可有许多途径,例如在C/C++中,一个循环任务就可以选择for(),while,dowhile(),goto等多种语句,增一等工作可选a=a+1,a+=1,a++等,随意的选择定会让C/C++发明人失望.具体情况,需要合理选择才能体现出清晰的设计意图,同时也折射出逻辑的美.毋庸置疑,语句的顺序许多时候至关重要,另一些时候则无关紧要,但也有一些情况貌似无关紧要,却很有文章.假设有一个有关中学生身高的统计程序,将身高小于150厘米看作矮个,150~169厘米看作中等个,170厘米及以上看作高个,下面的(a)、(b)程序片段很有区别.函数与类的定义不仅影响它们的视觉美学表现,同时也对它们的逻辑美学表现产生影响,很明显,我们这里谈论的逻辑美学表现是源程序中蕴含的逻辑成分与人的逻辑思维的共鸣,可以想象,一个函数拥有成百上千条,甚至更多的语句,一个类有几百个成员那是一种什么景象,何止会引起视觉混乱,也很容易造成函数、类在逻辑含义上的失误.无论函数、类还是它们内含成分,采用逻辑美学准则去定义它们,能编制出无论视觉还是逻辑上都美的源程序.这不仅影响到人的工作效率,同样也影响到目标程序的效率.算法设计、代码在文件中分布等对源程序逻辑美学表现及效率的影响不言而喻.

3结语

软件工业进入二十一世纪,无论设计理念,设计工具,还是设计规模,都发生了重大变化.从设计规模上讲,现在每设计一个有用的程序都是一个工程,要涉及到许多文件,大量源程序代码,面对上万行甚至几十万行的源程序必须从视觉上、逻辑上全面考虑美学表现,符合美学准则的源程序才是易于管理,易于应用,富有效率的源代码.就让我们努力编写视觉优良,逻辑完美的源程序吧.

[参考文献]

[1]STROUSTRUPB.C++程序设计语言[M].北京:机械工业出版社,2002.

[2]PETZOLDC.Windows程序设计[M].5版.北京:北京大学出版社,1999.

[3]MICROSOFTCORPORATION.VisualC++2.0forWin32大全(三)[M].北京:清华大学出版社,1996.

作者:杨海鹰 单位:包头师范学院物理科学与技术学院

学术网收录7500余种,种类遍及
时政、文学、生活、娱乐、教育、学术等
诸多门类等进行了详细的介绍。

美学理论论文
@2008-2012 学术网
出版物经营许可证 音像制品经营许可证
主机备案:200812150017
值班电话
0825-6697555
0825-6698000

夜间值班
400-675-1600

投诉中心
13378216660
咨询电话
唐老师:13982502101
涂老师:18782589406
文老师:15882538696
孙老师:15982560046
何老师:15828985996
江老师:15228695391
易老师:15228695316
其它老师...
咨询QQ
89937509
89937310
89903980
89937302
89937305
89937307
89937308
业务
综合介绍
在线投稿
支付方式
常见问题
会员评价
官网授权
经营许可
关于我们
网站简介
版权声明
友情链接
人员招聘
联系我们