![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构设计
文章平均质量分 92
善守的大龙猫
昔之善战者,先为不可胜,以待敌之可胜。不可胜在己,可胜在敌。故善战者,能为不可胜,不能使敌之必可胜。故曰:胜可知,而不可为!
成为专家!成为专家!
展开
-
架构设计 高性能带来的复杂度
对性能孜孜不倦的追求是整个人类技术不断发展的根本驱动力。例如计算机,从电子管计算机到晶体管计算机再到集成电路计算机,运算性能从每秒几次提升到每秒几亿次。但伴随性能越来越高,相应的方法和系统复杂度也是越来越高。现代的计算机CPU集成了几亿颗晶体管,逻辑复杂度和制造复杂度相比最初的晶体管计算机,根本不可同日而语。软件系统也存在同样的现象。最近几十年软件系统性能飞速发展,从最初的计算机只能进行简单的科学计算,到现在Google能够支撑每秒几万次的搜索。与此同时,软件系统规模也从单台计算机扩展到上万台计算机;原创 2024-01-31 22:20:11 · 801 阅读 · 0 评论 -
架构设计: 如何提供设计方案
最后,我把今天的“四步回答法”做个总结,加深每一步你需要掌握的注意点。1、在回答系统复杂度来源的时候,要注意结合具体的业务场景和业务发展阶段来阐述。业务场景表明了业务的独特性,发展阶段表明了业务的成熟度,因为同一业务场景在不同阶段产生的矛盾也是不同的。2、在回答解决方案的时候,有价值的解决方案一定是建立在明确复杂度来源基础之上的。所以在设计架构的时候才分主要问题和次要问题,主要问题是必须要解决的点,次要问题可以根据实际情况进行取舍。原创 2024-01-17 21:38:13 · 811 阅读 · 0 评论 -
架构设计 识别复杂度
注意,这里的设计目标设定为峰值的4倍是根据业务发展速度来预估的,不是固定为4倍,不同的业务可以是2倍,也可以是8倍,但一般不要设定在10倍以上,更不要一上来就按照100倍预估。实际上大部分场景下,复杂度只是其中的某一个,少数情况下包含其中两个,如果真的出现同时需要解决三个或者三个以上的复杂度,要么说明这个系统之前设计的有问题,要么可能就是架构师的判断出现了失误,即使真的认为要同时满足这三方面的要求,也必须要进行优先级排序。前浪微博的业务发展很快,系统也越来越多,系统间协作的效率很低。原创 2024-01-08 23:43:20 · 946 阅读 · 0 评论 -
架构设计的历史背景
理解了架构的有关概念和定义之后,就需要知道架构设计的历史背景。我认为,如果想要深入理解这个事物的本质,最好的方式就是去追寻这个事物出现的历史背景和推动因素。我们先来简单梳理一下软件开发进化的历史,探索一下软件架构出现的历史背景。原创 2024-01-07 20:59:21 · 921 阅读 · 0 评论 -
什么是架构设计?
软件架构指软件系统的顶层(Rank)结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。因为这个定义中的4个关键词,都可以用R开头的英文单词来表示,分别是Rank、Role、Relation和Rule,所以我把定义简称为“4R架构定义”,每个R的详细解释如下。第一个R,Rank。它是指软件架构是分层的,对应“系统”和“子系统”的分层关系。通常情况下,我们只需要关注某一层的架构,最多展示相邻两层的架构,而不需要把每一层的架构全部糅杂在一起。原创 2024-01-04 21:29:04 · 1112 阅读 · 4 评论 -
架构设计到底是什么?
架构设计,是中高级研发工程师逃不开的一环,也是成为架构师的关键。那到底什么是架构设计。从概念来说比较宽泛,也不容易理解,这时候可以转换方向利用分类思想,架构设计包括哪些主要内容呢不断堆积调查研究材料,不断丰富我们的主题。以上6个模块就比较完整地说明架构设计是什么?原创 2023-12-20 21:03:58 · 624 阅读 · 0 评论