柚子Nan--回归原点

Everything can be as easy as you like or as complex as you need.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

来自 CodeComplete——体谅程序员!?

Posted on 2004-02-04 16:10  柚子Nan  阅读(834)  评论(0编辑  收藏  举报

一些程序员并不作准备工作,因为他们抵制不了立刻开始进行编码工作的渴望。如果你就是这种程序员,那我对你有两条忠告。第一,阅读一下下一部分工作的内容提示,或许你会从中发现一些你没想到的问题。第二,要注意自己的问题。只要创建过几个大的程序,你就会明白强调准备工作的必要性。不要忘记自己的经验教训。

强烈建议所有的开发人员阅读《Code Complete》

程序员处于软件开发食物链的最后一环。结构设计吃掉需求分析;详细设计者以结构设计者为食,而他自己又成为编码者的食物。
比较软件食物链和真正的食物链,我们会发现如下事实,在一个正常的生态系统中,海鸥以沙丁鱼为食,沙丁鱼吃鲜鱼,鲜鱼吃水虱,其结果会形成一个正常的食物链。在编程工作中,如果软件食物链的每一级都可以吃到健康的食物,其结果是由一群快乐的程序员写出的正确代码。
在一个被污染了的环境中,水虱在受到核沾染的水中游泳,鲫鱼体内积聚了滴滴涕,而沙丁鱼生活的水域又遭受了石油污染,那么,不幸的海鸥由于处在食物链的最后一环,因此,它吃的不仅仅是沙丁鱼体内的石油,还有鲜鱼体内的滴滴涕和水虱体内的核废料。在程序设计中,如果需求定义遭受了污染,那么这又会影响结构设计,而这将最终影响创建活动。这将导致程序员们脾气暴躁而营养不良,同时生产出遭受严重污染而充满缺陷的软件。

明确的需求是很重要的,因为:
明确的需求可以保证是由用户而不是程序员决定系统的功能。如果需求是很清楚的,那么用户可以对其进行评定,并确认自己是否同意。如果需求不很清楚,那么程序员在编程过程中就不得不自己决定系统功能,明确的需求防止对用户需求进行猜测。
明确的需求也可以避免引起争议。在开始编程之前,系统的范围已经明确确定了。如果在编程过程中,两个程序员对系统干什么有争议,那么只要查阅一下写好的需求分析,问题就解决了。