最近学习了李运华老师在极客时间的《从0开始学架构》文章,为了理解深刻便于复习思考整理了思维导图笔记,大家可以参考学习。
前言
相比编程来说,架构设计并没有像编程语言那样的语法来进行约束,更多的时候是面对多种可能性时进行选择。可是一旦涉及“选择”,就很容易让架构师陷入两难的境地。关键原因在于架构设计领域并没有一套通用的规范来指导架构师进行架构设计,更多是依赖架构师的经验和直觉。
业务千变万化,技术层出不穷,设计理念也是百花齐放,看起来似乎很难有一套通用的规范来适用所有的架构设计场景。但是却有几个共性的原则隐含其中,架构设计时遵循这几个原则,有助于做出最好的选择。
架构设计三原则
成为架构师是每个程序员的梦想,但并不意味着把编程做好就能够自然而然地成为一个架构师,优秀程序员和架构师之间还有一个明显的鸿沟需要跨越,这个鸿沟就是“不确定性”。
合适原则:
“合适优于业界领先”

简单原则:
“简单优于复杂”

演化原则:
“演化优于一步到位”

案例
在架构设计实践中,应该时刻谨记这三条设计原则(合适原则、简单原则和演化原则),指导我们设计出合适的架构。
淘宝
淘宝技术发展主要经历了“个人网站”→“Oracle/ 支付宝 / 旺旺”→“Java 时代 1.0”→“Java 时代 2.0”→“Java 时代 3.0”→“分布式时代”。




手机QQ
手机 QQ 的发展历程按照用户规模可以粗略划分为 4 个阶段:十万级、百万级、千万级、亿级,不同的用户规模,IM 后台的架构也不同,而且基本上都是用户规模先上去,然后产生各种问题,倒逼技术架构升级。



总结
通过案例可以看出,即使是现在非常复杂、非常强大的架构,也并不是一开始就进行了复杂设计,而是首先采取了简单的方式(简单原则),满足了当时的业务需要(合适原则),随着业务的发展逐步演化而来的(演化原则)。罗马不是一天建成的,架构也不是一开始就设计成完美的样子,然后可以一劳永逸一直用下去。