小天管理 发表于 2024年7月13日 发表于 2024年7月13日 从帖子 https://v2ex.com/t/1056990 吐槽说弱类型代码不易维护启发。python 的 list-dict ,php 、js 的 array ,都能往里面塞各种类型任意对象。这时候就是一种功能逻辑实现混淆副作用。于是,有经验的动态类型语言程序员,都会有“防御型”编程的习惯,比如在编写代码之前先检查校验一遍传入数据的类型是否符合接下来要编写代码的数据类型要求。这是很容易解决的,真正麻烦的是遇到功能实现混淆在一起时硬耦合的情况,就像一个有聊天与截图功能硬耦合的软件,当我单纯只想要截图功能时还是不得不附带安装这个聊天功能一样恶心。比如处理订单导出需要遍历订单数据,处理订单不同用户但同一小区地址合并数据的逻辑也需要遍历订单数据,于是程序员决定在处理订单导出的遍历里也处理订单小区地址合并数据,遇到特殊情况特殊处理,然后他就写了一堆特殊处理的代码,这就是让人恶心的功能实现混淆达成了硬耦合。强类型静态类型都会有这些问题,还很常见,解决办法没有银弹,只能是 code review ,与经常性重构,才能保证代码不会腐败。如果说接过的多手代码,从不重构,已经完全腐败,无法重构,那确实除了屎上雕花,祈祷不出 bug ,没有别的办法。
已推荐帖子