我们的目标不是理性的去寻找最佳设计,而是找到一个够用的设计。只要能满足需求,令人满意,就是够用的设计。
与其将软件架构视为一种设计优化,不如通过强化以下方法来寻找够用的设计。
将解决方案看成实验
架构师不是无所不知的技术先知。应该把每个可能的解决方案都看成待验证的实验。验证的速度和效率越高,找到合适的组合结构的时间就越短,利益相关方就能越快受益。
设法降低风险
架构是软件系统的基础。如果架构出错,那一切都完了。架构师必须时刻考虑哪些地方可能出错,并据此开展设计。根据风险决定接下来设计什么。
努力简化问腿
简单的问题通常也有简单的解法。简化问题的方法很多,比如减少利益相关方的数量可以减少冲突的观点。再比如增加或减少约束条件,关注问题的子集,也可以降低复杂度。识别常规问题也是一种方法,常规问题通常有现成的解决方案。找出常规问题,然后运用集体经验解决。
快速迭代学习
我们学习得越快,就探索得越多,对解决方案也就越有信心。如果有可能失败,越早知道就好。失败得越快就学习得越快。设计周期太长往往是因为目标过于宏伟抽象,相比之下,我们更喜欢能产生具体成果的频繁迭代设计。
同时考虑问题和解决方案
在《Notes on the Synthesis of Form》一书中,展示了如何一边考虑解法,一边定义问题。问题的边界是由可能的解法勾勒的。为了理解问题,我们必须探索各种解决方案,而为了更好地探索解决方案,我们又必须加深对问题的理解。设计软件架构需要我们同时考虑问题及其解决方案。在架构设计初期试着编写一些代码,就是这种策略的具体运用。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!