当前位置: 首页 > news >正文

网站系统建设招标公告wordpress中添加登陆页面

网站系统建设招标公告,wordpress中添加登陆页面,宿迁房产网安居客,怎么把网站做的更好文档修订历史 时间版本主要内容2023.05.12v1.0.0初始化 1. 概述 1.1 需求 1.1.1 需求背景 当同一个业务场景中,有非常多的业务分支后,需要有非常多的 if 判断,来承载这些简单的业务逻辑,但随着业务的发展,业务逐渐…

文档修订历史

时间版本主要内容
2023.05.12v1.0.0初始化

1. 概述

1.1 需求

1.1.1 需求背景

   当同一个业务场景中,有非常多的业务分支后,需要有非常多的 if 判断,来承载这些简单的业务逻辑,但随着业务的发展,业务逐渐复杂,if 分支越来越多,可维护性越来越差,技术债务越来越重。
   if-else 的目的,不外乎以下若干场景:

  1. 异常逻辑处理
  2. 特殊case
  3. 不同业务流程处理
  4. … …

   但这些分支逻辑难以避免,我们需要考虑如何正视它。

1.1.2 需求目标

   业务规则往往是一个庞大且不断变化的规则组合,这使得系统非常复杂,如果只是使用常规代码,则会产生大量的维护工作。

   我们使用规则引擎,将庞大的规则组合,从业务代码中抽离出来维护到一个数据源中,实现 将业务流程与业务规则分离 的目标。
在这里插入图片描述

专题分析

规则引擎方案调研

方案详情优点缺点
Drools开源规则引擎,由Red Hat开发和维护。它提供了一个成熟的规则引擎和规则管理系统,支持规则的动态定义、评估和执行。1. 功能丰富 2. 支持DB存储规则1. 复杂度高,学习成本高
EasyRule轻量级框架,基本上只提供了一个规则判断和行为执行的框架。通过一些注解实现抽象的方式去做规则。学习成本低1.不包含规则编排等功能 2. 不提供连接DB的能力,修改配置后不实时生效

Drools

Drools常用 API 使用介绍

EasyRule

EasyRule常用API
EasyRule-github-代码用例

EasyRule 使用介绍

   主要涉及的模型如下:

  • Rule:规则的生成
    • 多种方式来定义规则
  • Condition:执行条件的定义
  • Action: 条件满足后的行为
  • RuleEngine:执行决策的引擎

Rule的生成方式

  1. 注解方式
@Rule(name = "my rule1", description = "my rule description", priority = 1)
public class MyRule1 {@Conditionpublic boolean when(@Fact("type") Integer type) {return type == 1;}@Action(order = 1)public void execute1(Facts facts) throws Exception {log.info("MyRule1 execute1, facts={}", facts);}@Action(order = 2)public void execute2(Facts facts) throws Exception {log.info("MyRule1 execute2, facts={}", facts);}
}
  1. 流式API
Rule weatherRule = new RuleBuilder().name("weather rule").description("if it rains then take an umbrella").when(facts -> facts.get("rain").equals(true)).then(facts -> System.out.println("It rains, take an umbrella!")).build();
  1. 表达式方式
    支持 MVEL , SpEL and JEXL
Rule weatherRule = new MVELRule().name("weather rule").description("if it rains then take an umbrella").when("rain == true").then("System.out.println(\"It rains, take an umbrella!\");");
  1. 规则描述文件
---
name: adult rule
description: when age is greater than 18, then mark as adult
priority: 1
condition: "person.age > 18"
actions:- "person.setAdult(true);"
---
name: weather rule
description: when it rains, then take an umbrella
priority: 2
condition: "rain == true"
actions:- "System.out.println(\"It rains, take an umbrella!\");"

思考与方案改进

  1. 决策引擎是否可以将决策配置转移到 DB 中,每次配置调整后,可以实时生效?
  2. API中,是否可以按不同的业务,传入一个业务唯一id(如决策码),决策出一个boolean或决策出一个String内容,简化业务接入放的使用?
http://www.15wanjia.com/news/183590.html

相关文章:

  • 网站主页面设计多少钱深圳装修设计公司排名榜
  • 二建考试查询入口seo产品是什么意思
  • 上海网站建设哪里便宜网站建设需要考虑的问题
  • 百度网站上做推广受骗无为住建设局网站
  • 网站浏览器兼容性问题吗免费域名注册可解析
  • 移动开发和网站开发黄石网站建设报价
  • 网站基本功能网址导航哪个好?
  • 优站点网址收录网站群建站系统
  • 青岛高端网站设计公司wordpress比较
  • 为什么打开网址都是站长工具织梦做的网站首页排版错误
  • 溧阳免费做网站建设信息网站
  • 电子商务网站开发的书建筑设计学校排名
  • 银川网站设计联系电话设计制作实践活动100字
  • 网站开发使用的框架百度关键词排名点击器
  • 企业网站静态模板下载外贸类网站
  • 怎么样建设一个电影网站视频dedecms 关闭网站
  • 如何把电脑改成服务器做网站怎样申请网络域名
  • 襄阳市做网站哪里培训网站开发好
  • 搭建 网站的环节wordpress自定义字段使用
  • 中国住建部网站查询网咸阳市网站开发
  • 工程信息网站排名wordpress修改网站标题
  • 开发网站需要怎么做html网页制作代码大全菜鸟
  • 财税营销型网站我的世界大盒子怎么做视频网站
  • 欧美网站建设公司saas平台
  • 月子中心网站建设需求学生个人网页制作 设计具体代码
  • 网站广告推送怎么做如何建立网站的快捷方式
  • 主机网站建设在线ps照片处理手机版
  • 网站开发流程三部分东莞企业模板建站
  • 华润置地建设事业部官方网站山西响应式网站建设推荐
  • 手机网站功能开发方案ui设计可以在ipad上面做嘛?