“实现能力”与“设计能力” (100分)

  • 主题发起人 Nicrosoft
  • 开始时间
N

Nicrosoft

Unregistered / Unconfirmed
GUEST, unregistred user!
“实现能力”与“设计能力”
  Nicrosoft(nicrosoft@sunistudio.com) —— 2001.8.17
http://www.sunistudio.com/nicrosoft/

  我见过太多的代码(我自己以前也是),只注重实现功能。国内绝大多数的程序员
都以为实现了就成功了。在开始敲键盘之前,有多少人想过即将被创建的代码会有多少
的可维护性?是准备创建用完就扔的代码,还是需要不断升级、改进的代码?如果是需
要长期被维护、改进的代码,在最初的时候,如果只是注重实现,而忽略整体框架的设
计,那么最终等待程序员的只是无数的bug和灾难。
  其实,相对来说,实现是简单的。你能够实现的东西都是基于平台或者特定软硬件
环境的。你所实现的,只是因为平台提供给了你这样的功能而已,这个实现并不是你创
造出来的。而框架的设计就需要相当的经验。没有人可以一开始就完成一个优秀的框架。
  在一次工作中,要为Delphi写几个简单组件,组件类之间有继承关系(很简单,只
有两层而已)。对于这个非常微小的“框架”,在最初有了“想当然”的设计之后,就
开始动手写代码了。完成父类层的组件后,在写派生类的组件时,才发现当初的“设计”
存在问题。那时我奇怪自己当初怎么会有那么奇怪的想法,构建这样的框架。在写到派
生类组件时,才发现有些东西是那么的理所当然,而在最初设计的时侯的想法却与之相
反!于是,重新构建这些代码,幸好,代码量不大,即使重写,也没有花费多少时间。
  我想说的是,即使一个那么简单的框架,我是在第三次重写后,才将其确立下来。
同时,获取了宝贵的经验。设计的难处在于,人的思维习惯是从下往上,逐步抽象的。
但是,在类的框架设计中,去需要从上往下的设计,也就是逐步细化。而一旦在原始类
(如:VCL的TObject)的设计上存在问题的话,那么随着类层次的展开,问题将会逐步
放大,最后可能会导致整个框架的崩溃。这就要求设计者具有丰富的经验!
  我从不相信程序员的寿命只到35岁,也许35岁以后,实现能力(其实就是工匠能力)
有下降的可能,而设计能力是随着经验的增加不降反升的。这才是最宝贵的。
  国外的软件开发小组,一般的骨干都是40岁上下的人,那些才是大师级的程序员,
而所谓的过了35岁就不能当程序员的程序员根本没有资格被称为程序员。
  而软件工程是要将程序员变成编码员,变成流水线上的一环,设计工作由专门的
设计师完成(如框架设计师)。也许,分工细化是趋势,但是,我们是满足于做编码
员还是希望成长为设及师,取决于我们的眼光及努力。
  放开眼光,而不是将自己局限于、沉迷于“实现高手”。实现能力是基础,有一
定的实现能力才可能成长,但是,它只是必要条件,而不是充分的。否则,就象爬到
山腰就以为自己到了山顶,停滞不前了。那么,你只可能是编码员,你的程序寿命也
只到 35岁。
  努力积累经验,并且要学会积累经验。有句话说得好,聪明人与笨人的区别并不
在于其不犯错误。真正的区别在于,聪明人不会两次犯同样的错误。
 
希望下次 加上回车,好吗?
 
注意换行!
您老兄从CSDN又跑到这里来布道了,欢迎欢迎。



 
设计模式太重要了。
 
对初学者来说,实现能力很重要,这是基础
有一定基础以后,就要注意自己的设计能力了
有句话叫:“没有做不到,只有想不到的”
 
谢谢提醒,这里原来不会自动换行阿。。。
 
呵呵,Nicrosoft跑大富翁布道来了。
 
强烈同意!
 
各位分析高手帮忙出出主意:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=751557
急!急!!急!!!
 
学着点。。。
 
Nicrosoft:我很佩服你.
 
我受益非浅啊。谢谢了。以后记得加回车和来些经典的东西,让我们这些小鸟多学习了。
我知道你是大虾
 
实现能力很明显地重要的,我是个初学,我想做的有很多,比如我现在正努力学的VHDL
书上的编程语言,结构等说得很多,但我连那书中的软件都还搞不明白,哪里是语言编程
的,那有几个别的窗口,但却不知是何物[:)]
 
to 梁伟杰:我没有说实现能力不重要,否则不就成了空谈家了?[8D]
只是,在有了一定的实现能力之后,是否想过如何更上一层楼呢?还是满足于“实现高手”
 
已经换行了,谢谢各位提醒
 
我喜欢你的名字 我的名字是 bulletsoft
 
奈软布道
 
顶部