- 博客(109)
- 收藏
- 关注
原创 二、领域驱动设计~战术篇
二、领域驱动设计~战术篇1、前言这篇文章主要关注的是领域驱动设计(DDD)代码设计实施上的一些设计概念和原则。是从技术视角出发,侧重于领域模型的技术实现,完成软件开发和落地,包括:聚合根、实体、值对象、领域服务、应用服务和资源库等概念解释和代码逻辑的设计和实现。战略篇请参考:一、领域驱动设计-战略篇2、战术设计阶段:DDD 中的重要的一些概念1)、实体有唯一标识符,就算其他所有属性完全相同,只要标识符不一致就是不同的实体,标识符一致就是同一个实体,我们把这样的对象称为实体。2)、值对
2022-05-06 15:43:22
327
原创 一、领域驱动设计-战略篇
1、写在前面**领域驱动设计(Domain-Driven Design,DDD)**是一个有关软件开发设计的方法论,它提出了从业务设计到代码实现一致性的要求,不再对分析模型和实现模型进行区分。简言之,从代码结构我们就可以直接理解业务的设计,命名得当的话,非程序人员也可以“读”代码。2003 年的时候,Eric Evans 发表了一篇著作**《Domain-driven Design: Tackling Complexity in the Heart of Software》**,正式定义了领域的概念,开
2022-04-20 18:14:06
2689
1
转载 Java Class文件格式、常量池项目的类型、表的结构
u1、u2、u4分别代表1字节、2字节、4字节1.Class文件格式magic:魔数,值为0xcafe babe,表示这是一个可以被虚拟机接收的class文件。很多文件存储标准都使用魔数进行身份识别,比如gif,jpeg。使用魔数而不是文件后缀名的是因为后缀名可以随意改动,使用魔数比较安全。major_version:主版本号,52对应JDK1.82.常量池项目类型3.类访问标志4.字段表5.方法表6.属性表6.1 Code6.2 Exception.
2022-01-13 16:50:37
882
原创 本地缓存使用实践
一、缓存选择Guava和CaffeineCaffeine是一个高性能的Java缓存,有了它完全可以代替Guava Cache,来实现更加高效的缓存;Caffeine采用了W-TinyLFU回收策略,集合了LRU和LFU的优点,提供了一个最佳的命中率,在效率上可以秒杀Guava Cache。官方性能测试结果:二、Caffeine使用姿势1、同步加载import com.github.benmanes.caffeine.cache.Caffeine;import com.github.benman
2022-01-12 17:09:47
481
原创 消息队列消费者使用实践
注意:以RocketMQ为例说明一、偏移量offset自动提交offset,消息队列无法做到有且仅消费一次,但是可以保证消息最少消费一次,因此,消费端做好幂等处理即可。二、消息幂等RocketMQ无法避免消息重复(Exactly-Once),所以如果业务对消费重复非常敏感,务必要在业务层面进行去重处理。去重有两种方法:1、msgId,消息中自带的msgId是全局唯一的2、消息内容中的业务字段,例如订单Id等msgId一定是全局唯一标识符,但是实际使用中,可能会存在相同的消息有
2022-01-12 16:32:58
628
原创 JDK监控及故障处理工具使用
一、JDK 工具1. jps命令:查看所有的java进程jps(JVM Process Status) 命令类似 UNIX 的 ps 命令。jps: 显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一 IDjps -l:输出主类的全名,如果进程执行的是jar包,输出jar路径jps -v:输出虚拟机启动时的JVM参数jps -m:输出传递给java进程的main函数的参数2. jstat:监视虚拟机各种运行状态信息jstat(JVM Statistics Monito
2021-12-31 15:57:47
2759
原创 一、Spring介绍以及版本历史演进
背景Spring的第一个版本于2002年10月发布,由一个带有易于配置和使用的控制反转(IoC)容器的小型内核组成。多年来,Spring已经成为Java Enterprise Edition(Java企业版JEE)的主要替代品,并且发展成一个由许多不同项目组成的成熟技术。Spring版本历史演进通常情况下,Spring被描述为构建Java应用程序的轻量级框架。Spring可以构建Java中任何应用程序(独立的应用程序,Web应用,JEE应用程序)轻量级一次的指的是整体性定义Spring的原则:最
2021-09-23 20:31:26
5497
原创 三、Spring中的概念介绍以及项目
一、Spring 核心概念介绍1、控制反转(IoC)与依赖注入(DI)概念IoC:一种将组件依赖项的创建和管理外部化的技术。举例说明:小王要制造一支笔,以前需要小王自己亲手做,Ioc就是把这项工作让第三方小明(容器:如工厂)来生成和管理。DI:一种运行时将对象(包含属性)经过容器,交给另外一个对象的技术。IoC与DI的关系相当于一枚硬币的两面,因此它们是一体两面的关系,在Spring的上下文中,这些概念术语可以互换,而不会有任何损失举例说明:小王通过第三方小明(容器:如工厂)制造了一支铅笔(对象
2021-09-23 20:29:05
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人