知乎热议:为什么国内程序员不喜欢写单元测试?

从本质上,我觉得还是中国互联网公司太多太卷了,公司业务之间竞争的太厉害,很多产品同质化太严重。你们公司的产品比我多一个功能,那我的产品恨不得比你多十个功能,这种在产品层面堆功能吸引客户的逻辑,间接的也给程序员带来了巨大的开发需求,从公司业务发展的时间紧迫度来讲,不愿意给程序员写单测的时间,毕竟写单测代码写的再多,又不算你的个人绩效,这种费力不讨好的事情,那肯定没有人做。

img

国内很多互联网公司,说实话,都是业务趋向逼着走的,公司一切事情和优先级的安排都是以业务结果为导向的,这在创业公司内部,这种氛围会更加的突出。往往产品层面今天需要一个功能或者需求的时候,科学的讲,人力排期明明需要 2 周人日,但公司恨不得你明天就搞出来,立马上线。

对于程序员来讲,本身程序员开发功能的时间已经不够了,再让程序员写单测,换做是谁,也受不了。其实不是国内程序员不想写单测,而是开发时间真的不够,这也就导致大家更倾向于直接写业务代码,这样能快速交付。况且,有些公司对于代码质量的要求并不是特别高,主管可能更关心的是功能能不能按时上线,代码能用就行。

img

但从科学的角度来讲,经过我这几年数据库内核研发的经验,程序员写单测,不仅不会 Delay 项目精度,反而能够加快功能研发进度。

写单测的核心逻辑,本质就是帮助程序员发现自己代码 BUG 的一个过程,测试 case 写得越丰富越详细,那么你开发的功能上线出错的概率就越低。**如果你有很多 BUG 在功能上线之后才出来,你投入的人力排查成本、公司产品功能延期的成本、以及你排查后修复的成本,远远大于你最开始写一个单测的成本。**你想想,突然有一天,老板告诉你开发的一个功能在客户现场有问题,客户现场的软件和网络环境非常差,这个问题你怎么排查都排查不出来,同时客户那边的业务催得又急,我相信你此刻的心态绝对会爆炸。

img

一般写单测有三种类型:

  1. 单个类的测试、主要是对类的方法进行测试,包括方法不同的输入,以及实际输出是否和预期的结果一致、非法参数的处理逻辑。这种测试类型的目的最清晰,最直接。
  2. 模块化测试,有时候一个功能逻辑,会涉及到好几个类,测试的时候,需要将这几个类一起进行测
  3. 集成测试,一般就是一个功能整条链路端到端的测试。

单个类的测试逻辑最可控、最清晰,同时即使逻辑有问题,也能够立马排查出来。所以一般写单测建议是对新增类的逻辑来进行单测和看护。

最后寄语

  1. 如果我的回答对你有启发,欢迎来一波三连、点赞、关注、收藏等,捧个人场,就是对我最大的鼓励和支持!!!没赞,我更新动力不足啊~~

欢迎关注我的公粽号【雷克分析】,更多最新内容和干货,第一时间收到。我整理了很多学习资料,私信“命令、提效、数据库、calcite、提示词”等相应关键字,即可获取对应的学习资料。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值