后端架构|青训营笔记

68 阅读3分钟

架构

架构的定义

架构一个系统在其所处环境中所具备的各种基本概念和属性,具体体现为其所包含的各个元素、他们之间的关系以及架构的设计和演进原则之中。 架构的本质就是对系统进行有序化地重构以致符合当前业务的发展,并可以快速扩展

企业架构和系统架构

架构从应用上可以分为企业架构和系统架构。 企业架构(Enterprise Architecture)是记录企业内所有信息系统、它们的相互关系以及它们如何完成企业使命的蓝图,是企业关注点。 系统构架是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务,是系统关注点。

架构的作用

复杂的软件项目通常有两个明显的特征:需求不确定和技术复杂。

需求不确定来自于客户,而技术的复杂性主要体现在需求让技术变复杂、技术本身也是复杂的、要让软件稳定运行是复杂的。这些技术的复杂性,会导致软件开发变得复杂,开发成本很高,架构设计恰恰可以很好解决技术复杂的问题。首先,架构可以降低满足需求和需求变化的开发成本。其次,架构可以帮助组织人员一起高效协作。再次,架构可以帮助组织好各种技术。最后,架构可以保障服务稳定运行。

常用的架构视图

业务架构:核心是解决业务带来的系统复杂性,了解客户/业务方的痛点,项目定义,现有环境;梳理高阶需求和非功能性需求,进行问题域划分与领域建模等工作;沟通,方案建议,多次迭代,交付总体架构。

应用架构:描述了IT系统功能和技术实现的内容,应用架构分为企业级应用架构和系统级应用架构。

逻辑架构:逻辑架构关注的是功能,包含用户直接可见的功能,还有系统中隐含的功能。

数据架构:更关注的是数据持久化和存储层面的问题,也可能会包括数据的分布、复制、同步等问题。

物理架构:关注软件元件如何部署到硬件上,专注于系统、网络、服务器等基础设施。

开发架构:开发架构则更关注程序包,不仅仅是我们自己写的程序,还包括应用程序依赖的SDK、第三方类库、中间价等。

运行架构:关注的是应用程序运行中可能出现的一些问题。例如并发带来的问题,比较常见的“线程同步”问题、死锁问题、对象创建和销毁(生命周期管理)问题等等。