为什么代码会腐败?原本好好的代码是怎么烂透的?

查看 88|回复 15
作者:muchan92   
以前只是人云亦云地附和“技术债”,没细想,最近发现“需求变更”才是根源。
例如,领导说我们养个动物吧,比如仓鼠,然后你搭了一个小窝,结果领导牵来一头大象,你要么把窝改得不伦不类,要么拆了重盖。
这种需求与架构的不匹配,就会把原本良好的架构拉扯得稀碎。
浅聊一点技术债是怎么产生的?它可能是需求变更中一点点积累的,也可能是突然离谱需求导致实在没法适配的。
开发者面临的困境是,只能设计出符合项目最初需求的合理架构,没办法预知未知需求,但“需求变更”既合情合理也是常态。比如领导可能有一天会把大象换成鲸鱼。
所以,代码是注定会腐败的吗?
按常规思维来说是的,因为需求会一直变。但这也刚好暗示了应对方法:既然需求肯定会变,那么找到一种能适配需求多变,并且不会破坏已有代码的方法就好了,一种始终具有稳定性的方法。

需求变更, 技术债, 架构不匹配

GuangXiN   
你找不到这种方法
Configuration   
一切根源在于领导的"这个功能明天一定要上"
iugo   
要想不烂,就必须定期花时间重构,但是重构这件事在管理者看来是没有收益的,所以大部分人选择不做,“暂时能用就好,烂的时候说不定我都走了”
julyclyde   
不单是需求变, 技术也在变. 依赖在变, 语言也在变.
代码也应该跟着变化.
snitfk   
设计缺乏
重构缺乏
每天只是疲于奔命
qiumaoyuan   
交付速度和技术债这两者是不可能两角。只能选其一。
CaffreySun   
欢迎讨论 https://ruby-china.org/topics/44005
qiumaoyuan   
最近在深入学习技术债的知识,有一本书特别好《管好技术债 低摩擦软件开发之道》,中文翻译的不是很好,有能力建议阅读英文书。
本质上软件系统是与其所在环境强绑定的,当环境发生变化时(如需求变化)就需要对系统进行调整,如果不及时调整就会与环境不适配,也就是你所说的“腐败”。
qiumaoyuan   
至于楼主说的“变化”,我认为其实也早有答案:不为未来设计的代码最简单,最简单意味着容易应对变化。而为未来设计的代码,往往会预测错未来。而真正的未来到到来的时候,不符合当下真实需求的、以前的一切预先设计都会化作阻力。
不过真能做到这一点的前提还是得有能力写出干净的代码,掌握上面链接里提到的能力,让代码全面贴合当下的需求,没有半点预先设计,也没有半点结构上的混乱。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部