服务导向设计优势与社交订阅阅读器案例剖析
1. 服务导向设计的优势
1.1 可扩展性
- 团队规模扩展 :当编程团队超过六人时,协调应用程序的更改变得困难,开发者之间的更改可能相互冲突。而且随着应用程序代码库变大,新开发者难以熟悉整个系统。将应用程序拆分为服务后,开发者可专注于一两个特定服务,只需熟悉自己负责的部分,工作小组规模也能保持较小。
- 应用规模扩展 :大型应用程序的代码量过多,任何人都难以在特定时间熟悉所有代码,且测试运行时间长。服务能为代码和实际生产系统提供抽象层,例如开发 Rails 应用时,开发者通常无需深入研究 Rails 代码库。
1.2 敏捷性
- 服务底层更改 :设计良好的服务比单体应用更具敏捷性,可在不影响应用其他部分的情况下更改服务的底层性质,部署也更轻松,无需每次更改都更新整个应用。
- 底层库更新 :使用服务可在不深入查看应用代码库每个部分的情况下更改或更新底层库。例如在 Ruby 社区,向 Ruby 1.9 迁移时,服务可分阶段升级,在确认所使用的库能正常工作后再升级到 1.9,利用其新特性。
- 版本控制 :保持服务环境敏捷性的关键之一是正确的版本控制。当更新包含重大更改时,每个服务接口都应进行版本控制。只要设计允许同时运行服务的多个版本,就能在接口更改时保持一定的敏捷性。如果服务 API 的更新是增量式的(即不改变现有调用,仅添加新功
服务导向设计在Rails应用中的实践
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



