找出易改变的区域
优秀设计师的一项特质:对变化的预期能力
好的一项设计最重要的挑战之一就是:适应变化
目的是:把不稳定的区域隔离出来,从而把变化的影响限制在一个子程序内部
一、可采取的措施:
- 找出看起来容易变化的项目
- 把容易变化的项目分离出来
- 把看起来容易变化的项目隔离开来
二、容易变化的区域:
1、业务规则 这是很容易成为软件频繁变化的根源,应对它进行封装,而不能遍布整个程序
2、对硬件的依赖 主程序不直接与特定硬件连接,而是通过一个硬件接口子系统,利于调试后硬件兼容
3、输入和输出
4、非标准的语言特性
5、困难的设计区域和构建区域 把它封装隐藏起来,因为这些可能因为设计太差而要重做
6、状态变量 比如我们常用bool型表示状态,但如果后期要增加第3种状态,就要修改很多地方,但如果使用枚举修改就会更简单
使用状态变量时增加至少两层的灵活性和可读性:
- 不要使用布尔型做为状态变量,请换用枚举型,给状态变量增加一个新状态是很常见的
- 使用访问器子程序取代对状态变量的直接检查,外部通过检验访问器而不是检查状态变量进行判断,使程序能够适应更复杂的状态情况。
7、数量的限制
三、预料不同程度的变化
虽然对可能的变化做出设计是种好的策略,但考虑投入与产出比,一个原则是:考虑潜在变化的设计投入与发布变化的可能性要成正比,最终达到变化的影响与发生的可能性能反比。
如果一个变化特别容易发生而又容易做出计划,就应该在上面多下功夫。
不要把过多精力发生在不太可能变化而且又很难做出设计变化上。
找出容易变化区域的一个好方法是:首先找出程序中对用户有用的最小集,它构成了系统的核心,不容易发生改变。接下来用微小的步伐扩展这个系统。
通过首先定义清楚核心,你可以认清那些属于附加功能,把它提取出来,并改进隐藏。
通过这段时间的阅读,最大的体验就是:
过往的项目中,我们只考虑了系统功能性的需求,对扩展性、可靠性、性能方面的考虑几乎没有,这样也造成了后期维护工作量大、困难、系统不稳定等多种并发症。