架构是什么?架构设计就是设计接口吗?如何成为一个好的架构师?架构种类很多,开发人员如何选择?如何划分用例的粒度?架构设计过程中一定要引入很多的文档吗?如何将需求转化成一个良好设计的架构?UMLChina 首席专家潘加宇和资深咨询顾问温昱(《软件架构设计》作者)与读者分享了他们对这些让人迷惑的问题的看法。
观看视频:从实践出发探索架构的本质(41 分 46 秒) 架构是一个既实又虚的概念,每个人都有不同的理解,有的人从业十几年还称自己为程序员,有的人刚入门就自称架构师。对于架构的概念,温昱认为:
在业界,我们会为它归类,第一大类我把它叫做结构派,在我的书籍上也会提到;第二大类叫决策派。第二种类型是决策派,他的典型就是 RUP 提出的这个定义:软件架构是一系列有层次的这个决策。
因为潘加宇多年来一直关注需求和设计的技能和细节方面,所以他对架构的理解就是对于某个软件的类型而言比较稳定的东西,是从多个项目中提炼出来的东西。他比喻说:
就像我们这个人,你不管人怎么样,长得怎么样,里面的骨骼的机制是一样的,那这些东西可能跟具体的一些项目是没关系的。那正是因为它没关系,所以一旦我们一个团队选定了一个架构之后,我想这个架构上面的变化就不应该很大,而是应该重点就把这个精力放在业务上面。
对于如何将需求转化成良好的架构,潘加宇和温昱也给出了自己的看法,借用 Grade Booch 的“名言”,设计良好的架构途径无外乎三种:
第一方面呢,就是偷,也就是借鉴业界现成的一些正确的做法或者说是成功的做法;第二种是方法,我们先说第三种,第三种就是直接靠经验或者灵感来创造。第一种是偷,第三种是创造,那么介于两者之间呢,就是我们刚才也提到的方法。方法它不是说完全照搬,也不是说我就完全创造,它会有一些理性的分析,也会权衡怎么样来做这件事情等。
评论