文章指出,大家常说的“技术债”很多时候并非技术本身的问题,而是源于需求变更。作者用养仓鼠和来大象的比喻,生动形象地说明了当原始需求与后续变更的需求严重不匹配时,原本合理的架构会被迫修改甚至推倒重来,从而产生“技术债”。开发者在设计之初只能考虑当前需求,无法预知未来的多变性,而需求变更又是项目常态。文章引申出一种思考:既然需求总会变化,那么寻找一种能够灵活适应变化且不破坏现有代码的稳定性方法,或许是应对代码腐败的根本之道。
💡 **需求变更而非技术本身是技术债的主要诱因。** 文章通过仓鼠与大象的比喻,强调了当项目初期的架构设计面对突如其来的、不匹配的重大需求变更时,会导致现有架构被强制修改或推翻,而非技术实现上的固有缺陷造成了“技术债”。
🛠️ **开发者设计的架构局限于当前需求,无法预测未来。** 开发者在项目启动时,只能根据当时明确的需求来构建合理的架构。然而,“需求变更”是项目运作中不可避免的常态,这使得开发者在最初设计时就面临着无法预知后续“大象”或“鲸鱼”的挑战,这是一种普遍存在的困境。
🔄 **拥抱变化,寻求稳定适应的解决方案。** 文章提出,既然需求变更无法避免,代码注定会“腐败”,那么应对之道在于找到一种能够灵活适应各种需求变化,同时又能保持已有代码结构稳定性的方法。这种方法论的探索,是解决技术债问题的核心方向。
以前只是人云亦云地附和“技术债”,没细想,最近发现“需求变更”才是根源。
例如,领导说我们养个动物吧,比如仓鼠,然后你搭了一个小窝,结果领导牵来一头大象,你要么把窝改得不伦不类,要么拆了重盖。
这种需求与架构的不匹配,就会把原本良好的架构拉扯得稀碎。
浅聊一点技术债是怎么产生的?它可能是需求变更中一点点积累的,也可能是突然离谱需求导致实在没法适配的。
开发者面临的困境是,只能设计出符合项目最初需求的合理架构,没办法预知未知需求,但“需求变更”既合情合理也是常态。比如领导可能有一天会把大象换成鲸鱼。
所以,代码是注定会腐败的吗?
按常规思维来说是的,因为需求会一直变。但这也刚好暗示了应对方法:既然需求肯定会变,那么找到一种能适配需求多变,并且不会破坏已有代码的方法就好了,一种始终具有稳定性的方法。