公司OA系统是之前的设计,有很多不合理的地方,比如流程与业务绑定的时候。
原来的设计:
在工作流定义 CanComment=1
在业务中进行读取,如果CanComment=1则可以填写普通意见。
在工作流定义 CanDeal=1
在业务中进行读取,如果CanDeal=1 则可以填写领导意见。
业务里的处理方式,在后台读取工作流定义,然后发送到前端,前端判断变量,进行意见的新建和编辑操作。
这个设计有一个重大问题,如果再出现一个比如局长意见,那么工作流定义和业务定义里都需要添加,尤其是业务程序需要同时修改前端和后台程序。
所以这个设计事实上可以直接修改为:
在工作流中定义: CommentType=Deal,Comment
在业务中读取 CommentType 传递到前端,前端直接拆分,进行新建和编辑操作。
** 原则:如果数据本身可以用来控制逻辑,那么就直接使用数据本身来控制,不要额外添加控制字段,这会加深复杂度 **
需要设计一个日志的添加和查询系统,所有的 exception 都需要写到日志中。