架构实战营 毕业总结
一、什么是架构
1. 4R 架构
软件架构是指软件系统的顶层结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)
相关概念:
系统与子系统
架构与框架
模块与组件
常见架构图分类
系统序列图
画系统序列图主要用于体现角色的运作规则,是从动态的视角展现架构。
2. 面向复杂度架构设计
为什么需要做架构设计?从软件技术发展史看,核心原因是软件系统规模的增长,使得数据结构和算法不再是主要问题,整个系统的结构成为首要问题。
在软件发展的过程中,产生了一些架构设计方法论,如:
面向复杂度的架构设计本质上是为了降低软件系统的复杂度,通过分析系统需求,找到系统复杂的地方,然后设计方案。通过识别复杂度的来源,如高性能、高可用、可扩展、安全等总结出架构模式,使用一定的套路降低这些复杂度,如分库分表、缓存、集群、分片、微服务、DDD 等等,设计步骤可通过架构设计环描述:
3. 架构设计三原则
架构设计原则是为了指导我们做更好的设计,而不是可用的设计。
4. 架构设计复杂度模型
复杂度分为业务复杂度和质量复杂度,前者主要体现为难以理解、难以扩展,如业务数量多、业务流程长、业务之间关系复杂;后者主要体现在对高性能、高可用、成本、安全等质量属性的要求,两者是正交的关系:
二、架构师
架构师是业务和技术之间的桥梁,不能只顾技术不懂业务。架构师需具备判断、拆解、取舍能力,需掌握确定性思维、创造性思维和系统性思维:
版权声明: 本文为 InfoQ 作者【CR】的原创文章。
原文链接:【http://xie.infoq.cn/article/08c8edc23feb37810b6ccf516】。文章转载请联系作者。
评论