技术架构

上一篇文章介绍了什么是架构和架构的分类,作为开发人员的关注点首先是从技术架构开始的,这篇文章的重点就是在技术架构,在技术架构中会涉及到架构风格、架构模式和设计模式,这三者是一种什么关系,这三者和技术架构又什么关系呢?先通过下图对这些关系有一大致的了解。
在这里插入图片描述

架构风格和模式

主要引自:https://juejin.im/post/5decf93cf265da33d21e6d1d

架构风格和模式最重要的区分是范围的区别,架构风格非常粗略地告诉我们应该如何组织代码。它的粒度比较大,说明了应用的分层和高层级的模块,这些模块和层次之间如何交互,以及它们的关系;解决反复出现的问题的常见方案就是模式。架构模式解决的就是和架构风格相关的问题。例如,“要实现一个特定层次组合的系统,我们需要哪些类,它们又如何交互”,架构模式对代码的影响相当大,通常会横向地(比如,如何组织同一个层次中的代码)或者纵向地(比如,请求是如何从外层进入到内层处理之后再返回的)影响整个应用。设计模式作用的范围和架构模式不同,它们更局限一些,它们对影响的是代码中某个肯定的部分,对代码的组织影响不多。

  1. 架构风格是最高抽象级别的应用设计; An Architectural Style is the application design at the highest level of abstraction;
  2. 架构模式是实现架构风格的一种方式; An Architectural Pattern is a way to implement an Architectural Style;
  3. 设计模式是解决局部问题的方法。 A Design Pattern is a way to solve a localised problem.

下图列举了架构模式和架构风格的一些例子:
在这里插入图片描述

你会发现,架构风格中有「Multilayered」这个架构风格,架构模式里也有「Multilayered」架构模式!好像分层架构既是架构风格,也是架构模式!实际上架构模式中的「分层架构」是架构风格中的「分层架构」的实际应用。
更具有说服力的是CS架构风格,可以看到此架构风格后面有个阐述「2-tier, 3-tier, n-tier exhibit this style」,意思是两层架构、三层架构、n层架构都是CS架构风格的一种表现形式。而可以看到,三层架构是一个架构模式!
这三者整体的关系就如上图那样

技术架构

主要引自:https://www.infoq.cn/article/iNbgrQm2liV1EdZeIFyD

弄明白了上述三者的关系后,我们顺着图向上看,什么是技术架构呢:技术架构 = 解决业务上的技术问题 + 技术方案 + 技术组件 ,下面再细化一下:

解决业务上的技术问题: 业务除了基本的功能之外,在运行环境中,它也是一种系统,系统还有一种重要的特征就是涌现,什么意思呢?本来平时不是问题的问题现在变成问题了,举一个简单的例子,简单的登录功能,根据用户名和密码在后台进行验证,验证成功就跳转到首页,失败跳到错误页。这个功能太简单不过了,放在普通的业务场景下,这样肯定没有问题,但用在淘宝登录上,你看看,还是之前的操作吗?到这里大家可能就明白了,技术架构一定是解决目前业务上的技术问题,一般而言,技术架构要解决的问题有:高并发、高可用、高性能、高扩展…。

技术方案:针对上面的技术问题,再设计技术方案,这里的方案应该是系统性的方案,绝对不是用一个或者几个中间件就能解决的问题。所以在设计方案时,要找到问题的本质,拿高并发来讲,笔者认为它是有限的资源应对大量的请求,矛盾很明显了,就是有限的资源和大量的请求,如果去解决这个问题呢?从矛盾出发,分别在资源和请求处理上做文章,这样从前端、网络、后端可以设计出一套系统化的方案出来。

技术组件:技术方案中会涉及到使用哪些技术组件,如分布式缓存、消息队列、分布式定时任务、网络通信等,这些都是一个个技术组件,技术方案会根据需要选择一个或多个技术组件来完成目标。单纯的技术组件本身是没有技术价值的,它应该是放在相应的业务场景下才会体现出价值来的。

参考:

https://www.infoq.cn/article/iNbgrQm2liV1EdZeIFyD
https://blog.csdn.net/maoyeqiu/article/details/106062438
https://segmentfault.com/a/1190000016702398
https://www.jianshu.com/p/d8dce27f279f
https://juejin.im/post/5decf93cf265da33d21e6d1d
https://github.com/davideuler/architecture.wechat-tencent

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值