设计的主要原则:web、小程序、手机端的接口通常不追求极致的效率,因此我们需要尽量遵循业务逻辑,提高可维护性、可读性和健壮性。
前后端分离项目,后端的设计:
1、通常后端核心的三个模块controller、service、dao
2.1、controller最贴近view,也就是前后端主要交互点,是离实际业务最近的地方,因此对于有多设备、多角色的情况下,可以创建web和admin两种包目录,或者从controller的命名上加以区分。
2.2、controller需要完成的主要逻辑有:参数校验、数据汇总、数据封装
2.3、为什么会在controller上做参数校验:因为有项目多采用注解校验权限、注解加密、注解校验参数是否合法等等,这些通常使用了aop完成,service上有些注解和这些注解是互相影响的,既为了不破坏项目整体风格,也是为了不影响功能
2.4、这些注解的功能完全可以手动实现,充当的是一种过滤器的角色
3.1、service需要完成的主要逻辑有:数据分析、计算和一些特殊数据结构组装等等,实际上我是不会对service层再做类似于web和admin这种命名或者包结构上的区分,因为service包装了dao层,类似一个数据提供者的角色,还是要稍微追求一点通用性
3.2、我个人编写service的原则是功能越单一、提供服务的范围越小越好
4.1、如果采用mybatis框架作为dao层的依赖,建议不要使用一些增强api,也不要使用动态sql,这种web项目的代码已经不追求效率,那么sql写的越简单越容易理解越好,别的处理完全可以靠service解决