Programming 版 (精华区)

发信人: SwordLea (飞刀李), 信区: Programming
标  题: 编码的境界——从MOC到COM(原创).3
发信站: 哈工大紫丁香 (2003年11月27日09:16:01 星期四), 站内信件



    好了,现在用户终于满意了。开始测试、编译Release版、发布前测试、
制作安装包、截图、制作帮助文档……有人开始抱怨了:“Faint !这么简
单的程序,还要制作安装包,还要写帮助文档?太搞笑了吧?”

    不错,要有安装包和帮助文档。而且,还应该有更为详尽的设计文档,
程序与软件的最大区别就在于此。至于相关文档所应包括的具体内容,我
不敢讲得太多,否则本文很有可能被转载到SoftEng 版,招来Sun 等软件
工程专业人士的广泛批评。

    在你向世界问了一声好之后,大约花费了10分钟的时间,完成了程序
的编码工作。随后用了几天的时间,在朋友们的帮助之下,完成了相关的
文档制作。似乎是历时了半个月之久,凭借你的反复纠缠和对未来版本乌
托邦似的美好描述,用户终于付清了软件的开发费用——8块钱。

    一个月以后的上午,你坐在楼顶的平台上,喝啤酒吃花生米,照在你
肩上的阳光令你莫名其妙地想起了《The Shawshank Redemption》中RED 
那段著名的台词:

    We sat and drank with the sun on our shoulders, and felt like 
free men. We could'a been tarring the roof of one of our own houses. 

    正当你尽情享用着你的第一个软件带来的全部收入的时候,手机的美
妙铃声响起,看到来电显示的那个熟悉而又陌生的号码,你试探着问了声:
“Hello ?”

    ……

    许多年以后,当某个出版社请你写一本软件生涯的回忆录的时候,关
于这个楼顶的电话,你或者会这样来描述:

    “这个电话不仅毁了我的整个上午,也几乎毁了我的后半生!——用
户说,那个显示命令行参数的软件可能要做一点很小的修改,请我马上赶
到。”

    大多数情况下,用户会在上线使用的前一天甚至前一小时开始正式测
试我们的软件产品,而且往往是用户已经觉得一切正常了,随心所欲地试
了最后一次,却发现了这个软件根本不是他想要的!用户的想法一般都很
天真,他们认为既然已经建成了一座摩天大楼,在上面再加一个微不足道
的阁楼非常容易。而事实情况却是这样:我们只造了一个小木屋,用户最
后让我们加的那个阁楼才是一座真正的摩天大楼。

    用户面带歉意对急促地喘息的你讲,这个软件有个小错误,它只能显
示命令行的第一参数。用户永远是对的,虽然用户总是根本不知道自己真
正想要的是什么。

    源程序是在用户的机器里找到的,你自己的那一份在昨天硬盘升级的
过程中不知去向了。冥冥中似乎有一种规律:只有在按Shift+Del 删除了
某个程序的源代码之后,才会被要求对它进行修改,哪怕你删除的是MSDOS
1.0 版本上才能运行的程序。所以我现在还保存着1995年给一家校办酒店
用Clipper 编写的收银程序,而那家酒店在1997年以前就已经不见踪影了。
有时候,源程序不仅是资源,也是程序员的护身符。

     凭借程序中各条件分支的注释,你很容易就找到了应该修改的地方,
这回时间紧迫,你没有再写新的注释,就把程序改成了下面的样子:
    void main(int argc, char *argv[])
    {
        printf("\n");
        if (argc >= 2)
           printf("%s\n", argv[1]);
        if (argc >= 3)
           printf("%s\n", argv[2]);
        if (argc >= 4)
           printf("%s\n", argv[3]);
        if (argc >= 5)
           printf("%s\n", argv[4]);
        ……
        if (argc >= N)
           printf("%s\n", argv[N]);
        else        /* 没有参数 */
        {
           printf("%s\n", "ECHO is off.");
        }
    }
    
    由于暂时没有找到命令行下究竟可以有多少个参数的资料,而此时的你
还没有读到for语句及do while语句的章节,所以,这里的N非常之大,也许
是说现在这段程序已经颇为壮观了!这段硕大的程序可以把命令行的各个参
数分成多行显示。用户运行了一下,说,好象是没什么问题了。

    终于松了一口气,但谁又知道,这刚刚是一个恶梦的开始……
    
    (to be continue ...)

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.246.238]
※ 修改:·SwordLea 於 11月28日09:02:54 修改本文·[FROM: 202.118.246.238]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.180毫秒