Navi组件化系统框架
Navi 项目介绍:
在过去的一年里,会员交易系统的下单服务进行了彻底重构。重构后,在下单服务上对接新支付方式的开发时间从过去的三天左右,变为现在的一小时左右,工作效率大幅提高。
这一成绩的实现依靠的是下单服务的核心框架。这套框架能够通过注解、文件等配置方式将不同组件动态组合,形成复杂而又完整的功能。这套框架会根据声明的路由配置,为每一次请求选择合适的组件,从而实现高内聚、低耦合的组件化设计。
为了能让其它项目也能享受到模块化设计的好处,我设计了 Navi 项目。Navi 项目将上述设计通用化,使得普通开发人员也能迅速实现组件化系统。
核心价值:Navi 的核心价值在于能够通过注解配置,实现类似于 MVC 框架那样的路由功能。使得开发人员可以迅速开发出组件化的复杂系统
如何使用:
@EqualMatcher(property = "clientType", value = "android") @VersionMatcher(range = "[1.0.0,2.0.0)") public class AndroidV1OrderCreateHandler implements OrderCreateHandler { } OrderRequest request = new OrderRequest(): request.setClientType("android"); request.setVersion("1.5.0"); // this handler is AndroidOrderCreateHandler public class OrderCreateService { public OrderCreateResponse createOrder(OrderRequest request) { // ... // Trunk Logic // ... // Branch Logic OrderCreateHandler handler = selector.select(request, OrderCreateHandler.class); handler.handle(request); // ... // Trunk Logic // ... } }
评论