代码和人,有一个能跑就行。为啥程序员总写dirty code
在程序员行业有一句:“代码和人,有一个能跑就行”。这句话对吗?为什么会产生这个问题?
哪些代码能跑就行?
有一些代码,真的就是不能动,一动就崩。里面逻辑复杂, 代码冗余,具备了一些不良代码的特征,但是它就是能跑,就是能支撑业务。有一个通俗的称谓为“屎山代码”。
哪些是dirty code
- 缺乏注释和文档:完全没有注释或者复杂逻辑无文档
- 命名不规范:变量、函数和类的命名不符合约定或没有约定 例如a,b,c,变量用动词,方法用名词,驼峰下划线混用等
- 代码重复:同样的代码逻辑在多个地方重复出现,增加了维护的难度。 代码不做抽象,公共方法复制拷贝,一个方法复制多份
- 复杂的逻辑:代码逻辑过于复杂,缺乏清晰的结构和模块化设计。
- 硬编码值:使用硬编码的数值或字符串,而不是使用常量或配置文件
dirty code是如何产生的?
时间压力
项目不给足够时间,倒排期工程,项目经理整天催催催,老板天天问进度。预计5天,报了6天,砍到3天,1天的时候问做到哪了,2天问怎么还没做完。 你让我抽象,你让我搞架构,但是不给我时间,写出来的代码优先要进测试,提了bug再改改呗,反正缝缝补补又3年。
过于自信
自认自己的代码足够牛b。
不需要注释就可以看懂,不就是几个变量名吗?别人理一理逻辑就可以了,我的代码自己可以解释自己。 不需要抽象,这里都是一整套逻辑的。什么?你也要用这套代码,自己复制出去,别动我代码。我们要签订《代码互不侵犯条约》。
经验不足
新手小白能完成任务就不错了,什么鲁棒,什么设计模式,完全不需要考虑。一个函数500行?抱歉那是这个功能的瓶颈,不是我的瓶颈。
企业文化,标准/规范缺乏
你还记得你上一次做code review是啥时候吗?在夜深人静的时候,有没有回想每天996为啥老板还没开上大奔?
老板要的是结果,不是过程,代码写的再好,最后业务不核心,不干掉你干掉谁?
防御型编程
这个不多说了,懂的都懂。
#牛友故事会#