自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LengWJ、的博客

世界上最可怕的是比你还优秀的人比你还努力。

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

原创 在一个新环境下如何快速熟悉一个系统?

1、看历史文档,了解系统主要功能、系统架构 系统主要功能(其中包括主要流程)、系统架构(几大模块,各模块之间协同作用) 2、收集并总结系统文档 (交互URL、系统名、git代码、各个环境数据库信息、各个环境URL地址、参数中心) 3、打开系统交互,观察并总结系统功能点 (这些大多数情况下就是功能模块) 4、系统页面功能点出发,总结模块功能实现 记住:此时不要太讲究细节,知道大体模块中功能流程即可。 5、回味系统架构,如果之前没有,此时应该自己绘制出来 系统设计文档: 1、系统设计背景 系统所处的大环境背景(

2021-10-13 09:04:08 1538

原创 DDD基础(领域事件)

我们上一章说到聚合的一次状态的修改,就会触发一次仓储的调用。如果涉及到多个聚合之间的状态的修改,我们一般会使用领域事件来驱动,保证多个聚合之间修改后的数据最终一致性。 如何辨别最终一致性? 比如在大家完成事件风暴的过程中,会有如下关键词,“如果…完成后,就…怎么样怎么样。” 再比如,"要是…结束了,我们就开始…的动作。“ 诸如此类,就很有可能是一个领域事件。 领域事件的作用? 比如涉及到跨聚合的状态的修改,在不使用领域事件的时候,我们都是在代码中同步调用的跨聚合的数据状态修改,或者是异步完成。缺点是,领域模

2021-10-13 09:00:44 304

原创 DDD基础 (聚合 && 聚合根)

聚合(Aggregate) 聚合根(AggregateRoot) 上一章,我们介绍到了实体和值对象,并且介绍了实体和值对象什么场景下应该如何创建。本章介绍聚合和聚合根。 实体和值对象是我们领域建模的基本单元,我们根据用户的一些业务操作中,业务关联紧密的实体和值对象进行组合,构成聚合(Aggregate),再根据业务语义将多个聚合划定到一个界限上下文中(Bound Context),并在界限上下文内完成建模。 那什么是聚合呢? 举个例子:我们阿里巴巴西溪园区8号楼的每一个员工都是一个个个体(实体,每个人独一无

2021-10-13 08:59:32 990

原创 DDD基础 (实体 && 值对象)

实体: 有唯一标识ID用于区分不同的实体,其它的属性值可以任意改变。实体有自己的业务属性、业务行为、业务逻辑。 值对象: 没有唯一的ID标识,一般用于聚合若干个和实体相关的属性。 实体和值对象是领域的原子表达。 举个????:一个Person 实体,里边存在一个唯一的ID用于区分人和人的不同,除了ID不可变,其它的属性可以随意改变,其中有一个Address类,里边聚合了构成地址的详细信息,用于这个实体Person的地址的表达,省、县、街道、国家。是不可变的,也没有ID DDD 为什么要引入值对象的概念? 为

2021-10-13 08:58:38 917

原创 分布式锁常见解决方案

分布式锁 常见方案 RMDB数据库实现 最简单的方式,在mysql中创建一个锁表,在想要为分布式应用中的某一段代码加锁的时候,就INSERT到表一条记录,作为加锁操作;当想要释放锁的时候,就在释放的时候,DELETE这条记录,作为释放锁操作。 当其它应用线程访问到当前同步方法时候,先会GET下这个记录,如果存在,说明有其它应用持有锁,则获取锁失败,如果GET不到这条记录,则说明当前同步方法没有被其它应用访问,则可以访问,并完成加锁操作。或者直接INERT一条同样的记录,通过Mysql的Innodb引擎的行锁

2021-09-29 13:35:09 202

原创 2020-09-04

Mac上MySQL忘记密码解决方法 Mac上使用mysql命令: mysql -uroot -p 提示:密码错误,怎么办? 系统偏好设置---> stop Mysql Server 打开iterm: # 第一步,进入mysql的bin目录 cd /usr/local/mysql/bin/ # 第二步,使用root账户(这一步要输入mac密码) sudo su # 第三步 ./mysqld_safe --skip-grant-tables & # 第四步,这一..

2020-09-04 15:20:23 92

原创 spring IOC之循环依赖

说明:本篇循环依赖单指在IOC容器内的bean之间的循环依赖。 什么是循环依赖? 循环依赖:就是循环引用,就是两个或两个以上的bean之间相互持有对方。比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,最终形成一个环,循环调用是无法解决的,除非有终止条件,否则就是死循环,最终导致内存溢出错误。_______《spring源码深度解析》 ...

2020-08-25 10:06:59 325

原创 Java集合容器

Java集合容器关系图: 参考自菜鸟教程

2020-08-11 17:58:55 116

原创 斐波拉契数列

斐波拉契数列: 当前数字等于前两个数字的加和。例如:0 1 1 2 3 5 8 13 21 34… 我们发现,除了0 1,后序的数字都是前两个数字的加和。 Java代码实现 /** lengwj*/ public class FeiBoLaQi{ /**斐波拉契数列: 0,1,1,2,3,5,8,13,21...*/ public static void main(String[] args) { // 按照数学归纳法可以发现 ,斐波拉契数列的一般规律为前两个数列是当前数字的

2020-08-06 15:07:39 388

原创 二叉树的遍历

二叉树 : 每个节点都有两个子节点的特殊树形结构 二叉树的存储方式: 连续内存的数组存储结构。2.链式存储结构。 二叉树的遍历方式: 前序遍历:前序遍历是指先打印当前节点,如果当前节点有left左节点,则先遍历左节点,再遍历右节点 ...

2020-08-06 14:38:41 140

原创 当你在浏览器输入google.com会发生什么?

一个古老的问题: 当你在浏览器输入"google.com"会发生什么?链接

2020-06-24 18:09:40 227

原创 dubbo原理之标签解析

前言:dubbo的标签解析作为dubbo的入口,结合spring容器的一小小部分的流程,让大家了解以下dubbo的服务提供者在将服务暴露之前,经历了哪些过程。 标签解析主要是spring的源码部分,spring源码加注解部分我也上传github了https://github.com/lengweijian/spring-framework.git. 5.0.x分支。 下边是伪代码,想调试的也可以...

2019-12-26 17:14:44 249

原创 dubbo原理之dubbo SPI

本节目的:Dubbo SPI是dubbo所有扩展机制的核心,所以非常之重要!!所以为了让大家全面的了解dubbo SPI机制,见见结合dubbo源码以及官网,整理了dubbo spi机制。以及对比Java原生的spi,dubbo spi的其他特性。本章所有案例代码已经上传https://github.com/lengweijian/dubbo.git . lazy的小伙伴儿可以自行下载调试。 1、...

2019-12-26 14:35:52 254

原创 dubbo原理之框架设计

前言:让dubbo使用者从宏观和微观上都有一个整体的认识,dubbo的官网资料非常的完备,网上所有的不管是各类博客还是各大渠道讲解,都是围绕dubbo官网开展来讲解的,所以想精通dubbo的盆友一定要仔细的通读官网,希望您一定会有收获。 节点角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统...

2019-12-26 13:53:04 176

原创 大型互联网架构的演变

前言:让大家对网站架构的发展有一个模板式的展现,并且要保持好的架构的价值观,架构的发展演变和业务的驱动其实是互相影响的结果,业务驱动着架构的演变,而架构的健壮又会反作用于业务的蓬勃开展。不能一味地要使用技术去解决一切业务的问题(比如2012年凌晨瘫痪的12306。架构的不合理只是一方面,而它本身的业务架构也是需要调整的,由现在的分地段分时间段替换原来的整点“秒杀式”购票)。最后祝大家有所收获。 阶...

2019-12-26 13:32:00 178

原创 Java源码分析之Object类(一)

一、本节目的:为了了解Object类源码实现。 二、源码展示 import jdk.internal.HotSpotIntrinsicCandidate; /** * Object 类是java所有类的父类。 */ public class Object { private static native void registerNatives(); static { ...

2019-12-26 13:13:45 146

原创 二分查找

**二分查找:**也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 java代码展示: /** * 二分查找 * * @param arrays */ private static void halfFind(int[] arrays) { ...

2019-12-24 10:39:46 125

原创 插入排序

**插入排序:**表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。 插入排序动图展示: /** * 插入排序 * * @param arrays */ private static void insertSort(int[] arrays) { // 1.第一个f...

2019-12-24 10:24:01 88

原创 Spring核心技术IOC

Spring核心技术之IOC 本节目的:IOC作为spring一切的核心,了解内部机制很有必要的。本节会对照官方文档目录加上自己理解为主,将IOC的细节,尽可能地挖掘出来,让大家精通IOC的高级应用,全面了解IOC底层原理,并且能够应用到实际项目开发中,其中有理解不到位的地方,请大家提出来,然后加以完善。另外,此篇非常长,但是没有废话的地方,最后希望大家收益多多。一起成长。 1.什么是IOC?...

2019-08-23 18:59:27 770 2

空空如也

空空如也

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

TA关注的人

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