大家回想一下,有多少软件公司,多少项目,多少初中级程序员在做着CRUD方面的一些重复而繁杂的工作呢?对于公司项目来说,可能60-70%的成本都花费在CRUD方面的开发管理上,对于程序员职业生涯来说,可能也有60-70%的工作也是在做着一些CRUD方面的工作,无可否认,作者也是。
如果这些CRUD相关的工作全部省去,对于企业来说,意味着什么呢?自定义表单引擎,就是帮助企业做这样的事情!对于项目开发的核心三驾马车,进度、质量、成本,自定义表单可能都是质的飞跃。对于进度来说,需求明确的情况下,原来开发一个中等复杂的表单,从数据库到后端再到前端,完整的开发完成,可能需要几天的时间,如果这些工作全部由自定义表单通过配置自动完成,可能就十多分钟就能完成,项目进度将会大幅度的提前;对于质量来说,传统的CRUD方面的工作工作量大且繁琐,程序员工作年限及能力水平不一,测试能力不一,进度要求不一,管理者能力不一,影响因素非常多,质量往往是不好控制的,但如果这部分工作全部自定义表单完成,只要保证自定义表单配置生成的功能是经过反复验证过的,那这些影响的因素就可以多数排除,大部分质量就能够完全可控;对于成本来说,如果大大减少CRUD的开发管理,对于公司项目来说,可能节约半数的成本;这,自定义表单对于企业来说,将是战略意义上的武器。
可能大家接触比较多的是代码自动生成工具,前端后端可能都有。根据规则,从文件或者数据库读取配置信息,生成前端或者后端静态代码,拷贝到项目中,开发人员在做适当的修剪,再加入业务逻辑,编译发布,但,这就是自定义表单么?对企业来说,有多大的用处呢?我也用过一些,但作用真没有想象的那么大,也不是那么方便,这些代码往往是没有生命的,仅仅是把一些繁琐的代码做了简化,往往只是简化了我们码农复制粘贴再批量替换的作用。
代码生成工具,不是自定义表单。自定义表单,是有生命力的,他是由非常多的数据建模以及规则引擎串联起来的,数据库、后端、前端,全是运行时根据规则自行计算、执行或者渲染的。接下来作者将写一系列文档,介绍自定义表单的设计、开发供感兴趣的同行学习交流,由于现在做的工作与自定义表单没有任何关系,生活也不允许自己放下一切专门来做这个东西,只能在空余时间来完成,大概半年多的时间,一直持续反复循环做着技术预研、数据建模、定义规则、验证模型、验证规则,现在前端和后端基本能够融合在一起形成一个整体,基本雏形已经形成了,参考基础原型为K2自定义表单产品功能,代码将不断的整理完善,未实现的功能也会陆续的完成,整理的代码连同博客园文章将在gitee和博客园上持续更新,欢迎感兴趣的同学关注交流。开源地址:https://gitee.com/kuangqifu/sprite
后续的文章将会围绕着大家都接触过的部门和用户管理进行展开,1对N关系,中等复杂,基于他们介绍自定义表单,再合适不过了。
大概设计的需求(结合下面几个截图。不用特别关注需求是否合理):部门为一棵树,每个用户都可以关联到部门的一个节点上,部门列表需要展示部门层级关系;人员列表支持普通查询和高级查询,性别下拉单选查询,学历支持下拉多选查询,高级查询可选择查询字段以查询方式(=,>,between,in等),点击部门某节点,过滤所选部门用户数据,列表中性别以图标区分,学历用不同颜色区分,支持导入导出,支持批量删除;用户表单支持自定义验证规则,性别和学历为数据字典,部门字段为下拉选择部门树;以及新增编辑分页等常规操作;(一般做这样的功能,中等水平开发人员,可能需要1周/人以上的开发时间,但用自定义表单可能只需要20多分钟,且不需要写代码)
部门管理
用户列表
高级查询
用户表单
自定义表单是一个系统性的工程,绝非想象的那么容易,但是难度也没那么难,关键在于数据建模和规则定义,由于之前作者在一家企业负责研发工作流引擎,对于自定义表单有一定的认识,所以个人就在策划把她转换为实现,后续的代码和文章就当作感兴趣同学的抛砖引玉吧。
有问题建议在gitee上提issue,或者与作者联系:邮箱:[email protected],QQ:523477776