目前位置: VCer资源中心 >>> VCer文章 >>> 软件工程

[本帖已阅读3269次 分值110 回复1次] 张贴资源 发回信箱 控制面板

白乔原创:艺术编程之C++篇

提供者:bluejoe 张贴时间:2004-03-04 15:29:19.0 出处:vcer.net 作者:不祥

白乔原创:艺术编程之C++篇(2004-03-04 15:29:19.0)


白乔


 
级别: VCer师长
头衔: VCer创始人

经验: 21093
作品: 513
分会: 华北分会
注册: 2003-12-01 09:20:32.0
登录: 2008-11-17 19:35:24.0

0 引言

做“编程的学问”?这绝不是小题大做。中国的程序员有的是,但他们程序的质量往往并不能和他们的智商相提并论。中国有句老话叫“踏踏实实做事,认认真真做人”,本文不想提太多的时髦的软件工程理论,而只想就程序员的基本功——“编程”一一展开篇幅,让那些聪明的程序员从小事做起,从点点滴滴做起,写出更有用的程序。

本文着重讨论软件编程的艺术(“不要和我谈艺术”,谁说的?!),作为例子,本文将选取高结构化的C++语言作为实现语言。

本文部分内容参考《高质量程序设计指南——C++/C语言》(林锐 著)和Rational Unified Process文档《Java 编程指南》(Scott Ambler 著),感兴趣的读者可以和笔者联系。

0.1 何为“高质量的软件”——软件的质量属性

何为“高质量的软件”?一个功能性很强的软件并不一定高质量,同理,一个很厉害的程序员往往也不是“最好的”,“高处不胜寒”的程序员往往是最寂寞的,对于民族程序员群体来说,他们正如流星一样耀眼,但是他们也正如流星一样短暂、一样悲哀……

一个程序员的代码,不能为他人所读懂,不是一件光荣的事。这样的程序可读性也见一斑,更谈不上“高质量”了(可笑的是,总有这方面的“牛人”藉以自己“高深”的程序而自豪)。

软件的质量属性很多,以下是最突出的,也是最容易让人所理解的:

  • 艺术性(artistry)。你的程序是否看起来很“美”?写起来、读起来是个什么滋味?是享受吗?
  • 鲁棒性(robustness)。打个通俗的比方,把你的程序扔进-20℃的冰箱里,它会正常工作吗?会不会死机?
  • 可用性(availability)。你的程序有用吗(当然有用,不然要编它干嘛?注意:这里只是相对别的应用和程序员而言)?别人拿到你的源码或二进制代码,能在此基础上做二次开发吗?
  • 效率性(efficiency)。你的程序运行速度如何?快吗?

不管那些“高手”同意不同意,笔者认为,软件的高质量即至少应包含以下四个方面:

  • 好的艺术性。即“美”。
  • 强的鲁棒性。即“稳”。
  • 好的可用性。即“有用”。
  • 高的效率性。即“快”。

0.2 软件的质量平衡点

为什么不是“最美”、“最稳”、“最有用”、“最快”?原因很简单,没有“最好”。程序员很有必要在各个质量属性之间找到一个质量平衡点。

最快的程序,它的移植性(即对其他环境的兼容性)并不是很好;而最稳的程序,其效率往往是不是很显著。程序员将自己的代码过分地艺术化,就像花大部分的时间去装璜马桶,并不总是很划算的事。

以下的篇幅将告诉你如何正确地、合适地做好“编码的学问”。

《高质量程序设计指南——C++/C语言》(林锐 著)

《Java 编程指南》(Scott Ambler 著)

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1046761982608.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

1082687209616[385,308字节]

得意,我用他的代码;

自豪,他用我的代码!

[回复该贴] [加入个人书签]
[连载系列]

[1] 白乔原创:艺术编程之C++篇
[2] 白乔原创:艺术编程之C++篇[2]
[3] 白乔原创:艺术编程之C++篇[3]
[4] 白乔原创:艺术编程之C++篇[4]
[5] 白乔原创:艺术编程之C++篇[5]

[投票结果]

A: 评分 10 100% (3 票)
B: 评分 5 0% (0 票)
C: 评分 0 0% (0 票)
D: 评分 -5 0% (0 票)
E: 评分 -10 0% (0 票)

 


re:白乔原创:艺术编程之C++篇
上文中的美 ... 好像很难..

Bccv 于 2004-04-07 08:57:55.0 编辑 [回复该贴]