
Java
文章平均质量分 69
介绍Java编程知识
老马的编程笔记
生命不息,奋斗不止
展开
-
增量同步陷阱
数据同步的时候进行双向对比:有则更新,无则插入,他们无我们有则标记删除。这种方式实现起来比较简单,缺点是由于我们是全量同步过来的,因此我们系统里面在查询数据的时候,就必须附加上状态过滤条件。看着好像没有问题,但是如果之前有人员是在职的,后来离职了,上面这个SQL是查不到的。我们要从人员管理系统里面在职的人员,我们决定采用增量拉取的方式。第二种方案:仍然采用增量,但是对于更新不限制状态。当我们从第三方系统同步数据时,很容易遇到一个增量同步的陷阱。但是我们之前已经同步到了这个人员,这就造成数据不一致了。原创 2024-11-20 13:07:42 · 157 阅读 · 0 评论 -
企业微信会话存档:大文件拉取、加密、上传
解决的办法,就是使用分片上传,这个要看各家云存储对分片上传的支持了。这个问题之所以没有在测试环境复现,是因为测试环境都是拿的一些小文件测试,结果在线上运行一段时间后,就发现,下载下来的文件显然比真实文件小很多。如果文件很大,比如几个G,那很容易就OOM,为啥之前没有OOM呢,因为第一个问题导致文件内容只有最后一个分片的大小,所以这个问题被隐藏了。在之前的那篇文章结尾,我说发现了系统另外一个隐含的bug:企业微信会话存档拉取媒体文件是分片拉取,我的处理方式有问题导致,保存的永远是最后一个分片。原创 2024-02-06 16:27:35 · 1046 阅读 · 0 评论 -
RESTFul API的缺点有哪些
RESTFul API是一种广泛使用的Web服务设计风格,它以资源为中心,通过HTTP方法来操作这些资源。然而,尽管RESTFul架构风格在许多情况下都非常有用,但在实际应用中,我们也发现了一些不足之处。本文将详细阐述这些问题,并提供一些例子来说明。原创 2023-11-16 17:39:41 · 765 阅读 · 0 评论 -
放下对各种XO的执念,你才能获得愉悦
当使用DTO、VO让你感到痛苦,那么果断放弃吧。不要对这些命令持有执念,懂的设计中的取舍,才能让编程变得愉悦。原创 2023-07-20 18:26:56 · 291 阅读 · 1 评论 -
如何正确的定义缩写
在日常工作中,我们经常遇到缩写。比如OA(Office Automation)、HR(Human Resources)。开发过程中,我们也经常需要使用缩写,比如包名、字段名等。缩写不仅能简化书写,还能统一沟通语言,提高沟通效率。好的缩写,不仅要去书写简单,而且见名知义。但是缩写本身并没有固定的规则和规范,我查阅了大量的常见缩写,从中总结了一些“规律”。希望这些规律可以帮助大家更好的定义和读懂缩写。原创 2023-07-16 11:00:26 · 532 阅读 · 0 评论 -
修改接口参数名和在Swagger中的展示名
有时定义接口参数时,需要让前端用另一个名字来传参。还需要修改参数在swagger文档中的名字。这篇文章将教你如何做。原创 2023-07-14 16:22:42 · 2719 阅读 · 0 评论 -
原来屎代码也有它的道理
但是我们并不能直接在afterPropertiesSet方法里面给userService2赋值,因为afterPropertiesSet是实例方法,不要再实例方法里面设置静态成员。的确,它是对的,工具类缺失不需要实例化成员,因此我们缺失不需要声明一个public的构造方法。所以无论是构造方法还是实例方法, 都是不建议来设置静态成员的——道理都是一样,都是为了防止某个实例的行为,影响全部实例。意思就是不要再构造函数中对静态成员初始化,应为静态成员是属于类的,在构造方法中对静态成员初始化,可能会影响所有实例。原创 2023-07-07 18:20:34 · 225 阅读 · 0 评论 -
form-data和x-www-form-urlencoded的区别和延伸
form-data和x-www-form-urlencoded,它们完整的表示是multipart/form-data和application/x-www-form-urlencoded。为了方便,我们下面就用form-data和x-www-form-urlencoded表示。两者的区别,可谓是老生常谈,随便百度一下,也是有大堆资料。好了,闲话少叙,我们进入正题。原创 2023-04-20 01:30:31 · 15629 阅读 · 5 评论 -
一种简单且通用的后端api接口相关命名规范
我在项目中比较重视api接口的命名规范,好的命名不仅能方便前后端联调,而且代码维护也是很方便的。不幸的是,很多工作几年的老程序员在命名这个事情上也是一塌糊涂。想整理一个规范出来,能够方便开发人员去落实,这个规范一定要简单,不同能力水平的开发人员都能很容易理解和使用。原创 2022-11-29 17:33:22 · 5586 阅读 · 0 评论 -
Java 保留两位的几种方式
没啥技术含量,就是单纯记一下笔记。1. String.formatString.format("%.2f", 33.3333); // 33.332. DecimalFormat.formatDecimalFormat df = new DecimalFormat("#.00");System.out.println(df.format(33.3333)); // 33.333. BigDecimal.setScaleBigDecimal bd= new BigDecimal(33.333原创 2022-03-28 20:20:50 · 1251 阅读 · 0 评论 -
Java lambda表达式实现List转Map
将List分组转成Map是日常开发中常见的需求,我们就来总结一下常见的几种写法。有如下代码:@Dataclass Person { private String uuid; private String name; private String gender; private int age; public Person(String name, String gender, int age) { this.uuid = UUID.random原创 2022-03-27 11:04:57 · 12189 阅读 · 2 评论