架构设计的三原则:合适、简单、演化

栏目:教育培训  时间:2023-05-18
手机版

  今天我们简单说一下来自李云华老师的架构设计的三个原则:合适原则、简单原则、演化原则。

  

  前面我们说了架构设计的复杂度的几个来源:高性能、高可用、可扩展、成本、安全和规模,这几个是架构设计中相当重要的约束条件,而针对一个未来的系统做架构设计,就是在这几个约束当中做选择。如果成本更重要,那么其他的高性能、高可用以及可扩展性上,肯定要进行适度的降低。如果高性能更重要,那我们就肯定要增加成本。所以,架构设计不是设计一个最优秀最圆满的系统架构,而是在各种维度中进行取舍,设计出一个最符合我们业务需要的系统架构。

  很多程序员的末来目标都是做一个优秀的架构师,但写程序和设计架构完全不一样。程序是有确定的输入和输出,我们要用一段代码实现从特定的输入得到特定对的输出,其执行路径是固定的。而架构则不然,架构需要的是多方面的取舍,架构设计上我们可能给出多个设计结果,而我们的最终目的,就是通过这多个设计方案在多维度之间构建一个平衡,最终选出一个我们最认可的最需要的方案,作为我们的架构设计。

  

  架构设计原则一:合适原则。原则宣言:“合适优于业界领先。”这里主要说的是,我们在设计架构的时候,要脚踏实地,从当前的业务需求出发,设计一个符合我们当前现状的系统。比如我们做一个校园的图书管理系统,开发人员可能就两三个,数据库简单的使用MySQL就能够满足。这个时候,如果我们追求规模化、高性能、高可用,采用各种业界顶尖的架构和技术。那么其结果最终是浪费居多,而且功能还不一定能满足需求。再举个简单点的例子,我们要去一公里外的超市买东西,可能步行十分钟就到了,但是为了酷炫,采用最顶尖的飞机,那么可能完全就是一种浪费。当然,这也只是一个玩笑罢了。

  

  还有一个方面,真正优秀的架构,不是一开始就是优秀的,一开始的淘宝,也只是花钱买的一套网页系统。但如今,谁又能说淘宝的系统不优秀呢!我们的架构设计,也必须基于当前业务和系统现状去做设计。真正优秀的架构都是在自身企业当前人力、业务、条件等各种约束均衡之下设计出来的,能够合理地将各种资源整合在一起并发挥出最大功效,才能够快速落地。

  架构设计原则二:简单原则。原则宣言:“简单优于复杂。”软件架构的目的就是为了降低软件系统的复杂度。对于一个业务软件来说,其复杂度主要来源于结构的复杂性和逻辑的复杂性。结构的复杂性要是要看组成业务系统的组件数量有多少,如果组件更多,那么复杂性则是指数般增长,同时,一个组件的问题,可能会引起大范围的连锁反应。另外一个方面,如果我们把所有功能都集中到一个组件里面,就会引起逻辑复杂度的极限上升,当对这个组件进行维护开发时,所有几十号人集中在一起,大部分时间都浪费在代码冲突、问题溯源等等上面了。所以,如果我们同时面临一个简单的架构设计方案和一个复杂的架构师设计方案,同时这两个方案都可以满足需求,那么最好选择简单的方案。

  

  架构设计原则三:演化原则。原则宣言:“演化优于一步到位。”软件架构设计是一个不断进化的过程。因为我们的眼界限制,我们业务规模限制,一开始的软件架构是要满足设计当下的业务需要。逐步的,软件架构不断地在实际应用过程中升级和迭代,留下优秀的设计,改正错误的设计,去掉无用的设计,让我们的架构逐渐完善。再接下来,当业务发生变化时,我们的架构要扩展、重构,架构设计的方案甚至打翻重来,但有价值的经验、教训、逻辑、设计等却可以在新架构中延续。所以在进行架构设计时需要牢记,时刻提醒自己不要贪大求全,盲目照搬的做法。应该认真分析当前企业的业务特点,整理搜集业务面临的主要问题,设计出合理的架构,快速落地以满足业务需要,然后在运行过程中不断完善架构,不断随着业务演化架构。

  最后说一下,我们的架构设计是逐步进化不断升级的。所以一开始,架构设计最重要的就是满足当前需求和快速落地,快速应用到业务场景中去。这才是最优的架构设计。

  

  作者粗浅见识,如有不当之处,欢迎大家指正!如果文章能够能到认可,那将是我莫大的荣幸。最后,欢迎大家点赞关注。十分感谢!

  举报/反馈

上一篇:河南省植物病理学会组织开展“百会链千企”科技服务活动
下一篇:春和景明万象新 安顺经开区抢抓机遇大干快上

最近更新教育培训