注重实效的偏执

62 篇文章 1 订阅
62 篇文章 1 订阅

有时候大多技术人员自己的不可能出现某些问题而确信不疑,就像他们相信自己所写的代码一样,不可能没有按照自己的意思执行某些功能 。

但现实往往是比较公正的,就像在《程序开发心理学》里提到的一样的观点,“你不可能写出完美的软件,因为完善的软件不存在”。那如何将这错误的直觉转变从而有利于自己开发呢?

在实际的开发过程中,我们都要时刻对接其他同事写的功能、接口以及第三方的模块,相对于第三方还好一些。其他协作伙伴有一些代码的实现方式、编码规划以及业务逻辑和自己的方式不太一样,

那么我们需要怎么应对呢?高效的程序员通常会采用防卫性的编码,因为他们在某种程序上也不大相信自己代码,他们总是按着合约设计编程,出现问题时按着合约设计来检查,从测试者的角度分析问题、解决问题。

功能与调用着的合约指的是如果调用都满足了被调用功能的所有前置条件,则被调用 功能保证在其完成时、所有后条件和不变项将为真。

举例说明一下,比如说在方法a中调用有一个方法是计算平均数的方法b,考虑一个情况,计算平均数不应该为0, 那么参数校验应该是在调用者a方法进行校验,还是应该在被调用者b方法校验?

正常的情况下应该是在调用者处进行校验,通过早发现早诊断要比运行计算时再发现要好的多,另外,被调用者不确定所有传给他的参数是什么,如果过多的参数判断就将使功能代码更加的职业不再单一。

合约有一种主义不变项,指的是任何情况下不能违反正常的业务逻辑、事实情况。书中举了一个例子,说的是有一张消费卡,同一条消费记录不能两次记录到账户中,即使其他任何失败,其结果都应是不处理,而不是

记录两次重复的记录。以这个为原则更能清楚的指导开发出来的软件更合乎业务逻辑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛慢慢向上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值