自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 JAVA虚线程简介-译

本文加入了部分个人理解,省去了部分和主旨关系较弱的段落,可作为虚线程的概览,有时间推荐阅读非常优秀的原文。原文地址链接:Virtual Threads: New Foundations for High-Scale Java Applications。术语说明virtual thread:虚线程。thread-per-request:每个线程处理一个请求。runtime:运行时。s...

2023-06-14 21:15:03 95

原创 业务系统设计的本质

业务系统的挑战和价值业务系统的真正的挑战并不是技术,技术只是一个工具,基本上都有成熟的组件来使用。业务系统真正的价值也不是技术,而是实现了对企业有价值的业务逻辑。所以一个业务系统真正的挑战在于如何快速的支撑业务。完成一个可以支撑业务的系统设计好像并没有难度,但在不断地系统需求演进中,很多系统变得越来越难以维护,BUG越来越多,代码越来越难以读懂,响应需求越来越慢。需求是系统的试金石,系统应该像...

2023-04-26 21:10:47 74

原创 如何画一个系统的设计图

如何画一个系统的设计图为什么写本文评审中发现很多研发都不会画设计图,有的画的非常复杂但没有要点,听的人不知道要表达的是什么;有的图画的非常简单,也没有要点。如果设计图只有在讲解的时候通过别人长时间的询问才能明白,那么设计图还有什么价值?大部分研发内心想提升设计能力,但有一些错误的观念可能会阻碍设计的成长。比如“参考一个好的设计模版,我就能做出好设计了这种想法”,我个人认为是非常错误的观点。...

2023-04-03 19:01:29 69

原创 卓有成效的管理者-书摘

(Drucker.P.F.).卓有成效的管理者有效的管理者重视对外界的贡献。他们并非为工作而工作,而是为成果而工作。有效的管理者善于利用长处。一项有效的决策,总是在“不同意见讨论”的基础上做出的判断,它绝不会是“一致意见”的产物。有效的管理者并不是一开始就着手工作,他们往往会从时间安排上着手。人事决策都是费时的决策。“授权”这个名词,通常都被人误解了,甚至是被人曲解了。这个...

2023-03-21 11:01:41 61

原创 设计原理整体思考

一。引言具体问题的设计方案根据实际场景千变万化,其背后的设计原理几乎从未未改变。设计原理是比设计模式更抽象一级的方法论,接近于哲学。高度的抽象使得设计原理使用范围很广,小到代码书写,方案设计,大到生活的方方面面,都非常有价值。设计原理都很简单,原理的使用并没有它外表那样简单,因为辩证论的二分法,任何原理都有适用和不适用的场景,不要因为名字带原理,就认为绝对是正确的,需要在解决问题的实践中进行权...

2023-03-20 20:11:17 49

原创 Redis实现锁和幂等性

1. 流程示意图2. 示例程序2.1 程序主体private static String lockTest(String orderId, Jedis jedis) { //写入防重Key long result = jedis.setnx("union_" + orderId, "1"); // 1 第一次请求 if (result == 1) ...

2022-07-26 11:25:34 45

原创 JAVA代码Review总结

1. 代码Review的目的一般团队很难在Review中要求极致的代码质量,毕竟是项目而非艺术品。你很难通过Review要求程序进化为完美的程序,很难要求程序员都达到很高的水准,所以常见团队的Review更多的是达成一定的共识,底线是质量可以做到项目要求的高度。而更优秀代码的探讨可以作为锦上添花的讨论,根据情况推荐而不强求。本文尝试总结下自己评审中遇到的通用问题,项目或业务名称通过简称来替...

2022-07-12 21:19:40 149

原创 java的LinkedHashMap如何使用Stream过滤

1. 背景很多时候我们需要用到有序的Map,需要使用LinkedHashMap。如果我们需要对LinkedHashMap做一个过滤呢?是不是可以使用Stream的Filter?看起来很简单的一个问题,伴随展开却能反映出很多。我先给出结论,然后使用一个LinkedHashMap过滤值中包含1的小需求来展开不同的思考。先给出结论:不要书写团队人员都觉得晦涩的代码不同业务代码中共用的业务...

2022-07-12 20:59:34 216

原创 Java的List的Clone竟然是浅拷贝

Java的List的Clone竟然是浅拷贝1. List克隆返回的是浅拷贝的集合前一段时间,代码中用到了Clone,Java中自定义对象默认的Clone是浅拷贝,所以重写了自定义对象的clone方法,实现了深拷贝。没想到还有一个坑,ArrayList的Clone竟然也是浅拷贝,集合本来想当然的认为一定是深拷贝。复现写个小例子来复现下,下面是集合中存放的对象User,实现了Clone...

2022-07-12 20:52:59 66

原创 SQL中是否应该写逻辑

SQL中是否应该写逻辑问题如果我们有不同业务需要更新表的不同字段,我们是应该为每个业务单独写SQL,还是写个更新全部字段的SQL,还是写个动态SQL根据传入的对象非空拼接?问题举例-用户信息更改用户信息我们需要实现三个用例:方案一:单独写Sql如果不使用DDD,对业务还是很友好的,DAO层保证了不可以随便修改数据;很多人认为这种写法让DAO介入了业务,可以用依赖...

2022-07-09 13:32:49 79

原创 这个功能应该谁来做?

跨部门开发,总会有一些参数转换逻辑会涉及双边的领域逻辑,这些转换逻辑到底应该谁来做呢?下面使用一个简单的实例来演示下争议的过程,并给出一定的思考。1. 争议举例需求背景用户购买「买一赠一」两件商品,「促销部门」关心分别独立的两个商品(不同商品价格和促销不一样),「库存部门」不关心买一赠一,告诉我扣减两件库存就可以,「结算部门」调用「库存部门」的接口到底应不应该把「买一赠一」合并商品数量为二...

2021-11-12 18:11:28 42

原创 模板方法设计模式与生活的关系

摘要:学习的过程是由已知概念去学习未知概念,编程中的很多概念,并不是新的概念,平时生活中都有使用。我们通过生活中的经验和编程类似概念类比思考,来加速我们的学习过程。本文讨论GOF中最常用的设计模式「模板方法-TemplateMethod」,这个模式不仅仅编程中常用,生活中也是经常会使用的,比如当你申请银行卡或信用卡的时候,就会用到「模板方法」。模板方法GOF:定义一个操作中的算法骨...

2021-11-01 18:05:10 56

原创 互联网登录系统设计思路

摘要:传统企业信息管理系统的登录功能,很多都是使用Web容器的Session来管理(比如Tomcat容器的Session),这种手段比较简单,适用于少量用户的场景。互联网用户面对的是整个互联网,需要更具扩展性的登录架构来处理登录问题,本文给出一种可实践,可复制的互联网登录解决方案。1. 登录流程首先要弄清楚,整个登录流程是怎样一步步衔接起来的,每个流程又用到了哪些系统能力,有了整体...

2021-10-31 20:37:00 63

原创 程序的扩展性与中台化建设

引言目前很多互联网公司都在搭建自己的业务中台,那么为什要搭建中台?中台化有什么好处?怎么搭建中台?中台化是一个综合性的方法论,本文从程序的扩展性开始,逐步讨论烟囱式开发以及中台化建设涉及的各方面知识。1. 封装性API&扩展性SPIAPI体现的是封装性,已有功能像个黑盒子,从外部在已经的基础上扩展;SPI是专为扩展性而设计,可以从系统内部加强系统的功能。API:使用者直接...

2021-10-28 20:23:44 62

空空如也

空空如也

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

TA关注的人

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