Threadlocal源码分析
Posted on
为了彻底搞明白ThreadLocal
的工作原理,下面会截取代码和画图详细说明.
Elasticsearch自定义分析器订单号搜索
Posted on
使用edge ngram
将每个单词都进行进一步的分词和切分,用切分后的ngram
来实现前缀搜索,比如’OD5046240000014238’这样一个订单号会被分解成’O’,’OD’,’OD’,’OD5’,’OD50’…‘OD5046240000014238’这样子,就可以实现前缀搜索或者搜索推荐.
测试mockito
Posted on
测试框架Mockito
对象类型转换
Posted on
再次理解java
Posted on
业务代码抽象原则
Posted on
模块内聚
把具有强关联性的业务逻辑放在一个模块叫功能性内聚,功能性内聚被认为是最佳实践。不论如何聚合,我们还是会看到很多对象会跟其他的对象发生关联,形成了一个复杂的关系网,不论是一对一、一对多还是多对多。来自模型的挑战常常不是让它们尽量完整,而是让它们尽量地简单和容易理解。这意味着,除非直到模型中嵌入了对领域的深层理解,否则大多数时候需要对模型中的关系进行消减和简化。 首先,要删除模型中非基本的关联关系。它们可能在领域中是存在的,但它们在我们的模型中不是必要的,所以我们要删除它们。其次,可以通过添加约束的方式来减少多重性。如果很多对象满足一种关系,那么在这个关系上加入正确的约束之后,很有可能只有一个对象会继续满足这种关系。第三,很多时候双向关联可以被转换成非双向的关联。
三段有意思的代码让你思考volatile和cpu缓存
Posted on
Pinpoint
Posted on
Mavne自动启动脚本
Posted on
```` #!/bin/sh