方丈的寺院

技术是人生基石/https://github.com/FS1360472174/

我开通了微信公众号

2011年7月在csdn写了第一篇文章,恍惚间已经过去了8年。基本保持着每月1篇的节奏,期间从未间断。 我的个人博客地址https://fangzhang.blog.csdn.net/。 我的博客主要记录web开发相关的问题,包括不限于java,spring,mybatis,分布式,以及数据库相关...

2019-03-24 11:51:51

阅读数 1403

评论数 1

以Spring Cache扩展为例介绍如何进行高效的源码的阅读

摘要 SpringCache的介绍 扩展点 功能的实现 扩展,如何实现metric监控 http://ylzheng.com/2018/01/24/use-prometheus-monitor-your-spring-boot-application/

2019-07-16 21:50:19

阅读数 593

评论数 0

几种获取类的扩展方式

摘要 在日常开发过程中经常需要获取类的扩展集。即获取类的子类集(抽象类),或者接口实现类。比如说状态模式中,状态构建类,策略模式中的,策略构造方式。本文介绍几种获取方式。 实现 以策略模式为例 定义了2种策略 @Getter @AllArgsConstructor public enum Stra...

2019-06-27 20:51:08

阅读数 365

评论数 4

可落地的DDD(5)-战术设计

摘要 本篇是DDD的战术篇,也就是关于领域事件、领域对象、聚合根、实体、值对象的讨论。也是DDD系列的完结篇。 这一部分在我们团队争论最多的,也有很多月经贴,比如对资源库的操作应该放在领域服务还是领域对象中。 聚合根应不应该暴露给外部,还是要转成DTO。这些问题我们讨论了大半年,最后大家基本达成了...

2019-06-23 13:27:51

阅读数 2290

评论数 0

SQL IN 一定走索引吗?

摘要 IN 一定走索引吗?那当然了,不走索引还能全部扫描吗?好像之前有看到过什么Exist,IN走不走索引的讨论。但是好像看的太久了,又忘记了。哈哈,如果你也忘记了MySQL中IN是如何查询的,就来复习下吧。 问题 问题要从之前的统计店铺数关注人数说起 SELECT shop_id, count(...

2019-06-16 20:12:33

阅读数 1232

评论数 1

一次和前端的相互甩锅的问题记录

背景 我们在APP上有个功能,需要获取用户当前定位,然后当用户关闭了GPS后,没有获取到用户定位,会触发一个bug,弹窗内容如下。 问题分析 这个问题的直接原因就是移动端的值取不到,导致没有给变量赋值,就将"undefined"传给了后端,后端的这个值定义的Integer,类...

2019-06-07 10:21:16

阅读数 5695

评论数 30

可落地的DDD(4)-如何利用DDD进行微服务的划分(2)

摘要 在前面一篇介绍了如何通过DDD的思想,来调整单体服务内的工程结构,为微服务的拆分做准备。同时介绍了我们在进行微服务拆分的时候踩过的一些坑。 这篇介绍下我们最终的方案,不一定对,欢迎留言讨论。 微服务划分 问题分析 上篇介绍过我们一开始的服务划分标准 一个领域一个服务的规则去拆分, 同时为...

2019-06-02 12:38:55

阅读数 3723

评论数 2

可落地的DDD(3)-如何利用DDD进行微服务的划分

摘要 前面两篇介绍了DDD的目标管理、DDD的工程结构调整。这篇讨论微服务的划分。微服务是目前后端比较流行的架构体系了,那么如何做好一个微服务的划分?一个微服务的粒度应该是多大呢?这篇主要介绍如何结合DDD进行领域划分。 工程结构代码 上篇介绍了可落地的DDD的(2)-为什么说MVC工程架构已经过...

2019-05-30 23:11:53

阅读数 1961

评论数 2

可落地的DDD的(2)-为什么说MVC工程架构已经过时

摘要 mcv是一种软件设计模式,最早由Trygve Reenskaug在1978年提出,他有效的解决了表示层,控制器层,逻辑层的代码混合在一起的问题,很好的做到了职责分离。但是在实际的编码实践过程中,你会发现这个模式随着服务的扩展, mvc的问题 通常一个前后端分离的系统,后端工程系统结构图通常下...

2019-05-21 22:36:17

阅读数 1291

评论数 3

我们团队是如何落地DDD的(1)

最近发现文章老是被窃取,有些平台举报了还没有用。请识别我的id方丈的寺院。 摘要 DDD领域驱动设计,起源于2004年著名建模专家Eric Evans发表的他最具影响力的著名书籍:Domain-Driven Design –Tackling Complexity in the Heart of S...

2019-05-19 11:20:50

阅读数 1864

评论数 3

搬了十次家,总算搬进了自己的家

摘要 改革春风吹满地,今天是个好日子,经历了在包邮区的5年折腾,辗转了3个城市,搬了十次家,我总算搬进了自己的家。把我的经历分享给大家,希望能给在外漂泊的你们一点鼓励。 搬家经历 南京 我是14年在南京毕业,怀着对南京的无限热爱,留在了南京工作。记得租的第一个房子是双龙大道的一个地下室,房租55...

2019-05-12 11:45:15

阅读数 373

评论数 7

微服务化后缓存怎么做

摘要 最近接手的代码中遇到几个缓存的问题,存在一些设计原则的问题,这里总结一下,希望可以对你有帮助 问题 问题1: 店铺数据的获取,将用户关注的数据放在店铺信息一起返回 对外提供的接口 List<Shop> getPageShop(final Query query,f...

2019-05-06 21:59:08

阅读数 1738

评论数 0

你真的懂线程池吗

摘要为什么需要线程池呢,没想明白这个问题,看再多线程池的源码都没有用,先要知道线程池技术解决了什么问题,才能看的懂源码,因为所有的代码都是为了解决实际的工程问题。问题抛几...

2019-05-04 16:08:08

阅读数 71

评论数 0

线程池管理(1)-为什么需要线程池

摘要 为什么需要线程池呢,没想明白这个问题,看再多线程池的源码都没有用,先要知道线程池技术解决了什么问题,才能看的懂源码。因为所有的代码都是为了解决问题 问题 抛几个问题,看看你是否知道,不知道的话,可能你对线程池的理解还不够深入,还是一知半解。 ...

2019-05-04 15:51:46

阅读数 1087

评论数 10

微服务间的调用和应用内调用有啥区别

目前大部分的系统架构都是微服务架构,就算没有注册中心、服务管理,也肯定是多个服务,单体服务比较少了。 大家平时写rpc接口也比较多,那么有没有思考过微服务之间的调用和应用内直接调用有什么区别呢?

2019-04-17 23:50:11

阅读数 753

评论数 0

面试的反杀-你有没有想要问我的

摘要 前一段时候脉脉上有个段子 面试官问候选人什么时候红黑树,候选人答不太熟悉,答不出来,最后面试官问候选人有什么想问他的。候选人问面试官什么是红黑树,面试官支支吾吾了半天,最后说太久了,都忘了。 不知道是不是真的,但是面试结束的时候,面试官通常会问下候选人你有没有想要问我的,今天结合我自己的...

2019-04-15 22:33:55

阅读数 7581

评论数 34

lombok1.16.20序列化bug分析

摘要记录下使用 lombok遇到的反序列问题,一开始在 lombok1.16.18中并没有发现,然后应用中没有指定lombok全局版本,引入的其他二方包将lombok版本...

2019-04-14 12:48:05

阅读数 103

评论数 0

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct (no Creators)

摘要 记录下使用lombok遇到的反序列问题,一开始在lombok1.16.18中并没有发现,然后应用中没有指定lombok全局版本,引入的其他二方包将lombok版本提升到了1.16.20,然后报错。因为这个问题需要允许时才能发现,很可能会造成线上故障,所以不能等到出现问题时才发现,需要提前知晓...

2019-04-14 12:33:18

阅读数 1762

评论数 0

聊聊Mysql索引和redis跳表

摘要面试时,交流有关mysql索引问题时,发现有些人能够涛涛不绝的说出B+树和B树,平衡二叉树的区别,却说不出B+树和hash索引的区别。这种一看就知道是死记硬背,没有理...

2019-04-09 22:40:06

阅读数 33

评论数 0

程序员在创业项目中能做些什么

摘要程序员在创业项目中能做什么,这个问题问的有些奇怪,程序员除了写代码还能干什么呢,管你做什么业务,电商,O2O,金融,SAAS,都是一把梭,没有什么CRUD解决不了的·...

2019-04-05 16:29:26

阅读数 32

评论数 0

提示
确定要删除当前文章?
取消 删除