美文网首页
架构浅谈

架构浅谈

作者: 我是Mr小赵先生 | 来源:发表于2019-01-03 17:03 被阅读9次

架构是什么

软件架构指软件系统的顶层结构
这个定义看似很简单,但包含的信息很丰富,基本上把系统、子系统、模块、组件、架构等概念都串起来了,我来详细解释一下。
首先,“系统是一群关联个体组成”,这些“个体”可以是“子系统”“模块”“组件”等;架构需要明确系统包含哪些“个体”。
其次,系统中的个体需要“根据某种规则”运作,架构需要明确个体运作和协作的规则。
第三,维基百科定义的架构用到了“基础结构”这个说法,我改为“顶层结构”,可以更好地区分系统和子系统,避免将系统架构和子系统架构混淆在一起导致架构层次混乱。

引用一个有趣的例子

搬砖的:“头,我们要造什么?”;(做什么系统?)
工程师:“万达商城”;(XXX系统,比如微博系统)
搬砖的:“图纸画出来了嘛?”;(架构是怎么设计的?)
工程师:“一楼主要以女性消费为主体、二楼以大众娱乐为主体、三楼以美食为主体”;(相当于微博系统中的各个子系统,比如评论子系统、动态子系统、消息子系统)
搬砖的:“头,说人话”;
工程师:“一楼有卖衣服、化妆品的,二楼有唱歌、看电影的,三楼有吃的”;(【模块】按照逻辑区分,比如存储数据模块、搜索模块、消息推送模块)
搬砖的:“有没有很知名的店啊?”;
工程师:“有的,一楼有香奈儿、优衣库...、二楼有好乐迪、万达影院....、三楼有海底捞、避风塘.....”;(【组件】按照物理区分,存储数据模块对应Mysql、搜索模块对应ElasticSearch、 消息推送模块对应Kafka)
搬砖的:“对了,头,商城大门有啥需要叮嘱的施工规范不?或有啥简化施工工艺的新技术嘛?”;(有框架的可以用吗?)
工程师猛吸了一口烟,把烟头扔在地上,用皮鞋左右撵了两下,缓缓从嘴里崩出四个字。
“老样子吧”。(Spring全家桶甩起来)

架构设计的目的

常见的对于架构设计的误区

  • 因为架构很重要,所以要做架构设计
  • 不是每个系统都要做架构设计吗
  • 公司流程要求系统开发过程中必须有架构设计
  • 为了高性能、高可用、可扩展,所以要做架构设计

架构设计真正的目的
架构是为了应对软件系统复杂度而提出的一个解决方案。
架构即(重要)决策,是在一个有约束的盒子里去求解或接近最合适的解。这个有约束的盒子是团队经验、成本、资源、进度、业务所处阶段等所编织、掺杂在一起的综合体(人,财,物,时间,事情等)。架构无优劣,但是存在恰当的架构用在合适的软件系统中,而这些就是决策的结果。

架构设计的复杂度来源

  • 高性能
  • 高可用
  • 可扩展性
  • 低成本、安全、规模

架构设计三原则

  • 合适原则
  • 简单原则
  • 演化原则

相关文章

网友评论

      本文标题:架构浅谈

      本文链接:https://www.haomeiwen.com/subject/nwtqrqtx.html