前言
五一放假五天,没白天没黑夜的写了5天代码,把业务流的核心实现了出来,
我解释下什么是业务流程,本质就是在目前的编程语言基础上重新封装一套不需要写代码的编程技术。
我给业务流程分成了2大类和7小类。
两大类分别是,业务流程和事件流程。
7小类分别是,查询、删除、增加、修改、判断、请求、动态执行。
对应的分别是 select 、delete 、insert、update、if、http、Domain。
一、2大类介绍(业务流和事件流)
1.业务流
业务流也可以叫做定时任务流程,这里的实现思路是,把业务图形化,
可以不用写一行代码实现跟写代码一样的效果。
首先需要设计一套规则,在该规则下可以使用系统内的所有参数和变量来实现业务,这里主要借鉴了iPhone的快捷指令,和一些幼儿编程工具。
整个核心也就写了500多行代码,
目前还没有全部串起来,可以单个演示下。
查询演示
解析后的结果
结果
SELECT * FROM rcs_main_task where destination_node_code ='10017' AND (task_type ='T1') AND vehicle ='ZFZ02-AGV-001'
其他的就不列举了,列举个特殊的条件判断,下面是条件判断的效果。
结果
本质上,就是创造了一套不需要写代码就能实现,增删改查,业务判断的功能,我想了很多,大部分的开发都是在写这些东西,为什么不能让任何人都能做业务,所以就有了业务流,但是业务流是定时执行的,如果我修改了某一项值的内容怎么触发业务操作哪?我也想过了本质上就是调用关系,
所以有了事件流。
2.事件流
事件流是对数据库操作和对象操作的底层封装,当改变某一个值后,同步去检查有没有触发业务操作,如果有就执行对应的流程。
事件流的核心还是业务流就不细说了。
二、七个小类介绍
7小类分别是,查询、删除、增加、修改、判断、请求、动态执行。
对应的分别是 select 、delete 、insert、update、if、http、Domain。
为什么会有这7个小类哪?
因为我认真思考过开发人员平时在干什么,大部分的开发人员平时做得事情90%都在使用上面这些东西的组合,查询数据,判断数据,对数据修改或者删除,既然这样那么把他们图形化是不是谁都可以写业务了。
1.sql解析
我把详细的对照分享给大家:
public static string SqlOperatorConversion(string @operator, string Data)
{
switch (@operator)
{
case "$eq": return "=" + "'"+Data+"'";
case "$ne": return "!=" + "'"+Data+"'";
case "$is": return "IS NULL";
case "$not": return "IS NOT NULL";
case "$empty": return "IS NULL";
case "$notEmpty": return "IS NOT NULL";
case "$col": return "=" + "'"+Data+"'";
case "$in": return "IN(" + "'"+Data+"'" + ")";
case "$notIn": return "NOT IN(" + "'"+Data+"'" + ")";
case "$and": return "AND";
case "$or": return "OR";
case "$gt": return ">" + "'"+Data+"'";
case "$gte": return ">=" + "'"+Data+"'";
case "$lt": return "<" + "'"+Data+"'";
case "$lte": return "<=" + "'"+Data+"'";
case "$between": return "BETWEEN";
case "$notBetween": return "NOT BETWEEN";
case "$like": return "LIKE '%" + Data + "%'";
case "$notLike": return "NOT LIKE '%" + Data + "%'";
case "$includes": return "LIKE '%" + Data + "%'";
case "$notIncludes": return "NOT LIKE '%" + Data + "%'";
default:
break;
}
return @operator;
}
2.判断解析
代码如下:
public static string ConditionOperatorConversion(string @operator)
{
switch (@operator)
{
case "and": return " && ";
case "or": return " || ";
case "equal": return " == ";
case "notEqual": return " != ";
case "gt": return " > ";
case "gte": return " >= ";
case "lt": return " < ";
case "lte": return " <= ";
default:
break;
}
return @operator;
}
总结
提示:目前还没有完全走通,只是写完了大部分代码,心里还是有点小兴奋的所有写篇博客纪念一下。
在写这套框架的时候我越来越觉得它不像一套业务系统了,更像一套操作系统,我准备持续的做下去,开发到一定程度应该会开发给大家使用,使用我这套框架开发的速度是普通开发的几百倍,一天写一套系统不是梦。