17、软件架构的进化之道与陷阱规避

软件架构的进化之道与陷阱规避

1. 服务版本管理

在服务版本管理方面,开发者可以改变端点逻辑,在端点中构建逻辑来确定调用者的上下文,从而返回正确的版本。这样做的好处是能减少调用应用与特定版本号的耦合。同时,要严格限制支持的版本数量,因为版本越多,测试和其他工程负担就越重,建议一次只临时支持两个版本。在对服务进行版本控制时,优先选择内部版本控制而非编号。

以 PenultimateWidgets 的星级评级服务为例,该公司采用微服务架构,便于进行小范围的更改。其星级评级服务由数据库和分层架构组成,包括持久化、业务规则和用户界面。当团队决定更新服务以支持半星评级时,他们对原服务进行了修改。具体操作如下:
- 在数据库中添加新列,用于处理额外的数据,即评级是否包含额外半星。
- 在服务中添加代理组件,以解决服务边界处的返回差异。该服务会解析请求类型,返回所需的格式,这是将路由作为进化机制的一个实例。只要有服务仍需要整星评级,该服务就可以保持这种状态。当最后一个依赖整星评级的服务不再使用时,开发者可以移除旧的代码路径,甚至可以移除处理版本差异的代理层(也可以保留以支持未来的进化)。

这种情况下,由于开发者能够进行增量式更改,即向数据库模式中添加内容而非更改它,所以从数据进化的角度来看,这次更改并不困难。

2. 适应度函数驱动的架构

在敏捷软件开发中,测试驱动开发是常见做法,开发者在编写相应功能之前先编写单元测试。类似的过程也可应用于架构设计,尤其是当应用的成功依赖于满足某些严格的能力时。构建一个控制这些能力的适应度函数有助于驱动设计,确保在架构师设计其他部分时,这些能力始终处于首要考虑位置。

LMAX 架

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值