今天我学习的是架构之美的第四章——记忆留存。引出这个问题的是与LPS的开发者实现将电子转变为墨水原子和纸张的项目。
首先要确定系统的功能和约束,也就是,它必须做什么以及在什么限制条件下工作,这样也就确定了问题空间。接下来我们要了解事实,重要问题和架构的关注点。确定工作流也是一个极为重要的步骤,来自于我们对于如何划分系统的考虑。
系统架构常见的关注点有,功能性:产品向特的用户提供哪些功能?可变性:软件将来可能需要哪些改变?性能:产品将达到怎样的性能?容量:多少用户可以并发使用该系统?该系统将为用户保存多少数据?生态系统:在不是的生态环境中,该系统将于其他系统进行哪些交互?模块化:如何将编写软件的任务分解为工作指派?特别是这些模块可以独立的开发,并能准确而容易的满足彼此的需要。可构建性:如何将软件构建成一组组件,并能够独立实现和验证这些组件?哪些组件应该复用?产品化:如果产品将以集中变体的形式存在,如何开发一个产品线,并利用这些变体的共性?产品线中的产品以怎样的步骤开发等等。对于架构的关注点,我们要既能够保持这些关注点的分离,同时又能让他们互相分离。
Creation Center架构保持关注点分离,坚持增量式设计与开发,以一种令人满意的方式平衡了各方面的需求。