一个提升英文单词拼写检测性能 1000 倍的算法?

2021-07-25
阅读 8 分钟
3.4k
序言小明同学上一次在产品经理的忽悠下,写好了一个中英文拼写纠正工具:[链接]。本来以为可以一劳永逸了,直到昨天闲来无事,发现了另一个开源项目,描述简要如下: {代码...} 小明以为自己眼睛花了,100W 倍,这牛吹得厉害了。秉着不信谣,不传谣的原则,小明开始了算法的学习之旅。单词拼写算法思路针对英文单词拼写...

基于 junit5 实现 junitperf 源码分析

2021-07-24
阅读 4 分钟
2.2k
前言上一节介绍了基于 junit4 实现 junitperf,但是可以发现定义变量的方式依然不够优雅。那可以让用户使用起来更加自然一些吗?有的,junit5 为我们带来了更加强大的功能。拓展阅读:浅谈性能测试基于 junit4 分析 junitperf 源码,junit4 99% 的人都不知道的秘密!没有对比,就没有伤害我们首先回顾一下 junit4 的写法...

关于 junit4 90% 的人都不知道的特性,详解 junitperf 的实现原理

2021-07-24
阅读 8 分钟
2.6k
前言上一节介绍了 [链接] 的入门使用。这一节我们从源码的角度,剖析一下其实现方式。性能测试该怎么做?Junit Rulesjunit4 小伙伴们肯定不陌生,那么 junit rules 你听过说过吗?要想基于 junit4 实现一个性能测试框架,最核心的一点在于理解 Junit Rules。官方文档:[链接]Rules 作用规则允许非常灵活地添加或重新定义...

性能测试到底该怎么做?

2021-07-23
阅读 6 分钟
4.3k
三高人群作为一名开发者,我们最长听到的就是编程界的三高:高性能、高并发、高可用。听起来非常高大上,但是性能到底如何呢?又该如何评定呢?这次我们谈一谈性能测试,看一看到底什么样才叫做高性能。本文主要从以下几个方面进行讨论。(1)性能测试是什么?(2)为什么需要性能测试?(3)性能测试如何做?(4)有哪...

从代码生成说起,带你深入理解 mybatis generator 源码

2021-07-22
阅读 15 分钟
2k
枯燥的任务这一切都要从多年前说起。那时候刚入职一家新公司,项目经理给我分配了一个比较简单的工作,为所有的数据库字段整理一张元数据表。因为很多接手的项目文档都不全,所以需要统一整理一份基本的字典表。如果是你,你会怎么处理这个任务呢?重复的工作一开始我是直接准备人工把所有的字段整理一遍,然后整理出对...

java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊!

2021-07-21
阅读 10 分钟
5.3k
简单的需求临近下班,小明忙完了今天的任务,正准备下班回家。一条消息闪烁了起来。“最近发现公众号的拼写检查功能不错,帮助用户发现错别字,体验不错。给我们系统也做一个。”看着这条消息,小明在内心默默问候了一句。“我 TND 的会做这个,就直接去人家总部上班了,在这受你的气。”“好的”,小明回复到,“我先看看”今天...

java 如何实现开箱即用的敏感词控台服务?

2021-07-20
阅读 7 分钟
1.8k
sensitive-word-adminsensitive-word-admin 是基于 sensitive-word 实现的,一款开箱即用的敏感词控台服务。特性基本的 CRUD开箱即用的配置控台简单易用的 API 服务变更日志快速开始数据库脚本执行 mysql-5.7.sql 脚本。核心表如下: {代码...} 应用启动直接运行 Applicaiton#main() 启动应用,启动日志如下: {代码...}...

吴X凡绯闻女友小怡同学被骂到清空社交平台?各大平台连敏感词库都没有的吗?

2021-07-20
阅读 7 分钟
1.2k
当然至于是否属实,其实一个人是否是海王,微信、QQ 聊天记录里面记得清清楚楚。再上升到刑事案件的时候,TX 完全可以审查所有的历史记录。腾讯视频和某电鳗解约,也不见得毫无根据,毕竟利益相关。

如何从零实现属于自己的 API 网关?

2021-07-19
阅读 12 分钟
1.8k
序言上一篇文章:你连对外接口签名都不会知道?有时间还是要学习学习。有很多小伙伴反应,对外的 API 中相关的加签,验签这些工作可以统一使用网关去处理。说到网关,大家肯定比较熟悉。市面上使用比较广泛的有:spring cloud/kong/soul。API 网关的作用(1)对外接口中的权限校验(2)口调用的次数限制,频率限制(3)...

你连对外接口签名都不知道?有时间还是要学习学习

2021-07-15
阅读 6 分钟
1.2k
背景周三,18:00。小明扭了扭微微发酸的脖子,揉了揉盯着屏幕有些干涩的眼睛。终于忙完了,临近下班,整个人心也变得放松起来。“对接方需要我们提供新的服务,下周二上线,需求我发你了,很简单的。”产品经理发过来一条消息,打破了这份美好。“我可去他的吧,每次需求都是快下班就来了。”小明不免心里嘀咕了起来,不过手...

对称加密算法汇总:AES DES 3DES SM4 java 实现入门

2021-07-15
阅读 20 分钟
2.4k
密码的世界如果你是黑帮老大,平时和手下沟通,如何保证自己的信息安全呢?在神探夏洛克的第一季中,就讲述了一个如何侦破黑帮的加密交流的故事。这种密码利用的是密码字典。密码本身可以是一本书,比如常见的《圣经》、《杀死一只知更鸟》,或者纽约地图?这种加密方式的优点就是如果不知道字典本身,基本无法破解。使...

springboot 实现拦截的 3 种方式介绍及异步执行的思考

2021-07-15
阅读 13 分钟
3.4k
springboot 拦截方式实际项目中,我们经常需要输出请求参数,响应结果,方法耗时,统一的权限校验等。本文首先为大家介绍 HTTP 请求中三种常见的拦截实现,并且比较一下其中的差异。(1)基于 Aspect 的拦截方式(2)基于 HandlerInterceptor 的拦截方式(3)基于 ResponseBodyAdvice 的拦截方式推荐阅读:统一日志框架:...

如何实现一款好用的云图(word-cloud)生成工具?

2021-07-15
阅读 2 分钟
1.1k
创作背景可以随时生成一副很酷的云图,一直是个人的梦想。很久以前,写过一个简单版本:[链接]。效果如下:不过存在一些小问题:无法自动分词无法根据词频设置字体大小于是自己在 github 上逛了一圈,发现了 kumo 这一款开源工具,入门体验发现要写 10 多行代码才能实现一个最基本的云图。这很不优雅,于是决定基于 kumo...

low-code 低代码平台 java 代码自动一键生成工具

2021-07-15
阅读 2 分钟
2.3k
low-codelow-code 是一款为 java 打造的低代码平台。开源地址:[链接]特性支持基本的增删改查支持枚举值处理支持 EXCEL 导出代码一键生成生产代码一键清理技术选型springboot 容器mybatis-plus+druid+mysql 数据库vue+element-ui 页面快速开始需要jdk 1.7+maven 3.x+mysql 5.7配置调整此处使用的是 mysql-5.7,数据库脚...

开源神器:自动生成随机 mock 数据测试对象

2021-07-15
阅读 5 分钟
3.7k
测试的痛点大家好,我是老马。每一位开发者大部分工作都是写代码、测试代码、修BUG。我们有很多测试代码,总是花费大量的实践去构建一个对象。于是就在想,能不能自动填充一个对象呢?于是去 github 查了一下,找到了一个测试神器 data-factory。[链接]data-factory作用data-factory 项目用于根据对象,随机自动生成初始...

从零开始手写缓存框架(12)redis expire 过期的随机特性详解及实现

2020-10-08
阅读 7 分钟
2.1k
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(二)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路java从零手写实现redis(六)AOF 持久化原理详解及实现java...

java 从零开始手写 redis(11)clock时钟淘汰算法详解及实现

2020-10-07
阅读 12 分钟
2.6k
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路java从零手写实现redis(六)AOF 持久化原理详解及实现java...

java 从零开始手写 redis(十)缓存淘汰算法 LFU 最少使用频次

2020-10-06
阅读 9 分钟
1.8k
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路java从零手写实现redis(六)AOF 持久化原理详解及实现java...

java 从零开始手写 redis(九)LRU 缓存淘汰算法如何避免缓存污染

2020-10-05
阅读 14 分钟
1.5k
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路java从零手写实现redis(六)AOF 持久化原理详解及实现java...

从零开始手写 redis(八)朴素 LRU 淘汰算法性能优化

2020-10-04
阅读 6 分钟
2.3k
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路java从零手写实现redis(六)AOF 持久化原理详解及实现我们...

java 从零开始手写 redis(七)LRU 缓存淘汰策略详解

2020-10-03
阅读 5 分钟
2.3k
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路java从零手写实现redis(六)AOF 持久化原理详解及实现我们...

java 从零开始手写 redis(六)redis AOF 持久化原理详解及实现

2020-10-02
阅读 10 分钟
3.1k
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路我们前面简单实现了 redis 的几个特性,java从零手写实现re...

java 从零开始手写 redis(五)过期策略的另一种实现思路

2020-10-01
阅读 5 分钟
2.9k
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redis expire 过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器前面实现了 redis 的几个基本特性,其中在 expire 过期原理时,提到了另外一种实现方式。这里将其记录下来,可以...

从零开始手写 redis(四)监听器的实现

2020-09-30
阅读 4 分钟
2.8k
本节,让我们来一起学习一下如何实现类似 guava-cache 中的 removeListener 删除监听器,和类似 redis 中的慢日志监控的 slowListener。

从零开始手写 redis(三)内存数据重启后如何不丢失?

2020-09-30
阅读 5 分钟
1.3k
前言我们在 从零手写 cache 框架(一)实现固定大小的缓存 中已经初步实现了我们的 cache。我们在 从零手写 cache 框架(一)实现过期特性 中实现了 key 的过期特性。本节,让我们来一起学习一下如何实现类似 redis 中的 rdb 的持久化模式。持久化的目的我们存储的信息都是直接放在内存中的,如果断电或者应用重启,那么...

从零开始手写 mybatis(二)mybatis interceptor 插件机制详解

2020-07-18
阅读 13 分钟
3k
前景回顾第一节 从零开始手写 mybatis(一)MVP 版本 中我们实现了一个最基本的可以运行的 mybatis。常言道,万事开头难,然后中间难。mybatis 的插件机制是 mybatis 除却动态代理之外的第二大灵魂。下面我们一起来体验一下这有趣的灵魂带来的痛苦与快乐~插件的作用在实际开发过程中,我们经常使用的Mybaits插件就是分页...

【读书】你有认真看见过这个世界吗?

2020-06-21
阅读 3 分钟
1.1k
​不要因为走的太远,忘了我们为什么出发。 ——《看见》 写作也是如此,不要为了写而写,追求的不是八百字,不是日更三千,而是要有自己的思考,要有进步。 最近看了几本书,但是看完之后又有些惶惶然。比如《24重人格》、《万历十五年》、《穷查理宝典》,看完之后好像有所收获,好像又没有收获。 想写一点什么,发现什么...

【分布式】load balance 04-java 从零手写实现负载均衡

2020-06-20
阅读 4 分钟
1.2k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 本节我们来看一下如何实现一负载均衡框架。 源码 核心接口定义 {代码...} 1. 随机策略 {代码...} 2. 轮训 {代码...} 3. 有权重的轮训 这个需要对数据进行初始化处理,计算数组的最大公约数。 {代码......

【分布式】load balance 03-一致性哈希算法 java 实现

2020-06-20
阅读 3 分钟
1.4k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 本节我们来看一下如何实现一个一致性 hash 框架。 源码 普通 hash 我们首先定义一下 hash 接口,以及最简单的 jdk 实现: IHash {代码...} HashJdk.java {代码...} Node 定义 用来定义一个节点: 此处...

【分布式】load balance 02-consistent hash algorithm 一致性哈希算法原理详解

2020-06-20
阅读 6 分钟
1.8k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 概念 一致哈希是一种特殊的哈希算法。 在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中K是关键字的数量, n是槽位数量。 然而在传统的哈希表中,添加或删除...