清水雅然
Recent Posts
项目工具:线上"假死“问题解决(Jstack工具分析,脚本监控服务)
问题项目在正式上线后,偶发性出现项目的"假死"的问题,项目无法响应前端的请求,一开始,架构师查询到存在大量锁表的情况,去掉了一些长时间任务的更新的事务,同时提高了JVM的-Xmx和-Xms的大小,第一天虽然情况有所缓解,在第二天访问量上去后,还是出现了假死的问题。于是,在顶着客户...
2021-03-01
项目重构:一行代码的背后-设计模式(模板方法+管道模式)
Read More
管道-过滤器模式的体系结构是面向数据流的软件体系结构。它最典型的应用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等一系列对源程序进行处理的过程。人们可以将编译系统看作一系列过滤器的连接体,按照管道-过滤器的体系结构进行设计。此外,这种体...
2021-01-09
折腾日记:构建JDK9源码
Read More
作为JAVA开发者,JDK一定天天都会用到,所以想这周编译一下JDK源码,项目一直在使用JDK8,所以可以编译JDK9,这里的JDK指的是openJDK,每个版本的JDK编译都需要一个BootJDK(可以参考building.html中编译指南),比如JDK9,就需要JDK8openJDK做为GPL...
2020-12-20
项目源码:使用AOP完成长任务轮询
Read More
AOP(AspectOrientedProgramming),即面向切面编程,可以说是OOP(ObjectOrientedProgramming,面向对象编程)的补充和完善。需求背景有一个接口实现合并文件,当文件过多时,预计要三分钟或者更长时间,这个时候前端调用的时候,就会出现接口的超时的问题,于是...
2020-12-13
项目工具:Jenkins自动打包部署
Read More
项目现状由于项目一开始时间比较紧,...
2020-12-10
项目重构:设计模式(模板方法模式)
Read More
在模板模式(TemplatePattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。最近,在项目中,需要调用用户提供的接口发送微信模板信息,然后提供了信息模板{"Personnel...
2020-12-03
项目重构:设计模式(策略模式)
Read More
策略模式(StrategyPattern)属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。其主要目的是通过定义相似的算法,替换ifelse语句写法,并且可以随时相互替换。由于项目中,...
2020-11-29
个人代码规范
Read More
由于之前和外包团队进行合作。在通用功能的调用,发现不同团队的编写水平不一致,导致通用功能很多地方都需要重构;所以自己在重构代码的同时,也整理自己写代码的习惯1.一个方法只做一件事或者一个方向的事情赋值set;保存save;判断is;转换to1)获取单个对象的方法用get做前缀。2)获取多个对象的方法...
2020-11-08
每日题解:LeetCode 241. 为运算表达式设计优先级
Read More
...
2020-08-27
每日题解:LeetCode 1008. 先序遍历构造二叉树
Read More
...
2020-08-19
Read More