要在上层简化就得有下层强大的架构作为支撑,通过采用企业级的各种框架,虽然学习成本高一些,但用好了效率也自然高。
数据层简化:
首先所有表都有名称为ID的主键字段。有与表同名的序列作为自增key。
数据层按数据用途分为三大类别,配置中心(CC)、数据中心(DC)、业务中心(BC)
配置中心对基本配置表的CURD提供一个通用的操作支持,
数据中心对通用的查询、分页、排序提供支持。
业务中心对差异化的业务调用提供处理。
1.基于SpringMVC+MyBatis提供一个通用的Ajax方式的CURD操作接口,表名(为了安全可取别名)作为CURD控制器的一个固定路径变量
对于Create来说,只需要在前台配置好与数据库表字段对应的同名表单项,即可对任意数据表进行添加行操作。
对于Update来说,只需要在前台配置好与数据库表字段对应的同名表单项,即可对任意数据表以ID为条件进行更新操作。
对于Delete来说,只需要传入要删除的ID,即可对任意数据表的指定行进行删除。
对于Read来说,要传入查询字段名称和值的列表,组合出查询条件(不分页读排序由前台Store负责即可)。
2.提供通用数据查询接口(DC),
对于大部分Read(支持分页)来说,要传入查询字段名称和值的列表(增加分页的页码和条数参数),组合出查询条件;还可以传入排序条件(分页无法在前台排序)。
3.对于无法通过CURD接口和DC进行的数据访问和操作,且是单一步骤的查询、添加、修改、删除操作,按模块编写MyBatis Dao定制接口,满足各种参数多种形式的数据操作。
4.对于复杂的数据库操作(非查询类,比如一次业务处理有1个以上的数据过程处理)采用Oracle存储过程。
即提高了数据库代码的编写效率,又避免了MyBatis中增加过多复杂的底层数据库操作接口。
SpringMVC的Service层对数据库的业务调用也简化了(都跑到PL/SQL里了,数据库专用开发语言比Java/MyBatis开发高效多了)。
通过以上四类数据接口的分工,实现最少的业务代码编写。
前端简化:
基于Extjs MVVM架构的webApp,优点就不用说了,后台分层前台自然也要分层。
导航菜单主菜单和子菜单都可以动态建立,子菜单通过设置要打开的widget的xtype实现可配置。