如何写出优秀的子程序

正如人月神话说讲的那样,程序员的觉得很爽的事情之一就是看到自己写的程序被别人调用。

当然,程序员觉得很爽的另一件事是,在难题面前,找到一段可以用来解决难题的代码。

但是这件两全其美的事却会在程序发生改变时蒙上一层阴影。

稍有不慎,别人对你感激就会编程怨恨,而你帮助就编程别人的负担。

 

所以当你要改动一个被别人调用的程序,请千万要小心。但是程序的改进又是不可避免的,他可能会有bug,可能不能满足一个新的需求,而满足这个需求又是情理之中的事,修改你代码容易的像喝下一口水。不是所有的改动都是有风险的,只要我们严格遵守一定的规则,我们一定可以写出更好的子程序。

 

在这里,我主要探讨如何才能写出优秀的公共子程序。

 

首先,要从设计开始。

  1. 输入和输出必须要清除,从程序名字,变量的名字,返回值的定义,都不能模糊。
  2. 程序的算法尽量的简单,出错的时候,调用者不必费力的理解你代码;

然后是开发:

  1. 程序应该是内聚的,所有代码为了一个目而存在。如果你写了一个剪贴函数,那么应该吧粘贴和剪切分开;
  2. 程序应该是独立的,除了输入外,它不需要别的东西,除了输出之外,它不修改任何东西。
  3. 它要尽可能的小,大在很多时候都是令人向往的,但子程序必须要尽可能的小。
  4. 把错误扔出来,别吞掉,别试图去recover。

接着是测试:

  1. 尽量测试所有的输入,保证得到预期的结果;
  2. 从代码上保证,输入任何结果都不会导致意外的结果;因为你的意外可能会被调用者当成by design,当你后来修改了它的时候,调用者就会抓狂了。

最后是修改,请记住,向前兼容,表现在:

  1. 不要改变函数的名字;
  2. 不要改变参数的定义,增加或减少参数;
  3. 不要改变算法,除非它有不能fix的错误;
  4. 不要删除和修改原有的错误信息,虽然你可以增加新的。

最后祝所有的同仁工作愉快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值