大厂里难看的代码
- 1 min我最近接一个任务,就是把 Kafka 的一个 topic 重命名,用新的命名规范。
但为了不影响现有的 topic consumer,新旧 topic 要同时支持,直到旧 topic 再没有 message 才可以停止。
所以,代码会有一个过渡期,在一个版本里,有新旧两套逻辑在跑。
本以为这是个简单的差事,谁想到,代码已经有两个版本的逻辑在跑,也就是旧1和旧2,旧1 是新一点的版本,原本就没有迁移干净。
现在我要创三个版本…代码当然会很难看。
为什么会出现这种情况?其实还是沟通问题。有人在公司架构提交了 RFC,提出要更新命名规范,其实是为久远一点的将来打算的,但是没有写清楚迁移时的考虑。
我们部门的主管按照常理推断,通过审核的RFC,就应该立即执行,于是我分配到的任务就是去执行。
于是我就很崩溃。旧1 和 旧2 的代码已经很难理解,我还要加一个更难的,这让我很难办。
我把代码的情况后反映给主管,主管去跟 写 RFC 的人撕逼,最后还是我主管赢了,于是我要加第三个版本。
这个时候,我的策略就是沟通,尽量在代码里把要改的东西在Slack channel上讲清楚,跟大家取得一致就可以了。
代码总是会难看的,我也想不到更好的解决办法。只能 live with that.
原来,太过追求完美,也会是一种浪费。