应对需求变化
首先要明白 需求 和 (代码)实现 是怎样的对应关系。
假设需求和实现是一一对应的。那么需求改变一处,代码也必然改变一处。
有人想要需求变了,却也不改写实现,是不符合逻辑的。
变化有三种,一句话:增删改。对三种情况作分析:
增:不需要改写原来的,而增加新的实现。
删:只需要去掉对应的部分。
改:改掉对应的部分。
因此,结论是,软件设计,应该满足在增加功能的时候,不修改固有代码这个原则。虽然删除需求的需求不多见~嗯~~~,这个其实是上一个规则的不同表诉。改,嗯~~~本质上也是第一个规则。
如何应对需求不断的变化?这是折磨软件设计者的难题。
需求变了,不改变实现是不可能的。我们要做到的是变化多少,改动多少,做到平滑的伸缩性。
要很好的实践这个标准,要求设计者:
1.把需求实现
2.把需求变化作为需求
比如要做个表格,原来三个字段,能满足用户的当前需求了。但是您也是知道的,用户9成9在将来会要求增加字段。这种对需求变化的需求,虽然是隐性的,但确实存在,某种层度上也不难预见,只是因为懒惰不去实现罢了。
回到原点,如果把需求变化的需求实现了,那么相对实现来说,需求就没有变化,不需要改动了。这是一个绕口的表述,但是表明了:
1.需求变化的需求不能都实现,只是相对性而言。
设计者何种程度上满足需求变化的需求,还是要具体项目具体实现,这是对软件维护阶段深入解读的结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)