一、想成为一个合格的架构师,你要知道软件架构是个什么概念,明白架构的定义:
1.软件架构是一个系统的草图。
2.软件架构描述的对象是直接构成系统的抽象组件。 (推荐学习:phpstorm)
3.各个组件之间的连接则明确和相对细致地描述组件之间的通讯。
4.在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。
5.在面向对象领域中,组件之间的连接通常用接口来实现。
二、架构师有细分,基本上可以分为三类:
1. 系统架构师:服务器负载,可靠性,伸缩,扩展,数据库切分,缓存应用等
2. 应用架构师:理解业务,梳理模型,设计模式,接口,数据交互等
3. 业务架构师:也可以叫业务领域专家、行业专家、产品咨询师、资深顾问通常我们说的架构师是1和2的结合
分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你不知道要用什么架构,那就用它。
这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节。层与层之间通过接口通信。
虽然没有明确约定,软件一定要分成多少层,但是四层的结构最常见。
表现层(presentation):用户界面,负责视觉和用户互动
业务层(business):实现业务逻辑
持久层(persistence):提供数据,SQL 语句就放在这一层
数据库(database) :保存数据
有的软件在逻辑层和持久层之间,加了一个服务层(service),提供不同业务逻辑需要的一些通用接口。
用户的请求将依次通过这四层的处理,不能跳过其中任何一层。
优点
结构简单,容易理解和开发
不同技能的程序员可以分工,负责不同的层,天然适合大多数软件公司的组织架构
每一层都可以独立测试,其他层的接口通过模拟解决
缺点
一旦环境变化,需要代码调整或增加功能时,通常比较麻烦和费时
部署比较麻烦,即使只修改一个小地方,往往需要整个软件重新部署,不容易做持续发布
软件升级时,可能需要整个服务暂停
扩展性差。用户请求大量增加时,必须依次扩展每一层,由于每一层内部是耦合的,扩展会很困难
Atas ialah kandungan terperinci 为什么学习软件架构. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!