香山公园

香山公园游览 @JT、@HZY、@JXH。

《古树》
《古树》

平凡的国庆,感受家的温暖

国庆过完了,回来了,却回不去了。

国庆去了好几个地方,父母住的郑州、老家周口,还有新乡,在路上画了不少时间,不是在赶车就是在路上,虽然忙但做这些事是高兴的。

性能测试指标笔记

我们经常说要提升程序的性能,提升性能的方法有很多,评判的依据是某些指标朝着好的方向发展,站在服务端首先能想到的是 QPS、TPS、RT,前端页面最常见的指标是页面加载速度、首屏有限显示时间,同意数据库、中间件使用什么指标度量也有许多。

公司的中秋礼盒

image

今年公司的中秋礼盒,可以看出 HR 很用心。

印象最深刻的是三封来自边远地区的信,来信的是退役军人,他们多从事护林、守卫边疆的工作,信的内容很质朴,从中我看到了他们的生活、意志、信仰,“未来当一个士兵”,“守卫好祖国的边疆”,“尽自己的绵薄之力,帮助父老乡亲致富”……这些不像那些伟大工程那般但同样值得被记住。

我想到了公司产品的 slogan —— “拥抱每一种生活”,我所理解的“拥抱”更多的等同“包容”,每个人都有不同的生活,精彩或不精彩,它是客观存在的,不能说不精彩就有错,存在就有其合理性。

Java|使用 Optional 更好地处理 null 返回值

Optional 是一个容器类,是 JDK 8 提供的一个防止引起空指针异常的工具类,可以更好地封装处理返回值。

为什么更推荐使用 Optional 类封装可能为 null 的返回值?在项目开发过程中,没人绝对清楚调用方法的返回值一定存在,开发者也只是尽力保证返回值不为 null,比如查询用户列表没用户时我们就返回长度为 0 的 ArrayList,有种对任何值都不信任的编程方式,但这种方式会形成许多冗余代码,让开发者也很累,不这样做会带来讨厌的 Null Pointer Exception(NPE)问题;其次是在多层次取成员变量时,程序员能判断到吐。Optional 的出现很好的改观了这个问题,一两行代码就能代替繁琐的判空。

本文对 Optional 工具的使用技巧进行总结。

灰度发布机制学习总结

image

今年八月份,我们部门发布“禁止未经测试验证、不具备观测能力、未经灰度发布、不具备应急止损能力的服务进行上线变更”红线,目的是为了降低线上故障率,线上故障是个很玄乎的玩意,你觉得没问题这次稳了,啪说不定它就跳出来了,在公司里故障是与绩效挂钩的,出问题要有人担责。我曾经请教过一位大佬,他是做游戏开发的,我曾问他“您认为软件开发中最重要的技术能力是什么”,他答:“软件开发需要细心,不出问题比性能更重要”,大佬的话很实在。

灰度发布在大厂中是重要的功能组件,关乎软件的稳定性,作为一个开发我们如何去使用这个功能,或者怎么去实现简单的灰度功能呢,本文将尝试回答这些问题。

Linux|inotifywait 异步文件系统监控机制

异步文件系统监控机制 ,可以用来监听文件夹、文件的属性或内容变更的事件。

随笔|治疗犯困

治疗犯困

长时间坐在家里容易犯困,似乎看几十分钟视频就要打哈欠,我想了个办法,去超市买点吃的,酸些的零食,乌梅、蓝莓之类的,在不在状态时就吃点,像喝了脉动似的,虽然不太清楚喝脉动对我提神的效果,但是我知道我爱吃酸的,伴随着味蕾的刺激,精神又从八千里外拉扯回来了。

昨天买的热水壶今天到了,准备尝试一下花茶,我在朋友圈发了一个说说让大家给我推荐写花茶,多数人给我推荐枸杞,哈,虽然这是个好东西貌似我还不需要,还有些推荐的不错的我准备尝试一下,今天在买了大朵的贡菊尝试一下还不错。

老弟的弱点

我在家里的小群里发了个消息,我爸立刻在群里发了语音,谈我弟的校招,我跟他说明后我弟就从潜水状态出来了,他说在看设计模式准备投递简历,我听到这里就没有太多担忧了,老爸继续道:“要多听听你哥的,向他请教请教,别太拗你的脾气”,之后老弟服服帖帖的连连答应,我一听乐了,看来还是老爸的话管用。下午我跟老弟视频通话,详细了解了他近期的情况并给他一些建议。

浏览器父子窗口通讯之 postMessage

在浏览器中,postMessage() 函数是用来实现安全跨网站通讯,可以是另一个浏览器的 tab 或者嵌入页面的 iframe。这个接口可以让浏览器的页面协作起来,实现更丰富的功能,例如我们准备开发一个可能重用的页面组件,便可以将页面通过 iframe 嵌入然后通过 postMessage() 进行通讯。

Linux|生成 SSH 密钥登陆教程

使用非对称密钥登陆 Linux

1、使用 ssh-keygen 生成公私钥

2、服务器(Linux)端 ~/.ssh/authorized_keys 文件存放公钥,保证 SSH 服务开启,默认端口 22。

3、自己保存私钥,登陆时使用 ssh 命令

命令和参数解释

 1# 生成密钥
 2ssh-keygen -t rsa -b 4096 -f ~/data/key/id_test_rsa -C "xxxxxx@163.com"
 3
 4-t 密钥类型, dsa | ecdsa | ed25519 | rsa
 5-b RSA类型密钥的大小(长度),通常至少应该是 2048,默认 3096
 6-f 指定私钥的文件名,e.g. ~/.ssh/private_key_name
 7-C 指定一个注释
 8
 9# 登录
10ssh user@host/ip[:port] -i [identity_file]
11
12e.g. root@106.14.23.168 -i ~/.ssh/id_rsa
13
14-i identity_file 指定私钥文件
15
16# 将公钥放到 .ssh/authorized_keys 文件中
17echo id_rsa.pub >> authorized_keys