领域驱动设计 May 14, 2021

为什么要搞领域驱动设计

传统的软件开发模式有结构化设计,以数据为中心设计,面向对象设计。

  • 结构化设计:面向流程,面向过程的设计。先做A,再做B,最后做C。由过程之间的组合完成整体的系统功能
  • 以数据为中心设计:先设计数据库ER图,然后再进行设计。持久化数据在软件应用中加工组合修改,反馈给用户,修改持久化到数据库。
  • 面向对象设计:抽象出对象这个概念,使其在数据属性外增加职责。由对象之间协作完成整体的系统功能。

软件是对现实的模拟。软件设计的这种演进,归根结底原因是现在的软件所要模拟的现实越来越复杂,导致软件也越来越复杂。

...
Maven发布到中央仓库 Feb 2, 2021

记录下如何把自己的项目发不到maven中央仓库

...
Java管理扩展:通过MBean获取jvm运行情况 Jan 30, 2021

搞下jvm信息的监控

...
Prometheus Exporter Jan 27, 2021

prometheus监控比较火,接入prometheus监控的第一步就是提供expoter,这里就是记录下怎么提供。

...
pxeboot自动安装rhel8 Jan 21, 2021

2020年12月8日,红帽宣布将从2021年12月31日起停止维护centos系统,转而将精力投向centos stream。2021年1月20日,红帽又宣布rhel系统的开发者订阅可以用于小型生产环境,允许授权16台主机获得红帽的更新。原文链接新年,新的Red Hat Enterprise Linux程序:访问RHEL的更简便方法

...
ZGC使用 Jan 16, 2021

在组里大佬分享ZGC后,心情激动下,整理下ZGC的东西。

...
Springboot Boot Time Jan 5, 2021

内存缓存是减少查存储次数的一般方案,一般使用implements InitializingBean@PostConstruct在bean加载完毕后初始化内存缓存。在数据量大的情况下,会造成应用启动慢。这个文章是一种lazy加载的思路。

...
Jvm调优入门 Nov 14, 2020

首先以java8 默认的cms为例,机器是2G内存。

先看GC日志,设置jvm参数如下,其他堆大小相关参数都没有设置:

...
Macos安装Libuv Nov 13, 2020

more

...
Zookeeper文档摘要 Nov 7, 2020

分布式共识一直以来是被广泛讨论的话题,每一个分布式系统都会涉及到“共识问题”——对某一个值或者状态达成共识。有些中间件(例如redis)自己写了分布式共识的实现方式,有些(例如kafka)则直接利用zookeeper或者etcd解决共识问题。在java的生态环境中,zookeeper是分布式共识的实际标准,这边博文就来了解下zookeeper相关的知识。

...