真正的架构师是什么?

在软件行业,开发人员对什么才是架构师,一直都有很多争论,每个人都有自己的理解。在讨论架构之前,我们要先知道架构的定义,如果对架构的理解都不一样,那沟通起来也不会顺畅。


真正的架构师是什么?

架构的定义和本质

Linux有架构、JVM有架构、MySQL也有架构,使用Java开发等的业务系统也有架构,想要清楚以上几点需要梳理几个有关系而又相似的概念:系统与子系统、模块与组件、框架与架构:

1、系统与子系统

系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体。

子系统是由一群关联的个体组成的系统,多半是更大系统中的一部分。

2、模块与组件

模块和组件都是系统的组成部分,只是从不同角度拆分系统而已。模块是逻辑单元,组件是物理单元。

3、框架与架构

框架是组件实现的规范,架构是结构。架构是经过系统性的思考,权衡利弊之后在现有资源约束下的最合理决策,最终明确的系统骨架。

对架构师来说,需要具备理解业务、全局把控、选择合适技术、解决关键问题、指导研发落地实施等技能。


真正的架构师是什么?


架构分类和分层

架构分类可细分为业务架构、应用架构、技术架构、部署架构和代码架构。业务架构是战略,应用架构是战术,技术架构是装备。其中应用架构不仅要承接业务架构的落地,还会影响技术选型。

对架构师来说,如何针对当前需求选择合适的应用架构,面向未来,保证架构平滑过渡,是需要深度思考的问题。

1、业务架构

业务架构包括业务规划、业务模块、业务流程,拆分整个系统的业务,设计领域模型,把现实的业务转化为抽象对象。

对软件开发人员来说,没有最优架构,只有最合适的架构,所有的设计原则都要以解决业务问题为最终目标。

2、应用架构

应用架构也叫剖面结构和逻辑架构图,和业务架构是相辅相成的,业务架构的每一部分都有应用架构的身影。

应用架构作为独立可部署的单元,为系统划分了明确的边界,影响着系统功能组织、代码开发、部署和运维等各方面。

应用分层主要有2种方式,一种是横向的水平分,按照功能处理顺序划分应用,一种是纵向的垂直分,按照不同的业务类型划分应用。


真正的架构师是什么?


3、数据架构

数据架构指导数据库设计,需要考虑开发中涉及到的数据库、实体模型和物理架构中数据存储的设计。

4、代码架构

代码架构也叫做开发架构,子系统代码架构主要为开发人员提供切实可行的指导。

5、技术架构

技术架构确定组成应用系统的实际运行组件,这些运行组件之间的关系,以及部署到硬件的策略。

6、部署拓扑架构图

拓扑架构包括架构部署了几个节点,节点之间的关系,服务器的高可用,网络接口和协议等,决定了应用如何运行。


分享到:


相關文章: