- 博客(15)
- 资源 (5)
- 收藏
- 关注
原创 领域模型经验分享
2018年入职新公司,在公司中负责重构一个比较老陈的系统,也是这次机会让我首次解除到了领域建模这个方法论。首次接触领域建模的时候,主要以一个程序员的角度去理解和学习,并开始把充血模型引入到项目中。对于战略建模部分的知识并未太多关注,而且由于实际的经验不足和视角不够开阔等原因,理解起来也比较困难。在学习初期阶段,因为是做java出身,对于类和对象的认知有些基础,所以唯一能稍微看懂的就是实体和值对象。但由于认识不够深刻,在战术建模的时候无法精准的建模成值对象、实体、聚合。在这个阶段也提出了很多疑问。
2021-09-08 10:05:07
281
翻译 Drools——编写和执行规则(一)
学习任何新得事物最好的方式就是去尝试。因此,在本章节,我们开始切入编写和执行我们第一个规则。我们将会涵盖大多数关于规则语言重要的点,如何高效的编写对你领域有意义的规则。这个章节将会使用前一章介绍的eShop的模型来演示一系列规则应用的场景。在我们开始编写之前,在这章的前半部分,你会学到如何安装使用Drools所需要的所有的标准工具和这本书提供的示例。你将会从头开始创建项目,因此,你会用到本章作...
2019-06-09 22:26:36
2244
翻译 Rete算法
Rete算法由Charles Forgy博士发明,并在1978-79年发表到他的博士论文中。实际的简易版本在1982刊登在报纸上(http://citeseer.ist.psu.edu/context/505087/0)。rete一词在拉丁语中代表着网络的含义。Rete算法被分为两部分:编译期和运行期。编译算法描述了规则如何在生产内存中生成一个高效、区别度高的网络的过程。通俗来讲,随着数据经过...
2019-06-03 22:33:33
1076
翻译 Drools——我们何时应该使用规则
目录何时使用规则引擎复杂的场景、简单的规则不断变化的场景示例-eShop系统何时不使用规则引擎总结何时使用规则引擎规则引擎是一个非常强大的组件。在我们定义规则逻辑的时候,它为我们提供了大量的变化。它允许我们可以在非常短的时间内完成对我们系统复杂度、性能和稳定性的处理。这些改进对一些系统是很有用的,业务规则可以在你发现的一些类型的系统里进行实现和添加。尽管如...
2019-05-25 10:14:28
916
翻译 Drools——为什么使用规则
目录为什么使用规则规则独立规则执行链规则的原子性规则顺序规则执行生命周期规则之间的协作使用BRMS让更多人参与到规则开发让规则引擎做这些事情规则引擎算法为什么使用规则关于为什么规则很有用,在这一点上,你大概一直都有点困惑。如果我们这样想,就一条或几条规则而言,我们认为可能直接使用类似于Java的命令式代码会更好一些。作为开发者而言,我们通常将需求拆分...
2019-05-17 13:52:17
1346
翻译 Drools——什么是规则
在这个章节,我们将会详细讲述业务规则:业务规则的定义和构成 业务规则对于开发生命周期的重要性 drools等开发技术的使用以及其为组织中的开发人员和其他所有人能提供的工具什么是规则生活中我们每天都在被规则驱动。在开车的时候每当遇到红灯我们就会停下来,我们这样做就是在遵循当红灯亮时我们就要停下来的规则。同时我们也都知道这个规则,即当我们到达某个指定的年龄时便可以通过考试来获得驾照。...
2019-05-09 13:53:50
372
原创 规则引擎简介
由于规则引擎的特殊性,其应用场景并没有像其他框架(spring,mybatis)较多,所以大家在选用规则引擎之前,往往都会有很多疑问,最经常会提出的几个问题就是:什么时候用规则引擎? 规则引擎比在代码中编写if then有哪些优势? 使用规则引擎的时候有哪些需要注意事项?规则引擎的特点使用规则引擎编写规则跟写业务代码或中间件代码有很大的不同,当然这些不同也是规则引擎的特点,使用规则引...
2019-04-10 14:52:13
4313
原创 spring boot中的ApplicationContextInitializer
什么是ApplicationContextInitializer?作用是什么?注释中描述ApplicationContextInitializer主要在ConfigurableApplicationContext的refresh方法中作为callback作用(spring boot应用在启动时,会在prepareContext时调用ApplicationContextInitializer的i...
2019-04-01 18:02:56
885
原创 算法分析——排序算法(归并排序)复杂度分析(主定理法)
前两篇文章中分别是要用递归树、代换法对归并排序的时间复杂度进行了简单的分析和证明,经过两次分析后,我们发现递归树法的特点是:可以很直观的反映出整个归并排序算法的各个过程,但因为要画出递归树所以比较麻烦,所以递归树算法更适合新手,因为它可以让分析者更直观、简易的理解递归式算法的各个过程并对各个过程的分析、合并,但因为需要要画递归树,所以比较复杂。代换法也仅适合在已经大致猜测出算法的复杂...
2018-07-25 17:19:34
13501
1
原创 算法分析——排序算法(归并排序)复杂度分析(代换法)
上篇文章中我们对归并排序的时间复杂度使用递归树法进行了简答的分析,并得出了结果归并排序的时间复杂度为,这里将使用代换法再进行一次分析。使用代换法解递归式的时候,主要的步骤有两步: 1)猜测解的结果 2)使用数学归纳法验证猜测结果 由上篇文章的递归树分析中我们得出,我们这里将使用代换法对归并排序的递归式进行求解,下面分别用,,三个证明进行代入分析。...
2018-07-19 23:07:49
2257
2
原创 算法分析——排序算法(归并排序)复杂度分析(递归树法)
前面对算法分析的一些常用的 渐进符号 做了简单的描述,这里将使用归并排序算法做为一个实战演练。这里首先假设读者对归并排序已经有了简单的了解(如果不了解的同学可以自行百度下归并排序的原理)。了解此算法的同学应都知道,归并排序的主要思想是 分而治之(简称分治)。分治算法的基本模式也基本上分为以下三大步骤:1.问题分解成若干子问题,使子问题的解决起来足够简单,甚至达到常量级别θ(1)2.子问...
2018-07-15 23:03:26
7787
原创 算法分析——算法的渐进效率分析 和 渐进符号大O、大Ω、大θ、小o、小ω
上章 算法概述 中讲述了 在设计算法和比较算法时,设计人员更倾向于假设输入规模n无限大,然后再比较算法的渐进效率。为什么要分析算法的渐进效率,而不是直接按照输入规模直接计算效率进行比较?很直观的原因就是,当输入规模小的时候,各种算法间的差距并不会太大,对于大部分应用程序来讲,这些差距都可以被忽略。现实原因是,要精确计算算法执行时所消耗的资源是非常繁琐,代价较大,甚至说不太切于实际的。所以就有人发明...
2018-05-07 15:12:59
24774
3
原创 算法分析 —— 概述
作为一个已经2年经验的程序员,随着项目经验的逐渐积累,特别是技术栈深度和广度的逐渐扩展,现在越来越认识到算法基础 也是越来越重要,在某些时候更是会让你在技术栈深度扩展时过早的出现瓶颈(只知其一不知其二或者无法做到举一反三)。所以现在决定在算法领域开始自己的积累,也希望大家可以一起成长。 在算法的学习中,算法分析是基础的一部分,在设计算法的时候,效率是非常重要的因素之一...
2018-05-03 23:09:42
1793
原创 Mysql Update语句 SET多字段时,使用 逗号连接和AND连接的区别
对于有经验的程序员都知道正常的UPDATE语句的格式应该是如下所示:但往往一些经验比较欠缺的选手(就比如说我...)中在写SQL的时候,并无法瞬间写出标准格式的SQL语句。下面我就简单描述下我的个人经历!表结构和表数据如下所示:CREATE TABLE `coupon_pool` ( `id` int(12) NOT NULL AUTO_INCREMENT, `pu...
2018-03-30 17:05:54
158746
11
原创 eclipse通过maven-archetype-plugin插件创建项目原型
周末项目老大说回去研究一下maven-archetype-plugin这个插件,之前maven用的不太多,这个插件也没听说过,但周末简单看一下,发现这个插件真的好强大。这几天看了好多帖子,也做了好多实验,自己总结了一些经验,在这向大家分享一下。本人菜鸡一枚,大神们如果有不认同的请及时指出。我用的是eclipse4.6.2,首先使用eclipse创建一个maven项目,并把项目的想要搭成的基础框...
2017-02-28 22:50:51
3680
动态规划 01背包算法 matlab源码
2018-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人