diff --git a/ch6-web/ch6-08-protocol-free.md b/ch6-web/ch6-08-protocol-free.md index 9b4c1e9..06fdd93 100644 --- a/ch6-web/ch6-08-protocol-free.md +++ b/ch6-web/ch6-08-protocol-free.md @@ -4,4 +4,8 @@ 如果对于我们的服务模块,提出了更进一步的要求,想要同时支持 http 和 thrift 协议。要怎么办。 -在 Uncle Bob 的 《Clean Architecture》 中对插件化架构(plugin architecture) 能够给我们一些启示。 +在 Uncle Bob 的 《Clean Architecture》 中对插件化架构(plugin architecture) 的阐释能够给我们一些启示。我们先来看看什么是“插件化架构”。 + +![插件化架构](../images/ch6-08-plugin-arch.jpg) + +简单地来说,通过在业务逻辑层定义 interface 来对业务逻辑进行一定的保护。这样在周边的代码发生变动时,不会对业务逻辑产生任何影响。比较典型的应用,例如你们公司的服务原来是 C/S 架构,在 web 2.0 时代突然流行起了 B/S 架构,然后在移动互联网的浪潮下又开始流行 C/S 或者一些 hybrid app 架构,但是这些变化对于后端程序来说,大多数的代码应该能够做到置身事外。再比如你们公司之前因为技术实力限制,没有适合自己用的可以持久化的 kv 存储。 diff --git a/images/ch6-08-plugin-arch.jpg b/images/ch6-08-plugin-arch.jpg new file mode 100644 index 0000000..f500277 Binary files /dev/null and b/images/ch6-08-plugin-arch.jpg differ