选择显示字体大小

“实现能力”与“设计能力”

版权所有:nicrosoft
文章来源:东日制作室

  我见过太多的代码(我自己以前也是),只注重实现功能。国内绝大多数的程序员都以为实现了就成功了。在开始敲键盘之前,有多少人想过即将被创建的代码会有多少的可维护性?是准备创建用完就扔的代码,还是需要不断升级、改进的代码?如果是需要长期被维护、改进的代码,在最初的时候,如果只是注重实现,而忽略整体框架的设计,那么最终等待程序员的只是无数的bug和灾难。

  其实,相对来说,实现是简单的。你能够实现的东西都是基于平台或者特定软硬件环境的。你所实现的,只是因为平台提供给了你这样的功能而已,这个实现并不是你创造出来的。而框架的设计就需要相当的经验。没有人可以一开始就完成一个优秀的框架

  在一次工作中,要为delphi写几个简单组件,组件类之间有继承关系(很简单,只有两层而已)。对于这个非常微小的“框架”,在最初有了“想当然”的设计之后,就开始动手写代码了。完成父类层的组件后,在写派生类的组件时,才发现当初的“设计”存在问题。那时我奇怪自己当初怎么会有那么奇怪的想法,构建这样的框架。在写到派生类组件时,才发现有些东西是那么的理所当然,而在最初设计的时侯的想法却与之相反!于是,重新构建这些代码,幸好,代码量不大,即使重写,也没有花费多少时间。

  我想说的是,即使一个那么简单的框架,我是在第三次重写后,才将其确立下来。同时,获取了宝贵的经验。设计的难处在于,人的思维习惯是从下往上,逐步抽象的。但是,在类的框架设计中,去需要从上往下的设计,也就是逐步细化。而一旦在原始类(如:vcl的tobject)的设计上存在问题的话,那么随着类层次的展开,问题将会逐步放大,最后可能会导致整个框架的崩溃。这就要求设计者具有丰富的经验!

  我从不相信程序员的寿命只到35岁,也许35岁以后,实现能力(其实就是工匠能力)有下降的可能,而设计能力是随着经验的增加不降反升的。这才是最宝贵的。

  国外的软件开发小组,一般的骨干都是40岁上下的人,那些才是大师级的程序员,而所谓的过了35岁就不能当程序员的程序员根本没有资格被称为程序员。

  而软件工程是要将程序员变成编码员,变成流水线上的一环,设计工作由专门的设计师完成(如框架设计师)。也许,分工细化是趋势,但是,我们是满足于做编码员还是希望成长为设及师,取决于我们的眼光及努力。

  放开眼光,而不是将自己局限于、沉迷于“实现高手”。实现能力是基础,有一定的实现能力才可能成长,但是,它只是必要条件,而不是充分的。否则,就象爬到山腰就以为自己到了山顶,停滞不前了。那么,你只可能是编码员,你的程序寿命也只到 35岁。

  努力积累经验,并且要学会积累经验。有句话说得好,聪明人与笨人的区别并不在于其不犯错误。真正的区别在于,聪明人不会两次犯同样的错误。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons