编码之外

        中国的程序员的问题,ok.也许我没有资格评论,我也是一个中国的程序员,而且是很不合格的一个.广义的程序员分三种:1.coder,2.programmer,3,architect.也就是,代码输入员,程序编写员,系统架构师.现在很清楚我想说什么了,咱们大部分人还是coder,我们要变成programmer甚至architect!但是我自己也不知道怎么变成….不过我是用c语言以及脚本语言,汇编语言的就很少牵扯architect的问题了.

       按照一个面向对象程序员的发展来说,coder->programmer->architect基本都是这样的发展了,但是毕竟还有其他的一些情况了.对于底层的呢coder->programmer->hacker or cracker.说多了,仅仅是我的观点.我写这些一定是事出有因的.今天在公司正在准备明年的项目,在做需求分析和概要设计的时候,我们几个讨论没有什么结果,就请来了一个作了十几年java的一个”老”程序员.他的到来,让我一个底层的程序员感觉到软件工程这几个字(我对软工一窍不通),分析问题井井有条,叙述解决问题的方法是清晰简洁.在公司的白板上画了一幅又一幅烂熟于心的结构,让整个讨论顺利的进行,并且达到了一个新的高度.

       在我心中他就是一个architect(确实也是),他整个讨论中很少触及代码实现,但是他的话让我觉得代码是确实整个系统的很小的一部分,尽管在实际上程序就是代码构成.真正让我感觉我现在只是个coder就是他说的:”文档的重要性”.在讨论即将结束的时候,他要求做java的那个程序员把今天讨论的结果整理一下,再用文裆把整个系统的基本结构描述一下,为我们下次的讨论做好准备.但是那个程序员愁眉苦脸,说我这两天我写文档都快写吐了,(实际上他写了8页的word),老java程序员也就是architcet告诉他:

年轻人,你知道对于一个优秀的系统,编码之外的事要比你认为的编码重要的多!没有优秀的文档支持,随之而来的就是,无尽的bug,甚至是架构上的设计失误,返工是不可避免的.编码的时间最多也就是20%的时间,更长的时间我们就是在写文档!这个写文档就是,我们现在做的需求分析,概要设计,详细设计!

然后,他就举出了几个例子,拿出了一个概要设计,在我看来那份概要设计,对我来说比详细设计还要详细,但是那只是他所谓的概要设计.他给我们讲完了以后,用ROSE给我们演示文档生成代码,这个虽然我造就知道,但是第一次看,真的很疯狂!真的让我明白在面向对象程序里面,编码之外的架构师为什么有那么高的身价,而我们这些coder为什么被称为IT民工了.当然我是做底层的,我的不会去管java的事,但是由这段谈话,我真正理解了编码之外的事情!大家想想看,在我们编程的时候,是否为我们快速完成了一项功能而欣喜,但我们欣喜的代价就是处理bug的痛苦.真心希望中国和我一样的初级coder们能够完善自己的文档,完善自己的思想.程序是衣,算法是魂,那么架构就是(我还没想好)…

3 Responses to “编码之外”


Leave a Reply