《架构漫谈》读书笔记七

什么是软件架构前端

这就是软件比较复杂的地方,涉及到软件自己的业务体系,和所虚拟的业务体系。根据以上的分析,所生成的架构,究竟那些算是软件架构呢?程序员

软件由于流量增大而分拆成不一样的运行单元,在不一样的机器上部署所造成的架构,属于软件架构。数据库

每一个运行单元为了让不一样角色的人,好比前端,业务,数据存储等可以并行工做,所分红的代码架构,也属于软件架构。服务器

因此当咱们说软件架构的时候,咱们必定要讲清楚,究竟说的是部署的架构,仍是代码的架构。软件架构的落地,须要软件的组织架构和流程来保障,离开了这个,软件架构是一句空话。架构

另外不少人讲,架构是进化出来的。架构其实是在量不断的增大,超过了单台服务器的容量,逐渐的分拆,同时致使超过单我的员的能力,工做人员不断的增多,工做内容不断的分拆造成的。这自己就是架构的意义所在。无论怎么分拆,所达到的目标没有任何变化,就是完成业务在计算机中的虚拟化。微服务

 

软件架构就是软件的基本结构。架构的本质是管理复杂性。若是你以为架构不重要,多是你作的事情不够复杂,或者是你没有管理好复杂性。架构模式虽多,但经常使用的适合ICT软件,也就那么几种:测试

1.分层架构插件

2.事件驱动架构接口

3.微核架构(又称插件架构)事件

4.微服务架构

5.云架构

1、分层架构

分层架构(layered architecture)是最多见的软件架构,也是事实上的软件标准架构。若是你不知道要用什么架构,那就用它。有人说软件职业生涯中只用到了一种架构,那必定也是它。当前不少产品的顶层架构,几乎无一例外的也是分层架构。

分层架构将软件分红若干个水平层,每一层都有清晰的角色和分工,不须要知道其余层的细节。层与层之间经过接口通讯。虽然没有明确约定软件必定要分红多少层,可是最多见的是四层结构。

表现层(presentation):用户界面,负责视觉和用户互动

业务层(business):实现业务逻辑

持久层(persistence):提供数据,SQL 语句就放在这一层

数据库(database) :保存数据

有的软件在逻辑层和持久层之间,加了一个服务层(service),提供不一样业务逻辑须要的一些通用接口。用户的请求将依次经过这四层的处理,不能跳过其中任何一层。

分层架构的优势:

一、结构简单,容易理解和开发;

二、不一样技能的程序员能够分工,负责不一样的层,自然适合大多数软件公司的组织架构。虽然说架构决定组织,但实际上架三、构每每都是服从于组织;

三、每一层均可以独立测试,其余层的接口经过模拟解决。

分层架构的缺点:

一、 一旦环境变化,须要代码调整或增长功能时,一般比较费时费力;

二、部署比较麻烦,即便只修改一个小地方,每每须要整个软件从新部署,不容易作持续发布;

三、软件升级时,可能须要整个服务暂停;

四、扩展性差。用户请求大量增长时,必须依次扩展每一层,因为每一层内部是耦合的,扩展会很困难。