从另一个考虑来看代码的风格
从另一个考虑来看代码的风格
相信大家对代码的风格都有自己的观点,都有自己的风格。但大家心目中最完美的一定是简洁,易读,高效率的。
但有时效率和简洁性、可读性是不可兼顾的。这就要看开发的目的是什么了。对时间要求不高的当然要注重简洁和可读性,而另一些要求速度快,或体积小的程序则可能更强调效率。
我想现今随着计算机存储器的飞速发展程序的体积越来越显得不重要了。记得当年我在大一时所用的计算机只有512KB内存那时写程序优势是要注重空间效率的,磁盘也很小,还是在一个工具下才实现800KB的空间,在我心里不知感谢过多少回那个共软件的作者,有时候为了节省内存不得不把一些东西搬运到磁盘上,等到使用时再装进内存。打伞使用的计算机是4MB内存的,第一次使用保护模式时,开辟了一块2MB的内存空间,我真是激动的老泪横流,而现今128MB内存满天飞。256MB也很多。我的一个朋友配了768MB内存还说要再添。感觉硬盘容量也飞速增长。30、40G的随处可见。刻录光盘6、7百MB的空间也够折腾得了。所以今天代码的空间效率日渐不很重要了。
而处理器的发展给我们带入了GHz时代,使我们有了全新的感受。另一方面处理器的发展已远远超出了软件的发展速度。时间效率也显得不是很重要了,当然不向空间效率重要性下降的那么明显(在有些时候时间效率还是很重要的,如多媒体,图像处理等等)。
现如今软件的复杂性使得软件通常都由多人开发才能完成。而多人开发的配合问题就摆在了我们的面前。说白了多人开发的配合问题主要就是代码的可读性问题。例如以下两段代码:
1)
var
r:integer;
begin
r:=(strtoint(edit1.text)+strtoint(edit2.text))*strtoint(edit3.text);
end;
2)
var
r,a1,a2,a3:integer;
begin
a1:=strtoint(edit1.text);
a2:=strtoint(edit2.text);
a3:=strtoint(edit3.text);
r:=(a1+a2)*a3;
end;
那个更容易理解呢?更直白呢?
当然是第二个。
再例如
1)
dim a1 as long
a1=text1.text
dim a2 as long
a2=text2.text
dim a3 as long
a3=text3.text
dim r as long
r=(a1+a2)*a3
2)
dim r as long, a1 as long, a2 as long, a3 as long
a1=text1.text
a2=text2.text
a3=text3.text
r=(a1+a2)*a3
那个更好呢?
之所以说Pascal语言很美就是体现在你必须按照比较规范的方式来写代码。在哪里声明,哪里定义函数,过程都要按部就班的来。不是说其他语言办不到,而是其他语言要求松一些罢了。
代码的得风格中可读性是十分重要的,不要自己耍小聪明。玩弄了一些花招技巧这是软件开发的大忌。记得当时在大学时代有的同学用TC写程序时往往是过了半年连自己都看不懂了,还要问别人。所以我们在写代码时除非是有特殊要求否则要尽量按照这个顺序来约束自己的代码,可读性、时间效率、空间效率。
以上仅是个人观点,望各位都能指点一二。共同为我们心中完美的代码风格而努力。
- · 使用winsock Api实现finger
- · 如何在delphi6中调试web程序
- · 读写CMOS内存
- · 《关于VisiBroker For Delphi的使用》(3)
- · Delphi 程序员代码编写标准指南
- · delphi函数参考手册
- · 个人观点随笔-RAD和面向对象
- · RAD与non-RAD
- · WebSnap 控件组简介
- · 用Delphi5.0实现注册表监视
- · 《delphi高手突破》节选一
- · 从 Form1.Caption = “Hello World”说起
- · 浅谈API HOOK技术(一)
- · 浅谈API HOOK技术(二)
- · 自动编号的存储过程
- · Delphi 6 Web Services初步评估
- · SQL SERVER 2000压力测试
- · Delphi系列谈之:Delphi中的静态属性及静态方法的实现
- · 《关于VisiBroker For Delphi的使用》(4)
- · Delphi6/7 中XML 文档的应用
- · 《delphi高手突破》节选二
- · 用DELPHI制作在线程序升级信息查询
- · 用Delphi产生一个最小的可执行程序
- · 计算出用字符串表示的数学表达式的值
- · Web Services 平台
- · Web Services体系
- · 为什么需要Web Service
- · 什么是Web Service
- · Web Services平台
- · 一个计算器的代码,欢迎大家点评
- · 鼓励,很多的,Delphi高手突破,外加冷水一瓢
- · Delphi的大Bug
- · Borland网上调查:请告诉Borland你在未来的Delphi和C++Builder版本中需要什么样的数据库开发特性
- · Borland 公布支持 Microsoft .NET平台产品策略
- · 准备迎接Kylix
- · Window SubClassing之另类运用(之一)
- · delphi窗体图体画法 之我见!
- · Delphi 类的静态属性
