装饰者设计模式在业务中的实践 ​ 装饰者设计模式在顾名思义就是在原来逻辑上进行一层装饰逻辑,从而实现不通过if-else实现对优雅的对基础逻辑的扩充。在JDK源码中的InputStream中就有使用了装饰者的设计模式。从而实现通过BufferedInputStream、DataInputStream等其他修饰InputStream,增加了缓存读取、类型读取等功能,相当于InputStream之上加了很多修饰功能,在所以它是一个装饰器模式。 ​ 这里inputStream作为一个被装饰的类,然后BufferedInp…

2022年1月15日 0条评论 2点热度 阅读全文

  概念 零概率问题:在计算事件的概率时,如果某个事件在观察样本库(训练集)中没有出现过,会导致该事件的概率结果是  $0$ 。这是不合理的,不能因为一个事件没有观察到,就被认为该事件一定不可能发生(即该事件的概率为 $0$ )。   拉普拉斯平滑(Laplacian smoothing) 是为了解决零概率的问题。 法国数学家 拉普拉斯 最早提出用 加 $1$  的方法,估计没有出现过的现象的概率。 理论假设:假定训练样本很大时,每个分量 $x$ 的计数加  $1$  造成的…

2022年1月15日 0条评论 7点热度 阅读全文

Cache一致性协议 在说伪共享问题之前,有必要聊一聊什么是Cache一致性协议 局部性原理 时间局部性:如果一个信息项正在被访问,那么在近期它很可能还会被再次访问 比如循环、方法的反复调用等 空间局部性:如果一个存储器的位置被引用,那么将来他附近的位置也会被引用 比如顺序结构、数组 Cache的作用 CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。为了解决这个问题,CPU厂商在CPU中内置了少量的高速缓存Cache,以解决访存速度和CPU运算速度之间不匹配的问题 带…

2022年1月8日 0条评论 9点热度 阅读全文

JavaScript的执行过程 前言 编写一段JavaScript代码,它是如何执行的呢?简单来说,JS引擎在执行JavaScript代码的过程中需要先解析再执行。那么在解析阶段JS引擎又会进行哪些操作,接下来就一起来了解一下JavaScript在执行过程中的详细过程,包括执行上下文、GO、AO、VO和VE等概念的理解。 1.初始化全局对象 首先,JS引擎会在执行代码之前,也就是解析代码时,会在我们的堆内存创建一个全局对象:Global Object(简称GO),观察以下代码,在全局中定义了几个变量: 示例代码: …

2022年1月7日 0条评论 12点热度 阅读全文

系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 .NET 6 Web API应用使用最多的场景是作为后端微服务应用,在实际的项目中,我们一般都是通过将应用程序打包成docker镜像进行发布,以便更好地进行部署,包括基于Kubernetes平台的微服务项目部署。 一般来说作为微服务部署的应用程序,都是位于某个虚拟子网下的,也就是说它们不直接暴露给外部用户,请求都是走的内部网络,所以很少会有HTTPS的需求,但是作为演示,在本文中我们还是会介绍如何实现HTTPS访问docker中的应用程序。 …

2022年1月1日 0条评论 4点热度 阅读全文

首先区分可迭代对象(Iterable)、迭代器(Iterator) 可迭代对象:包含__iter__方法的对象为可迭代对象,如List、Tuple、Dictionary 迭代器:包含__iter__、__next__方法 可迭代对象属于半成品 --> 而迭代器属于直接食用产品 以下均在for 循环遍历中即是根据 iter 方法判断该对象是否是可迭代序列 1. 定义一个可迭代类: class Iterat(): def __init__(self): self.arr = [1,2,3] self.loc = …

2021年12月30日 0条评论 20点热度 阅读全文

题外话 最近在阅读《深入理解Java虚拟机》,其中有一小节实战是自己编译JDK,实际操作下来后遇到问题不少,为此特地记录,也希望可以给大家带来一些参考! 前置准备 平台及工具:Windows 10 + WSL(ubuntu 20.04) + CLion(2021.2.2) OpenJDK12下载地址:https://hg.openjdk.java.net/jdk/jdk12/ 下载安装解压即可 编译工具版本推荐: GCC 7.4及以上 # Ubuntu上安装GCC命令,该命令默认安装9.3版本(2021年) sud…

2021年12月28日 0条评论 59点热度 阅读全文

NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 开源地址:https://github.com/NewLifeX/X (求star, 1067+)   在大数据分析处理中,需要对海量数据进行添删改操作,常规单行操作难以满足要求,批量操作势在必行! 飞仙(htt…

2021年12月24日 0条评论 10点热度 阅读全文

最近公司开始一股年终总结浪潮,看着同事们写大作文式的“内卷”总结,我不禁在想我这一年做了什么,那么也就有了这篇总结推文,当然它也是我每年的习惯。 传送门:Edison的2020年终总结 1 也谈2021 初为人父,感知父母之不易 2020年最大的里程碑是结婚,那么2021年最大的历程就是当爸爸了。 只是去年的我也不会知道,儿子来的多么的不易,中途经历了许多挫折,那些日子还历历在目,那时经常都在担心孩子过早出生可能带来的影响,我们也因此经受了精神上的折磨...  4月21日,儿子在这个对我们颇有纪念意义的日…

2021年12月23日 0条评论 1点热度 阅读全文

目录 问题 思路 kafka参数问题 支持batchmode的问题 参数提交至kafkasource的问题 group by支持问题 实现 编译 测试 因为在一篇博文上看到介绍“汽车之家介绍flink数据平台”中提到“基于 SQL 的开发流程”。基于kafka connector,通过source,sink,transformation三条sql完成数据接入,逻辑转换处理,结果落地三步工作。出于兴趣,自己去简(粗)单(糙)实现了这其中的一个小功能。相关的博文在这里,相关的代码上传到github。 简单说,通过kaf…

2021年12月22日 0条评论 29点热度 阅读全文