全球旧事资料 分类
1、什么是架构设计
“架构设计是人们对一个结构内的元素及元素间关系的一种主观映射的产物。架构设计是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。”来自百度百科。资料中的定义是准确、完备和书面化的,仍然很难理解架构设计的本质。通俗的描述,架构设计就像是小学考试中解答应用题的过程,但是解决的问题更复杂,构思设计的过程更庞大,解题的工作量更大。
2、项目的质量指标功能,性能和扩展性
软件开发的最终目标是使用代码去实现抽象的业务逻辑,可以从3个方面衡量:功能,性能和扩展性。(1)功能功能目标是应用的基本要求,如果不能实现既定的功能逻辑,应用就失去了存在的意义,因此实现产品需求是应用的基本的目标。(2)性能在基本的功能之上,会有一些性能的要求,但是很少有产品经理或者用户能提前提出这样的要求,因此架构师要有丰富的经验去发现和解决或者为未来提升性能做准备性能问题。性能的主要衡量有:单次请求的相应时间,单实例请求并发数,服务最大并发量等。(3)扩展性目前互联网应用的开发模式快速响应,迭代开发;提出需求,快速相应,尽快上线,是骡子是马拉出来溜溜。所以这就要求系统的架构设计要更好的响应新的需求和需求变更。
3、架构设计的主要过程
3年多来,数个项目的架构经验,我自己的架构设计过程是确定问题域,数据建模,模块划分,关键流程描述,技术选型,代码实现,验收测试
31、确定问题域
记得小学考试后拿到老师改过的卷子,对着一个个的大红叉都会懊恼:”哎,又看错题目了“。错误的方向危害大于错误的方法,没有找对方向,项目就会南辕北辙,远远偏离目标。来自产品经理或者用户的需求描述就是我们的问题域,但是来自于产品经理的需求描述会比较全面,内容也很多,来自用户比较简单,相对比较模糊。比如电商项目的需求文档会非常大,拿到一个几十上百页的需求文档有程序员拍砖说,我家的产品只一段话”像XXX网站的功能copy一下吧”,哈哈时,往往不知道从何处下手,所以我们要从繁杂的问题域中找到关键问题。
fa、用户可以在我们的网站上购买XXX商品。从a条出发,又延伸出来几个问题b、用户访问用户登录,注册c、商品来源商品的管理,增删改查等d、交易的过程订单的管理等从d交易出发,又能延伸出来e、用户付钱支付f、商家配送收货地址,配送流程不断的展开问题域,就可以把整个流程转起来。当然实际应用的时候我们不会把所有的问题r
好听全球资料 返回顶部