QT 滥用信号槽

背景

最近公司培训写项目用的QT,一直觉得QT的信号槽是个好东西,编程效率很高。

情况

导致我一直盲目的使用信号槽。也不是不知道信号槽的执行效率相比直接调用而言低很多(10倍左右),只是觉得又不是特殊环境,就一直滥用信号槽,其实很多地方,直接调用就行,但是脑子已经僵化,闭着眼就用上信号槽了。

后续

后来在代码互审的时候,对方提醒了我一句,说我信号槽用的太多了,信号槽应该是用于两个互相关系不大(耦合低)的类之间。我当时还是没当回事,还说了句用信号槽可以避免存储对应的变量来搪塞过去。

问题出现

如今还是这个项目,只不过现在这个功能需要的精度比较高,而且是在短时间内大量重复执行,信号槽低效率一下子就暴露出来了,导致误差越来越大。我看了下代码,发现其实完全可以直接调用,也并不是要专门储存对应的变量,或者其实已经储存了。

反思

一下子让我感到汗颜,坐立难安。我没想到我的思想已经如此懒惰。前期偷下的懒,后期都是要还的,而且是百倍奉还。无论是架构设计,还是逻辑处理,都应尽早想全、做全,万万不可抱着“暂时就这样用着吧”、“后面再有额外需要,再抽出来吧”、“这里有点问题,暂时简单处理下,后面再堆逻辑的时候再处理”等等这种想法去做任何事。以此文章,警惕自己。

posted @ 2021-11-10 22:24  抚琴思伯牙  阅读(189)  评论(0编辑  收藏  举报