- 博客(24)
- 收藏
- 关注
原创 读书笔记----设计模式之美13
针对面向对象分析产出的需求,如何来进行面向对象设计(OOD)和面向对象编程(OOP)?1 重点内容1.1 如何进行面向对象设计?1.1.1 什么是职责划分?1.1.2 怎么定义类的属性和方法?1.1.3 类与类之间的交互关系有哪些?1.1.4 怎么将类组装起来并提供执行入口?1.2 如何进行面向对象编程?2 拿到一个需求以后要什么?2.1 分析需求2.2 定义类和属性2.3 定义类与类之间的交互关系2.4 将类组装起来并提供执行入口1 重点内容1.1 如何进行面向对象设计?面向对象分析的产出是详细的需
2022-05-21 01:58:37
232
原创 读书笔记----设计模式之美12
如何利用基于充血模型的DDD来完成业务开发?1 重点内容2 心得交流1 重点内容基于充血模型的 DDD 开发模式跟基于贫血模型的传统开发模式相比,主要区别在 Service 层。在基于充血模型的开发模式下,我们将部分原来在 Service 类中的业务逻辑移动到了一个充血的 Domain 领域模型中,让 Service 类的实现依赖这个 Domain 类。在基于充血模型的 DDD 开发模式下,Service 类并不会完全移除,而是负责一些不适合放在 Domain 类中的功能。比如,负责与 Reposit
2022-05-19 23:06:38
265
原创 读书笔记----设计模式之美11
业务开发常用的基于贫血模型的MVC架构违背OOP吗?1 知识点解析1.1 什么是贫血模型1.2 什么是充血模型2 贫血和充血之争2.1 为什么基于贫血模型的传统开发模式如此受欢迎?2.2 什么项目应该考虑使用基于充血模型的 DDD 开发模式?1 知识点解析1.1 什么是贫血模型示例代码:////////// Controller+VO(View Object) //////////public class UserController { private UserService userSer
2022-05-19 00:04:36
236
原创 读书笔记----设计模式之美10
为何说要多用组合少用继承?如何决定该用组合还是继承?1. 重点内容1.1 为什么不推荐用继承1.2 组合比继承有哪些优势1.3 如何判断改用继承还是组合?2 参考总结1. 重点内容1.1 为什么不推荐用继承继承是面向对象的四大特性之一,用来表示类之间的is-a关系,可以解决代码复用的问题。虽然继承有诸多作用,但是继承层次过深、过复杂,也会影响到代码的可维护性。在这种情况下,我们应该尽量少用,甚至不用继承。1.2 组合比继承有哪些优势继承主要有三个作用:表示is-a关系、支持多态性、代码复用。而这三
2022-05-17 23:51:49
185
原创 读书笔记----设计模式之美09
为什么基于接口而非实现编程?有必要为每个类都定义接口吗?1. 重要内容1.1 提高抽象封装意识1.2 接口命名1.3 系统设计2. 读后思考1. 重要内容1.1 提高抽象封装意识“基于接口而非实现”,这条原则的另外一个表述方式,是“基于抽象而非实现编程”。这条设计原则的初衷是要我们在开发编码的过程中一定要有抽象意识、封装意识、接口意识。越抽象、越顶层、越脱离具体某一实现的设计,越能提高代码的灵活性、扩展性、可维护性。1.2 接口命名在定义接口的时候,一方面,命名要足够通用,不能包含跟具体实现相
2022-05-17 23:29:10
121
原创 读书笔记----设计模式之美08
08|接口与抽象类的区别1.重点内容1.1 抽象类和接口的语法特性1.2 抽象类和接口存在的意义1.3 抽象类和接口的应用场景区别1.重点内容1.1 抽象类和接口的语法特性抽象类不允许被实例化,只能被继承。它可以包含属性和方法。方法既可以包含代码实现,也可以不包含代码实现。不包含代码实现的方法叫做抽象方法。子类继承抽象类,必须实现抽象类中的所有抽象方法。接口不能包含属性,方法不能包含代码实现。类实现接口的时候,必须实现接口声明中的所有方法。但是在JDK1.8中,新增加了一个关键字:defalult,被
2022-05-16 23:27:00
160
原创 Linux系统下安装Redis-7.0.0
一、准备工作操作系统:CentOS 7.0,基于VM虚拟机安装在WIN11平台下二、下载Redis客户端Redis官方网站:Download | RedisRedis中文官方网站:CRUG网站 (redis.cn)
2022-05-08 12:17:50
4662
1
原创 【Win11家庭中文版本Docker Desktop安装指北】
前言 服役多年的老mac有点不堪重负,对于我安装N个软件在上面跑表示了抗议,于某一天终于宣布身体不再健康了,虽然拿去修了恢复正常,但是还是担心存在隐患,于是决定换一台电脑,但是尴尬的疫情买一个MAC发货要2个月,于是只能考虑迁移到WIN环境下了。以上是我的碎碎念。1. 系统环境搭建现在的新笔记本一般都是预装的win11家庭中文版,而docker desktop客户端需要有hyper虚拟机的功能支持,于是我们首先需要给自己的操作系统打一个补丁安装HyperTV功能组件。1.1 安装HyperTV模
2022-05-06 15:18:55
14962
4
原创 基于Docker环境下的redis主从、哨兵、集群环境搭建
一、在docker内下载redis镜像文件# 查询docker上的redis镜像huxing@localhost data % docker search redis# 下载redis镜像huxing@localhost data % docker pull redis二、部署redis主从配置环境1. 先创建两个redis的conf目录huxing@localhost data % mkdir /Users/huxing/Desktop/dev/redis/redis-6379
2021-10-29 18:54:15
264
转载 Linux 常用命令
一、文件和目录1. cd命令(它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径)cd /home 进入 '/ home' 目录cd .. 返回上一级目录cd ../.. 返回上两级目录cd 进入个人的主目录cd ~user1 进入个人的主目录cd - 返回上次所在的目录2. pwd命令pwd 显示工作路径3. ls命令(查看文件与目录的命令,list之意)ls 查看目录中的文件ls -l 显示文件和目录的详细资料ls -a 列出全部
2021-10-14 14:58:51
87
原创 Java大佬是怎么炼成的
技能图谱:https://share.weiyun.com/5ud4IkCuSpring思维导图:https://share.weiyun.com/GlEtrlO9面试技巧:https://share.weiyun.com/Cr5k3l4GJava书籍:https://share.weiyun.com/PmlueCSm600分钟公开课:https://pan.baidu.com/s/125VtuIXxozF3VTVem1yTGQ 密码:5jhf...
2021-09-28 13:42:46
158
原创 MySQL操作相关记录
修改root用户支持远程登录mysql> update user set host = '%' where user = 'root';mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';mysql> flush privileges;创建一个新的用户# 创建用户mysql> create user 'huxing'@'%' identified by '1
2021-09-27 14:46:37
137
原创 一个菜鸟的ELK服务搭建(踩坑)日记(5)- Seata篇
下载和安装 从github上下载seata压缩包到本地# 下载压缩包curl -L -O https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.tar.gz# 解压缩tar -zvxf seata-server-1.4.2.tar.gz配置和启动 修改seata的配置文件,这里为了方便我先采用nacos作为服务注册中心,进入seata的conf配置文件目录...
2021-08-18 16:43:32
531
原创 一个菜鸟的ELK服务搭建(踩坑)日记(4)- Nginx篇
Linux下创建用户为了保证用户的隔离性,所以也要在linux下创建一个用户,参照前面的方式# 创建用户sudo useradd -d /home/gdca/nginx -m nginx# 设置密码sudo passws nginx下载和安装前往nginx的官网查询版本记录的链接信息:http://nginx.org/en/download.html通过命令行下载nginx版本:# 下载版本curl -L -O http://ngi...
2021-08-17 18:26:13
108
原创 Linux操作系统命令学习随笔
端口权限部分:# 开启防火墙systemctl start firewalld# 开放端口firewall-cmd --zone=public --add-port=2181/tcp --permanent# 重启防火墙firewall-cmd --reload# 命令字的含义--zone #作用域--add-port=1935/tcp #添加端口,格式为:端口/通讯协议--permanent #永久生效,没有此参数重启后失效...
2021-08-16 18:24:04
106
原创 一个菜鸟的ELK服务搭建(踩坑)日记(3)- Kafka篇
Linux下创建用户为了保证用户的隔离性,所以也要在linux下创建一个用户,参照前面的方式# 创建用户sudo useradd -d /home/gdca/kafka -m kafka# 设置密码sudo passws kafka下载和安装 前往kafk的官网查询版本记录的链接信息:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.7.1/kafka_2.12-2.7.1.tgz直接在linux通过命令...
2021-08-16 14:37:27
297
原创 一个菜鸟的ELK服务搭建(踩坑)日记(2)- zookeeper篇
Linux下创建用户 为了保证用户的隔离性,所以也要在linux下创建一个用户,参照前面的方式sudo useradd -d /home/gdca/kafka -m kafka 创建成功以后设置用户密码sudo passwd kafka设置的比较简单,就会出这个提示,不过这不重要,但是如果是正式生产环境的同学还是设置安全复杂度比较高的密码。好了到了这里,基本的文件路径环境就已经创建好了。下载和安装...
2021-08-16 11:55:12
813
原创 Java高性能实战篇(1)--- 高性能篇
什么是高性能? 高性能的代表特性就是以下4点:高并发用户、高吞吐量、低延迟、容量。高性能的优点高并发用户(Concurrent User)高吞吐量(Througout)低延迟(Latency)容量高性能的缺点...
2021-08-15 22:31:39
321
原创 Java Socket编程基础
1. Java Socket:如何基于sokcet实现server服务器通讯模型:在这个过程中,socket是怎么建立连接和关闭连接的呢,这里面大概的来看一下,tcp的三次握手和四次挥手相关原理。TCP/IP的三次握手和四次挥手概念介绍:1.https://blog.youkuaiyun.com/qq_38950316/article/details/810878092.https://www.cnblogs.com/AhuntSun-blog/p/12028636.htmls...
2021-08-15 21:20:33
149
原创 JVM的GC算法日志分析解读和总结
串行GCjava -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xms256m -Xmx256m -XX:+UseSerialGC GCLogAnalysis串行GC又叫UseSerialGC,年轻代的回收为DefNew,老年代的回收为Tenured2021-08-14T14:28:27.174-0800: [GC (Allocation Failure) 2021-08-14T14:28:27.174-0800: [DefNew: 69952K.
2021-08-14 15:58:17
437
原创 JVM核心知识学习心得指北
GC日志的解读和分析Java可以通过以下命令指定启动GC日志的打印:#命令 #打印GC日志详情 #打印GC事件参数 #运行的类名,注这里是类型不是class文件名不要后缀java -XX:+PrintGCDetails -XX:PrintGCDateStamps XXXX(类名)关于jvm启动的一些默认堆内存参数信息1. 如果当前宿主机物理内存大于1g的情况下会默认使用1/4的物理内存作为jvm的堆内存大小2. 如果当前宿主机的物理内存<=1g,jvm默
2021-08-14 13:49:40
1734
原创 一个菜鸟的ELK服务搭建(踩坑)日记(1)- Elasticsearch篇
Linux下创建用户elasticsearch在启动的时候是不允许使用root用户的,所以要重新建一个用户作为elasticsearch的用户。 首先创建一个linux用户:sudo useradd elk -d -m /home/gdca/elk 这里里面-d -m命令是是创建并设置elk用户的登录路径,这样通过用elk用户登陆以后直接就进入到这个目录下面,这里面有个细节 需要手动创建/home/gdca 这个目录,因为这个命令只会创建最后一级文...
2021-08-12 17:48:45
757
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人