前因后果
BudWk(原名NutzWK),是作者从 strust1+jsp 开发的时代就开始研究并在后来开源的开发框架,2012年前后那时Json数据格式刚刚开始流行,原始的Jsp文件开发方式不便于代码复用和维护,而新兴的 SSH 开发模式有配置麻烦、错误难以定位等弊端,找了一圈觉得 nutz 不错,简单便捷、学习成本低、开发效率高,然后基于她以及后来推出的 nutzboot 开发了 V1 至 V6、V7 等多个框架版本。
为什么要“从零开始”
V5与V6都是微服务分布式架构(区别在于V6是完全前后端分离的),但他们并没有引入网关,虽然业务层可以分布式部署,但控制层还是汇聚在一起的,导致他们的“微服务化”并不彻底,实际项目开发中,存在不同的子系统或模块不能很好的剥离、有些公用的组件不能很好的复用等弊端,不能很好的适配公司“一体化平台”的项目需要。
初步目标设定
V7 需要拥有这些特性:
- API网关
需支持前缀路由、自动路由机制、黑名单机制、需支持websocket
- 相对简单的API文档定义
V6的 Swagger V3(OpenAPI) 注解定义太麻烦了,要大大的简化
- 后台表单验证功能
V7之前一直没有实现表单验证功能,手写判断实在麻烦
- 统一的异常捕获与友好的错误提示
V7之前前端不能打印具体的错误信息,需要到服务器查看日志,V7需要在debug模式下,在前端查看错误明确的详细信息
- 完全的组件化
组件化可高度复用,提过简单的配置即可实现功能,一个项目或一个公司维护一套组件库即可