常见 Web 认证方式

Web 认证方式和规范有许多,本文对场景的方式和规范进行介绍。

» 阅读全文 · 常见 Web 认证方式

公司的中秋礼盒

#快手
image

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

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

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

» 阅读全文 · 公司的中秋礼盒

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

#Java

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

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

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

» 阅读全文 · Java|使用 Optional 更好地处理 null 返回值

灰度发布机制介绍

image

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

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

» 阅读全文 · 灰度发布机制介绍

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

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

» 阅读全文 · Linux|inotifywait 异步文件系统监控机制

随笔|治疗犯困

治疗犯困

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

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

老弟的弱点

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

快手|快 START 留念合辑

#快手

2022 年 8 月,快 START 合辑。

» 阅读全文 · 快手|快 START 留念合辑

浏览器父子窗口通讯之 postMessage

#浏览器

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

» 阅读全文 · 浏览器父子窗口通讯之 postMessage

Linux|生成 SSH 密钥登陆教程

#教程 #SSH #Linux

使用非对称密钥登陆 Linux

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

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

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

命令和参数解释

# 生成密钥
ssh-keygen -t rsa -b 4096 -f ~/data/key/id_test_rsa -C "xxxxxx@163.com"

-t 密钥类型, dsa | ecdsa | ed25519 | rsa
-b RSA类型密钥的大小(长度),通常至少应该是 2048,默认 3096
-f 指定私钥的文件名,e.g. ~/.ssh/private_key_name
-C 指定一个注释

# 登录
ssh user@host/ip[:port] -i [identity_file]

e.g. root@106.14.23.168 -i ~/.ssh/id_rsa

-i identity_file 指定私钥文件

# 将公钥放到 .ssh/authorized_keys 文件中
echo id_rsa.pub >> authorized_keys

Spring|Bean的初始化、作用域

#Spring

BeanDefaintion 保存 Bean 的元信息,是 Bean 的“配料表”。

Bean 初始化的方式:

1、通过构造器除时候( 不可变对象)

public class SimpleMovieLister {

    // the SimpleMovieLister has a dependency on a MovieFinder
    private MovieFinder movieFinder;

    // a constructor so that the Spring container can inject a MovieFinder
    public SimpleMovieLister(MovieFinder movieFinder) {
        this.movieFinder = movieFinder;
    }

    // business logic that actually uses the injected MovieFinder is omitted...
}

» 阅读全文 · Spring|Bean的初始化、作用域