<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[andybbc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/andybbc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; andybbc]]></copyright><item><title><![CDATA[规则引擎可视化]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/120259604</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/120259604</guid><author>andybbc</author><pubDate>Mon, 13 Sep 2021 07:29:42 +0800</pubDate><description><![CDATA[本篇主要讲述决策引擎进阶之路的重要实践，如何通过产品上的微创新和技术突破，实现工作效率、系统性能的革命性提升？践行“技术赋能金融”的宗旨。进阶之路包含作者三年工作经验的实践与积累，所以整理分享，希望对大家也有帮助，开始吧！


01 什么是决策引擎

决策引擎是对复杂的业务逻辑抽象化剥离出来的业务规则进行不同的分支组合、关联，然后层层规则递进运算，最终输出决策结果的产品。

为政策分析师（Business Analyst，简称BA）、模型分析师（Model Analyst，简称MA）等业务人员提供指标管理.]]></description><category></category></item><item><title><![CDATA[决策引擎EngineX平台实践]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/109674897</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/109674897</guid><author>andybbc</author><pubDate>Fri, 13 Nov 2020 16:57:28 +0800</pubDate><description><![CDATA[一、决策引擎由来

规则引擎（即决策引擎）是由推理引擎发展而来，是一种嵌入在应用程序中的组件，实现了将业务决策从应用程序代码中分离出来，并使用预定义的语义模块编写业务决策。接收数据输入，解释业务规则，并根据业务决策做出业务规则。



二、决策引擎概述

决策引擎是指企业针对其客户提供个性化服务的决策平台，这些个性化服务决策包括：风险决策、精确营销决策等。

决策引擎就是把商业规则转换成商业决策，在决策引擎之上可以开发出各种不同的解决方案。



三、决策引擎的优点

传统的规则模型主要内嵌在后台...]]></description><category></category></item><item><title><![CDATA[代理模式]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/55307530</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/55307530</guid><author>andybbc</author><pubDate>Fri, 17 Feb 2017 00:04:28 +0800</pubDate><description><![CDATA[代理模式

代理模式的定义很简单：给某一对象提供一个代理对象，并由代理对象控制对原对象的引用。

 

代理模式的结构

有些情况下，一个客户不想活着不能够直接引用一个对象，可以通过代理对象在客户端和目标对象之间起到中介作用。代理模式中的角色有：

1、抽象对象角色

声明了目标对象和代理对象的共同接口，这样一来在任何可以使用目标对象的地方都可以使用代理对象

2、目标]]></description><category></category></item><item><title><![CDATA[Netty源码解读（一）概述]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/55061766</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/55061766</guid><author>andybbc</author><pubDate>Mon, 13 Feb 2017 23:57:30 +0800</pubDate><description><![CDATA[Netty和Mina是Java世界非常知名的通讯框架。它们都出自同一个作者，Mina诞生略早，属于Apache基金会，而Netty开始在Jboss名下，后来出来自立门户Netty.io。关于Mina已有@FrankHui的Mina系列文章，我正好最近也要做一些网络方面的开发，就研究一下Netty的源码，顺便分享出来了。
 Netty目前有两个分支：4.x和3.x。4.0分支重写了很多东西，并对项]]></description><category></category></item><item><title><![CDATA[MySQL建表规范与常见问题]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54669648</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54669648</guid><author>andybbc</author><pubDate>Sun, 22 Jan 2017 17:09:35 +0800</pubDate><description><![CDATA[一、 表设计

库名、表名、字段名必须使用小写字母，“_”分割。库名、表名、字段名必须不超过12个字符。库名、表名、字段名见名知意,建议使用名词而不是动词。建议使用InnoDB存储引擎。存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE。建议使用UNSIGNED存储非负数值。建议使用INT UNSIGNED存储IPV4。整形定义中不添加长度，比如使用INT，而不是INT(4)。使]]></description><category></category></item><item><title><![CDATA[SpringMVC拦截器（资源和权限管理）]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54669637</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54669637</guid><author>andybbc</author><pubDate>Sun, 22 Jan 2017 17:08:50 +0800</pubDate><description><![CDATA[1.DispatcherServlet
    SpringMVC具有统一的入口DispatcherServlet，所有的请求都通过DispatcherServlet。
    DispatcherServlet是前置控制器，配置在web.xml文件中的。拦截匹配的请求，Servlet拦截匹配规则要自已定义，把拦截下来的请求，依据某某规则分发到目标Controller来处理。  所以我们现在w]]></description><category></category></item><item><title><![CDATA[mysql 用户角色权限表建立]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54669575</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54669575</guid><author>andybbc</author><pubDate>Sun, 22 Jan 2017 17:01:34 +0800</pubDate><description><![CDATA[建表sql





[sql] view
 plain copy


 



#创建表使用的数据库  
use springmvc;   
#权限表   
create table authoritys(    
    id_ smallint unsigned primary key auto_increment,#权限id  
  name_ var]]></description><category></category></item><item><title><![CDATA[Java的多线程机制系列：(四)不得不提的volatile及指令重排序(happen-before)]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54669549</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54669549</guid><author>andybbc</author><pubDate>Sun, 22 Jan 2017 16:59:56 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/mengheng/p/3495379.html




一、不得不提的volatile


volatile是个很老的关键字，几乎伴随着JDK的诞生而诞生，我们都知道这个关键字，但又不太清楚什么时候会使用它；我们在JDK及开源框架中随处可见这个关键字，但并发专家又往往建议我们远离它。比如Thread这个很基础的类，其中很重要的线程]]></description><category></category></item><item><title><![CDATA[常见性能优化策略的总结]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54618410</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54618410</guid><author>andybbc</author><pubDate>Thu, 19 Jan 2017 17:51:10 +0800</pubDate><description><![CDATA[转自：http://tech.meituan.com/performance_tunning.html




本文要感谢我职级评定过程中的一位评委，他建议把之前所做的各种性能优化的案例和方案加以提炼、总结，以文档的形式沉淀下来，并在内部进行分享。力求达到如下效果：

1. 形成可实践、可借鉴、可参考的各种性能优化的方案以及选型考虑点，同时配合具体的真实案例，其他人遇到相似问题时，不]]></description><category></category></item><item><title><![CDATA[MySQL索引原理及慢查询优化]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54618368</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54618368</guid><author>andybbc</author><pubDate>Thu, 19 Jan 2017 17:46:26 +0800</pubDate><description><![CDATA[MySQL凭借着出色的性能、低廉的成本、丰富的资源，已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色，但所谓“好马配好鞍”，如何能够更好的使用它，已经成为开发工程师的必修课，我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统，读写比例在10:1左右，而且插入操作和一般的更新操作很少出现性能问题，遇到最多的，也是最容易出问]]></description><category></category></item><item><title><![CDATA[Innodb中的事务隔离级别和锁的关系]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54618350</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54618350</guid><author>andybbc</author><pubDate>Thu, 19 Jan 2017 17:45:12 +0800</pubDate><description><![CDATA[前言:

我们都知道事务的几种性质，数据库为了维护这些性质，尤其是一致性和隔离性，一般使用加锁这种方式。同时数据库又是个高并发的应用，同一时间会有大量的并发访问，如果加锁过度，会极大的降低并发处理能力。所以对于加锁的处理，可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制，来抛砖引玉，让读者更好的理解，在事务处理中数据库到底做了什么。


#一次封]]></description><category></category></item><item><title><![CDATA[Oracle中Hint深入理解]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54618330</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54618330</guid><author>andybbc</author><pubDate>Thu, 19 Jan 2017 17:42:58 +0800</pubDate><description><![CDATA[Hint概述 
基于代价的优化器是很聪明的，在绝大多数情况下它会选择正确的优化器，减轻了DBA的负担。但有时它也聪明反被聪明误，选择了很差的执行计划，使某个语句的执行变得奇慢无比。

此时就需要DBA进行人为的干预，告诉优化器使用我们指定的存取路径或连接类型生成执行计划，从 而使语句高效的运行。例如，如果我们认为对于一个特定的语句，执行全表扫描要比执行索引扫描更有效，则我们就可以指示优化器使]]></description><category></category></item><item><title><![CDATA[oracle中 connect by prior 递归算法]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54618278</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54618278</guid><author>andybbc</author><pubDate>Thu, 19 Jan 2017 17:37:09 +0800</pubDate><description><![CDATA[Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的，其基本语法是： 
select ... from tablename start with 条件1 
connect by 条件2 
where 条件3; 
例： 
select * from table 
start with org_id = 'HBHqfW]]></description><category></category></item><item><title><![CDATA[慎用create table as select,一定要注意默认值的问题]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54618231</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54618231</guid><author>andybbc</author><pubDate>Thu, 19 Jan 2017 17:32:59 +0800</pubDate><description><![CDATA[再做一些数据迁移时候，很多人会使用create table  as select * from table where id=-1的方式来年建立一摸一样的表，但是这样做有个很大的弊端，不能将原表中的default value也一同迁移过来，可以看下面的例子：

 

第一，新建一个表

 

-- Create table
create table table01
(
  i]]></description><category></category></item><item><title><![CDATA[SELECT INTO 和 INSERT INTO SELECT 两种表复制语句]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54618194</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54618194</guid><author>andybbc</author><pubDate>Thu, 19 Jan 2017 17:30:10 +0800</pubDate><description><![CDATA[Insert是T-sql中常用语句，Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中，经常会遇到需要表复制的情况，如将
 一个table1的数据的部分字段复制到table2中，或者将整个table1复制到table2中，这时候我们就要使用SELECT INTO ]]></description><category></category></item><item><title><![CDATA[oracle分析函数技术详解（配上开窗函数over()）]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/54618126</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/54618126</guid><author>andybbc</author><pubDate>Thu, 19 Jan 2017 17:24:15 +0800</pubDate><description><![CDATA[一、Oracle分析函数入门



分析函数是什么？
分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数，它可以在数据中进行分组然后计算基于组的某种统计值，并且每一组的每一行都可以返回一个统计值。

          

分析函数和聚合函数的不同之处是什么？
普通的聚合函数用group by分组，每个分组返回一个统计值，而分析函数采用partition by分]]></description><category></category></item><item><title><![CDATA[spring源码编译后缺少的jar包]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/52968102</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/52968102</guid><author>andybbc</author><pubDate>Sat, 29 Oct 2016 23:23:21 +0800</pubDate><description><![CDATA[将spring源码导入eclipse之后，会发现spring-core下缺少spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.2.jar两个包

通过阅读源码发现为了避免第三方class的冲突，spring把最新的cglib和objenesis给repack了，

而且并没有提供这部分的代码在源码里，直接在jar包当中。]]></description><category></category></item><item><title><![CDATA[如何打一手好Log]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/52966548</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/52966548</guid><author>andybbc</author><pubDate>Sat, 29 Oct 2016 20:49:55 +0800</pubDate><description><![CDATA[如果项目上过线的话，那你一定知道Log是多么重要。
　　为什么说Log重要呢？因为上线项目不允许你调试，你只能通过Log来分析问题。这时打一手好Log的重要性绝不亚于写一手好代码。项目出问题时，你要能拿出Log证明自己负责的部分没有问题，如果是自己的问题，要从Log里快速找出错误原因。如果没有从Log里找出错误原因，那一定是一件很悲催的事情，特别是在bug不容易重现的情况下。那简直就是叫天天不灵]]></description><category></category></item><item><title><![CDATA[Spring事务管理失效的原因]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/52913525</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/52913525</guid><author>andybbc</author><pubDate>Mon, 24 Oct 2016 17:20:48 +0800</pubDate><description><![CDATA[个人认为, spring的声明式事务是spring让人感觉用的最爽的功能之一. 可是在有些时候, 我们使用spring的声明式事务时却并没有效果. 是spring的问题吗? 下面我们先大致说明一下spring声明式事务的原理, 然后再分析在什么情况下, spring的声明式事务会失效.
代理模式
我们知道, spring的声明式事务是基于代理模式的. 那么说事务之前我们还是大致的介绍一下代理模]]></description><category></category></item><item><title><![CDATA[Java常用8大排序算法+二分法查找法]]></title><link>https://blog.youkuaiyun.com/andybbc/article/details/52894997</link><guid>https://blog.youkuaiyun.com/andybbc/article/details/52894997</guid><author>andybbc</author><pubDate>Sat, 22 Oct 2016 21:20:51 +0800</pubDate><description><![CDATA[排序算法分类： 
1）插入排序（直接插入排序、希尔排序） 
2）交换排序（冒泡排序、快速排序） 
3）选择排序（直接选择排序、堆排序） 
4）归并排序 
5）分配排序（基数排序） 
所需辅助空间最多：归并排序 
所需辅助空间最少：堆排序 
平均速度最快：快速排序 
不稳定：快速排序，希尔排序，堆排序。 
先来看看 8种排序之间的关系： 
  
 1.直接插入排序 
（1）]]></description><category></category></item></channel></rss>