在软件行业,开发人员对什么才是架构师,一直都有很多争论,每个人都有自己的理解。在讨论架构之前,我们要先知道架构的定义,如果对架构的理解都不一样,那沟通起来也不会顺畅。
Linux有架构、JVM有架构、MySQL也有架构,使用Java开发等的业务系统也有架构,想要清楚以上几点需要梳理几个有关系而又相似的概念:系统与子系统、模块与组件、框架与架构:
1、系统与子系统系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体。子系统是由一群关联的个体组成的系统,多半是更大系统中的一部分。
2、模块与组件模块和组件都是系统的组成部分,只是从不同角度拆分系统而已。模块是逻辑单元,组件是物理单元。
3、框架与架构框架是组件实现的规范,架构是结构。架构是经过系统性的思考,权衡利弊之后在现有资源约束下的最合理决策,最终明确的系统骨架。对架构师来说,需要具备理解业务、全局把控、选择合适技术、解决关键问题、指导研发落地实施等技能。
架构分类和分层
架构分类可细分为业务架构、应用架构、技术架构、部署架构和代码架构。业务架构是战略,应用架构是战术,技术架构是装备。
其中应用架构不仅要承接业务架构的落地,还会影响技术选型。对架构师来说,如何针对当前需求选择合适的应用架构,面向未来,保证架构平滑过渡,是需要深度思考的问题。
1、业务架构业务架构包括业务规划、业务模块、业务流程,拆分整个系统的业务,设计领域模型,把现实的业务转化为抽象对象。对软件开发人员来说,没有最优架构,只有最合适的架构,所有的设计原则都要以解决业务问题为最终目标。
2、应用架构应用架构也叫剖面结构和逻辑架构图,和业务架构是相辅相成的,业务架构的每一部分都有应用架构的身影。应用架构作为独立可部署的单元,为系统划分了明确的边界,影响着系统功能组织、代码开发、部署和运维等各方面。应用分层主要有2种方式,一种是横向的水平分,按照功能处理顺序划分应用,一种是纵向的垂直分,按照不同的业务类型划分应用。
Linux有架构、JVM有架构、MySQL也有架构,使用Java开发等的业务系统也有架构,想要清楚以上几点需要梳理几个有关系而又相似的概念:系统与子系统、模块与组件、框架与架构:
1、系统与子系统系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体。子系统是由一群关联的个体组成的系统,多半是更大系统中的一部分。
2、模块与组件模块和组件都是系统的组成部分,只是从不同角度拆分系统而已。模块是逻辑单元,组件是物理单元。
3、框架与架构框架是组件实现的规范,架构是结构。架构是经过系统性的思考,权衡利弊之后在现有资源约束下的最合理决策,最终明确的系统骨架。对架构师来说,需要具备理解业务、全局把控、选择合适技术、解决关键问题、指导研发落地实施等技能。
架构分类和分层
架构分类可细分为业务架构、应用架构、技术架构、部署架构和代码架构。业务架构是战略,应用架构是战术,技术架构是装备。
其中应用架构不仅要承接业务架构的落地,还会影响技术选型。对架构师来说,如何针对当前需求选择合适的应用架构,面向未来,保证架构平滑过渡,是需要深度思考的问题。
1、业务架构业务架构包括业务规划、业务模块、业务流程,拆分整个系统的业务,设计领域模型,把现实的业务转化为抽象对象。对软件开发人员来说,没有最优架构,只有最合适的架构,所有的设计原则都要以解决业务问题为最终目标。
2、应用架构应用架构也叫剖面结构和逻辑架构图,和业务架构是相辅相成的,业务架构的每一部分都有应用架构的身影。应用架构作为独立可部署的单元,为系统划分了明确的边界,影响着系统功能组织、代码开发、部署和运维等各方面。应用分层主要有2种方式,一种是横向的水平分,按照功能处理顺序划分应用,一种是纵向的垂直分,按照不同的业务类型划分应用。