自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一步一步走

记录点滴,点滴成长

  • 博客(17)
  • 收藏
  • 关注

原创 DDD(3)-领域驱动设计之如何建模

虽然看到这篇文章的读者都是IT从业人员,大家都知道建模是怎么回事,但我还是想先对建模这件事讨论几句,我理解的建模,是对业务中数据流的合适描述。业务是公司的经营活动,但是在软件工程范畴中,当业务人员找到开发说要开发个系统来管理业务的时候,其本质是需要一个能管理业务中数据的系统。因为软件系统唯一能处理的只有数据,它不可能做到把货物从A运到B类似的事情,但它可以通过把“货物从A运到B”这件事情通过数据的方式传递给合适人去完成。因此,我们构建软件系统时唯一关注的是如何处理业务中的数据。

2024-07-22 19:15:53 953

原创 DDD(2)-从领域驱动到模型驱动

软件为何会腐化失控?因为系统和现实的脱离,渐行渐远。只有软件时刻与现实业务保持一致,才能维持长久生命力。

2024-07-19 21:33:41 587

原创 DDD(1)-领域驱动设计整体理解

从为什么要领域驱动设计出发,介绍一些我对领域驱动设计的思考,和目前主流的落地架构。

2024-07-17 20:28:06 936

原创 Mysql之B+树索引详解(4)——聚簇索引的生长、凋零

以插入数据示例B+树是如何生长、凋零的

2024-07-12 18:44:29 1000

原创 Dubbo之SPI、Adaptive机制详解

分析了JDK\Spring\Dubbo的SPI机制,并详细分析了Dubbo的 自适应机制的原理和实现

2024-07-11 23:17:04 836

原创 分布式共识算法(1)- Basic Paxos

从上述三军问题的决策过程,我们可以总结出Basic Paxos算法的基本规则:1、决策者记录自己已经Accepted的信息(Id,Value),如果没有,则记录自己接收到的Prepare请求的最大提案ID2、接收到任何请求,如果自己有Accepted信息,则返回,否则看该请求ID是否大于自己的最大提案ID,不大于不响应。3、提案者发现有决策者已经Accepted某个值,则挑选提案ID最大的值作为自己的值,并广播到所有决策者。为什么Basic Paxos算法能确保系统取得一致性呢?

2024-07-11 11:04:13 1082

原创 Mysql之B+树索引详解(3)——聚簇索引

在数据页结构技术上,介绍B+树中是如何组织这些数据页构成索引的

2024-07-09 17:05:23 795

原创 Mysql之B+树索引详解(2)——数据页结构

本文重点介绍了数据页的结构,并没有大而全的对各个细节进行陈列,而是关注数据如何存储、如何查询,数据页如何组织等问题进行了探讨分析,希望读者有所收获。本文内容参考了大量互联网数据,未一一注明来源,如有涉及版权问题,请与我联系。

2024-07-06 11:43:38 592

原创 Mysql之B+树索引详解(1)——比较规则

这里简单介绍了下MySql中的基础机制:字符集和比较规则,这是构建数据和索引的基础,后续讨论B+树如何分配数据、如何分页、如何查找数据时,都依赖于提前设定的比较规则,而比较规则又依赖于设定的字符集。因此要先理解字符集和比较规则,打下基础。

2024-07-04 20:05:34 475

原创 算法疑难问题

求解next[i+1],我们可以设计一个函数,计算某个字符串的最大相等前后缀,然后传入[0…next[i]:代表 [0,i]子串的最大相等前后缀长度,比如 next[5] = 2,是说:[0…情况1、如果s[k]==s[i+1],显然next[i+1] = next[i]+1 = k+1,即最大相等前后缀变长了一位。i]的子串中,有[0…i】的某个相等前后缀长度p,使得p满足:s[p-1] == s[i+1],情况1:s[k-1] == s[i+1],则next[i+1] = next[i]+1。

2024-07-04 11:11:36 441

原创 IDE控制台打印代码链接

概述打印日志是基本的调试步骤。一般我们会打印出当前的类全限定名.方法名后面跟上日志内容。通过这种方式来定位日志打印的位置。从服务器上或文件上只能这样。不过如果是本地调试,比如在IDE里运行项目时,我们希望有种更快捷的方式啦定位代码,就像异常信息的代码链接一样。此方法适用于Eclipse、Idea等一切支持异常输出的IDE。代码实践 以下代码是最核心逻辑,可自行扩展更多内容 另外行号、线程安

2017-08-14 16:44:58 2104

原创 Head First 设计模式学习——简单工厂方法-工厂方法模式-抽象工厂模式

设计模式是进阶高级开发的必经之路。 工厂方法模式(Factory Method Pattern)是《Head First 设计模式》介绍的第四个模式,只要你认真读完本篇博文,一定能很好地掌握此模式。定义工厂方法模式通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的分析程序要运行,需要创建各种对象。而我们之前为了松耦合、高可用做的努力,最后在main方法里,都需要实例化具体的类

2017-05-19 17:15:25 542

原创 Head First 设计模式学习——装饰者模式

设计模式是进阶高级开发的必经之路。掌握设计模式,才能提升编码能力,设计出可复用、可扩展、可维护的软件系统。了解设计模式,才能更好理解开源类库的实现原理,解决问题。 装饰者模式(Decorate Pattern)是《Head First 设计模式》介绍的第三个模式,只要你认真读完本篇博文,一定能很好地掌握此模式。定义装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性

2017-05-18 23:31:44 272

原创 Head First 设计模式学习——观察者模式

设计模式是进阶高级开发的必经之路。掌握设计模式,才能提升编码能力,设计出可复用、可扩展、可维护的软件系统。了解设计模式,才能更好理解开源类库的实现原理,解决问题。 观察者模式(Observer Pattern)是《Head First 设计模式》介绍的第二个模式。本文将做介绍,并介绍此模式在JDK中的应用。

2017-05-17 17:32:10 386 1

原创 Head First 设计模式学习——策略模式

设计模式是进阶高级开发的必经之路。掌握设计模式,才能提升编码能力,设计出可复用、可扩展、可维护的软件系统。了解设计模式,才能更好理解开源类库的实现原理,解决问题。 策略模式(Strategy Pattern)是《Head First 设计模式》介绍的第一个模式。本文将做介绍,并介绍此模式在JDK中的应用。定义策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,独立

2017-05-16 14:23:32 379 1

原创 再学JAVA之——数据类型

JAVA中的数据类型 温故而知新,可以为师矣。再学JAVA第一篇之数据类型,什么是数据类型?java中有哪些数据类型?一、什么是数据类型程序设计是对现实世界的抽象。程序=数据+算法。数据有很多种,数字,文字,图片,音频,视频等等,都是数据。程序就是用相应的逻辑对这些数据做处理。数据类型描述了一类数据。包括行为、特性等。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都

2017-05-09 17:46:07 254

原创 读取配置文件,利用反射给类属性赋值,

背景:项目中用的全局变量,一般通过形如 pubic static final String ABC="abc";然后在项目中用类.属性名的方式调用。如果变量的值并不固定。比如不同客户定义的值不同,就不能用final修饰。只能用public static String ABC;方式来声明,也可加默认初始值;这个时候我们就需要一个初始化方法(init())来对变量进行初始化赋值

2016-05-09 16:58:03 4224 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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