Blog
Blog copied to clipboard
My Blog
## 场景 系统实现中经常需要能够感知配置文件的变化,然后及时更新上下文。 ## 实现方案 * 自己起一个单独线程,定时加载文件,实现较简单,但是无法保证能够实时捕捉文件变化,同时耗CPU * 使用commons-io中的 FileAlterationObserver,思想和上面类似,对比前后文件列表的变化,触发对应事件 * JDK 1.7提供的WatchService,利用底层文件系统提供的功能  ## 使用 WatchService WatchService用来监控一个目录是否发生改变,但是可以通过 WatchEvent 上下文定位具体文件的变化。具体使用过程中要注意以下两点: * 文件改变可能会触发两次事件(我的理解:文件内容的变更,元数据的变更),可以通过文件的时间戳来控制 * 在文件变化事件发生后,如果立即读取文件,可能所获内容并不完整,建议的做法判断文件的 length > 0 ```java // 监控文件的变化,重新加载...
谈谈对TDD的感受。 维基百科定义: > Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases,...
2年前学过一段时间的Go语言,看了几本书,但是后来不用就又生疏了,本次打算从头学习,never late to learn。最主要的原因是当前云原生技术 Docker,k8s都是Go实现的。在接下来的“Go入门”系列中主要跟着《The way to Go》践行。 Go 语言起源 2007 年,于 2009 年正式对外发布。三位作者都是大牛:Robert Griesemer参与开发 Java HotSpot 虚拟机;Rob Pike,Go 语言项目总负责人,贝尔实验室 Unix 团队成员;Ken Thompson,贝尔实验室 Unix 团队成员,C 语言、Unix 的创始人之一。 ## 环境准备 ```bash...
年末将至,这里总结下2019阅读的书籍。 ### 李光耀观天下 国父对世界格局的洞察。 ### A Philosophy of Software Design 软件设计哲学,如何解决软件复杂性的问题。 ### 小岛经济学 : 鱼、美元和经济的故事 入门读物。 ### 原则 生活和工作的原则, 做到极度透明和开放,从失败中学习反思,从历史经验中学习总结原则,要有机器的系统思维,出问题后追究背后的原理,控制自己的非理性部分。 ### 北方的空地 一个人穿越羌塘的游记。 ### 逃不开的经济周期 : 历史,理论与投资现实 精髓就是驱动经济周期的五大要素,及央行的调控手段和面临的十大挑战。MV=PQ ### 夹边沟记事...
在开发过程中,把对象转换为字符串的场景很常见,但是直接调用对象的toString方法,是可能会抛出NPE的,所以会有很多类似下面的模板代码。 ```java String str = a == null ? "" : a.toString(); ``` 其实有很多常用的工具包中都提供了null-safe的工具方法,这里列举下。 ## JDK自带 其实最简单也最容易被忽略的是 String.valueOf() 方法。 ```java public static String valueOf(Object obj) { return (obj == null)...
## How to Read 2 Books a Week https://forge.medium.com/how-to-read-two-books-a-week-414f4d3148e8 多读书
## 1. 介绍 一切的一切都是复杂性 ## 2. 复杂性的定义 Complexity: 软件系统的结构导致很难去理解或修改系统。 复杂性的表现: * 修改放大 change amplification * 认知负载 cognitive load * 未知的未知 unknown unknown 造成复杂性的原因: * 依赖 * 晦涩 ## 3. 代码不仅仅要可运行...
## 一 发现经济周期-繁荣与崩溃 反映货币供应量的指标 * 货币(M0)=流通中的现金,即流通于银行体系之外的现金 * 狭义货币(M1)=(M0)+活期存款 * 广义货币(M2)=M1+准货币(定期存款+居民储蓄存款+其他存款+证券公司客户保证金+住房公积金中心存款+非存款类金融机构在存款类金融机构的存款) **萨伊定律**:让·巴蒂斯特·萨伊1803书《政治经济学概论》中提出的,在商业活动中最容易的就是生产商品,而比较困难的是销售产品,为什么我们不能创造一个总能卖出所有东西的社会呢?当太多的生产手段被用来生产某一种产品,而其他产品的生产却不足,此时就会发生供给过剩的问题。 1862年克莱门特·朱格拉发表《论德、英、美三国经济危机及其发展周期》,他写道:“萧条的唯一原因就是繁荣。” 边际分析法:把追加的支出和追加的收入相比较,二者相等时为临界点,也就是投入的资金所得到的利益与输出损失相等时的点。如果组织的目标是取得最大利润,那么当追加的收入和追加的支出相等时,这一目标就能达到。 1885年,西蒙·纽科姆出版了一本《政治经济学原理》,提出了交易方程,该方程后来被欧文·费雪作为货币数量论重新介绍。MV=PQ,其中 ``` M=货币供给 V=货币流通速度 P=商品与服务的价格 Q=商品与服务的数量 ``` ## 四 经济周期的精髓 ### 理论与现实的背离 经济周期4个分类维度: * 周期:内生性模型假设不稳定性是由经济系统的非线性规律造成的。 * 涟漪:外生性模型假设不稳定性来自于外部的冲击。...
Cron语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year * Seconds: 可出现", - * /"四个字符,有效范围为0-59的整数 * Minutes:可出现", - * /"四个字符,有效范围为0-59的整数 * Hours:可出现", - * /"四个字符,有效范围为0-23的整数 * DayofMonth:可出现", - * / ?...
## 字符串 ## 日期 ### NOW() 返回当前的日期和时间 ### CURDATE() 返回当前的日期 ### CURTIME() 返回当前的时间 ### DATE_ADD() 给日期添加指定的时间间隔 ### DATE_SUB() 从日期减去指定的时间间隔 语法: `DATE_SUB(date,INTERVAL expr type)` date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。 Type 值: MICROSECOND SECOND...