关于架构演进的一点思考

首先,架构的演进是为了解决什么问题?是为了解决软件系统日益增长的复杂性。通过什么方式解决的?通过分拆业务层(对每一层进行纵向划分)或增加一层(对每一层进行横向划分)来对系统进行更加细粒度的划分,便于理解系统的每一部分功能。
计算机系统软件体系结构采用一种层的结构,有人说过一句名言:

“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”
“Any problem in computer science can be solved by anther layer of indirection.”

下一层通过调用接口来为上一层提供服务,而每一层都可以按功能进行纵向划分:
服务架构的演进
参见博文:计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决
传统的单体架构:
一个归档包(例如war格式)包含所有功能的应用程序,通常称为单体应用。
如图所示:
单体架构
上面是逻辑结构,下面是War包的物理结构:
War包的结构
详见:WAR包的目录结构
Service层在代码中通常会定义为接口和实现类:
service层定义
SOA架构:
SOA架构是每个模块对应用内部暴露为服务,但是它们还是属于一个单体应用。
微服务架构:
每个模块作为一个单体应用对外提供服务。
它们之间的优缺点详见博客:架构演化
模块化身为服务以后有一个特别吸引人的优点,那就是服务应该是自说明的。也就是说,我们并不知道这个模块会提供什么服务,我们要想知道它能提供什么服务,我们只需要问:Hi siri,你能提供什么服务?模块就能告诉我们它能提供什么服务,以及这个服务应该怎么调用。这样我们就能很方便的使用这个服务,不会由于错误的使用这个服务而导致问题。
说到这里,我们怎么知道类有那些方法?我们需要通过反射获取类的相关信息。反射就是获取类的信息的方式,这种信息又叫做元数据。
下面一篇博文写的图文并茂,有兴趣可以看一下:分布式架构的前世今生…
练剑的最高境界是什么?手中无剑,心中有剑,无剑胜有剑。我们做架构也一样,架构做到极处就是没有架构,但又处处都是架构,架构的思想存乎一心。
下面的博文道出架构的终极目标:10年感触:架构是什么?——消灭架构!
讽刺的现象:1年经验与10年经验一样的代码!程序员该如何回归简单?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值