《大明王朝 1566》读后感 最近在微信读书上读完了《大明王朝 1566》。微信读书的书友划线评论功能很赞,能让我看到很多书友的精彩评论。书里很多情节和台词都值得反复推敲,很多地方不看评论还弄不明白其中深意。微信读书划线评论功能太适合这本书了。和书友跨越时空一起读完这本《大明王朝 1566》,感慨颇深,在此记录些许想法。 胡宗宪为官之道 “居安思危,得进思退,居常思变。” 为官三思可谓贯穿本书,从 2025-02-20 Essay #Essay
学佛未必信佛 佛教和佛学不同,这里存在一个有趣的现象,学佛之人不一定要信佛。对比其他一些信则得永生不信则下地狱的宗教,全世界可能很难再找到第二个像佛教这么包容的宗教。抽离出佛教中超现实的部分,剩下的很多佛学思想其实属于心理学和哲学范畴。不管你是否相信因果轮回,都可以从中汲取精神养分,多认识一分自我,少受一分无名苦。这也正契合了佛陀和历代禅宗祖师弘法渡众的宗旨。 “吾本来兹土,传法渡迷情” —— 禅宗初祖达摩。 2024-06-22 Essay #Essay
一文理清 Java 日志框架 前言对于 java 日志框架体系相信大家都不陌生,哪怕是初入职场的年轻人也能脱口而出 slf4j + logback 或者 slf4j + log4j2 这样的日志组合,slf4j 作为日志门面不提供具体的日志实现,具体实现委托给具体的日志框架完成,接口和实现分离,日志实现的切换对上层调用方透明。方案看似很完美,但现实很骨感:由于历史原因,一些三方框架可能会使用特定的日志实现,比如 curator 2022-07-03 Java #Java
写给 Java 开发者看的 Spock 快速入门 写给 Java 开发者看的 Spock 快速入门Spock 是什么?看下它的 github 描述: The Enterprise-ready testing and specification framework. 官网介绍: Spock is a testing and specification framework for Java and Groovy applications. Wh 2021-04-14 TDD #TDD
TDD 实战 — 如何测试异步任务 异步操作,包括进程内的异步操作,也包括跨系统的调用,如 MQ 的发布-订阅场景,异步任务中间件场景等,异步操作通常可以提升系统的吞吐量、降低模块耦合,但在我们平时的写单元/集成测试的过程中,如何对这些异步操作进行测试却成了一个难题。 本文列举了几种测试异步操作的解决方案,希望为大家提供一些思路,帮助大家写出更简洁优雅的代码😄 代码中的测试用例是用 Spock 写的,不熟悉 Spock 2020-07-21 TDD #TDD
Seata 分布式事务框架 源码解析 — 优雅停机 前言Seata 是什么? Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 Github 地址: https://github.com/seata/seata 文章概述: 基于源码分析了 Seata 优雅停机的实现方式 同时分析了 Spring 2020-06-05 DistributedSystem #DistributedSystem
提高代码简洁度的工具类合集 日常开发中整理的一些开箱即用的开源工具类,帮助减少冗余代码和项目中的重复轮子,主要提供商包括 Spring, Apache common-lang3, Lombok, Guava。 Assert12345678910111213// original codeif (input == null) { throw new IllegalArgument("given arg 2020-02-24 CleanCode #CleanCode
记一次有趣的代码重构 我等采石之人,当心怀建造大教堂之愿景。——《程序员修炼之道》 发现代码重构和灭霸的响指有一个共同点,两者的出发点都是为了消除系统之中的一部分,让剩下的另一部分存活得更好,从而使得整个系统运更为有序。 不同之处就是灭霸是无差别清除,而重构对于代码的清除却是经过深思熟虑精心设计的。 闲话少说,下面开始正题。 重构前背景是足球比赛的项目,需要处理各种类型的比赛数据。 比赛数据的展示维度如图: 2020-02-14 CleanCode #CleanCode
大搜车异步任务队列中间件的建设实践 本文源自于一次部门内部的技术分享,首发于部门的微信公众号,后被 InfoQ 转载。 前言异步任务处理在系统设计中是一个十分常见的场景, 例如将耗时任务异步化, 流量削峰, 接口的延时回调等等。 对于异步任务, 最最常见的一种实现方式就是 JDK 的线程池了, 使用线程池可以满足大多数异步化的场景, 但它还是有一些局限性: 一方面它是基于内存的, 一旦机器宕机异步任务就丢失了, 可靠性不足; 2019-08-20 DistributedSystem #DistributedSystem
编程随想录 — 代码注释 关于代码注释应该有不少书籍讨论过了, 比如《Clean Code》, 这里我还是想结合一些个人经验, 简单表达一些关于代码注释最佳实践的看法.关于注释我们在项目中可能会遇到如下几种情况: 无用的注释 《Clean Code》里列举了很多种Bad Comments, 其中就包括Noise Comments: Sometimes you see comments that are nothing b 2019-07-02 CleanCode #CleanCode