一种基于特性开关以及规则的软件开发模式

以下是一些简单的思考

一般开发模式

  • 参考图

一种基于特性开关以及规则的软件开发模式

 

 

  • 说明

我们提供多种api 实例,通过强大的规则以及路由能力提供api 以及数据的处理

基于rule 模式的

  • 参考图

一种基于特性开关以及规则的软件开发模式

 

 

  • 说明 
    将业务处理使用rule 解耦,同时提供了多实例的副本,其中rule 可以加入审计以及可视化展示,注意此图没有使用特性开关 
    对于复杂的处理我们还是需要依赖强大的路由能力解决(当然可以解决我们大部分的复杂业务问题)

基于rule+ Feature Flags

  • 参考图

一种基于特性开关以及规则的软件开发模式

 

 

  • 说明 
    api 的版本都是一致的,对于复杂业务处理基于rule,同时包含了审计以及dashboard,同样还是利用了强大的路由能力。 
    好处:版本一致,可以全局灵活的调整业务api以及功能的处理,对于复杂业务基于rule处理增强了业务的处理

说明

一些实践,特性开关不同语言的实现还是比较多的,java 的ff4j是一个不错的选择,java 的easy-rules 是一个简单、灵活的规则 
引擎(drools 也是不错的)

上一篇:使用Java JUnit框架里的@Rule注解的用法举例


下一篇:华为防火墙查看和调整安全域策略优先级