关于代码复杂度的一点想法

       前几天一位同事X说起他对一个测试工具的改动,另几位同事觉得改法欠妥,大致认为他的改法比起惯用做法会增加额外的复杂度,后来我们又做了一些讨论,以下内容源自此次讨论以及后来我的一些想法。

       X后来提出一个观点是 这个程序本身并不复杂,所以这样做即使增加了更多复杂度但也不会带来什么问题。

我当时是用“最小惊讶原则”来回答他的,但后来想想并不是十分贴切。用以下内容应该更适合些:

      首先,你不知道以后会有什么“变态”的需求,而如果现在就随意增加复杂度等真的“变态”需求到来时,可能会使你完全不知所措;

      其次,假设惯用做法只对A模块复杂度+2,而他的做法会让A、B、C模块复杂度各+1(这里将复杂度简化为线性的且各模块之间是可累加),这样的话他的做法就会使程序的复杂度多+1。如果后面有人维护这个功能的话,本来可以2个小时做完的事情则可能会变成3个小时或更多,多出的一个小时做点更有意义的事情不是更好微笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值