月度归档:2020年08月

flyway和jooq

在上文中,我推荐了flyway+jooq的组合。不同于我的其它推荐大多对标Google和FB这样的国际一线大厂,这个组合在国内也用的很多。不仅仅是一些创业公司(比如我前公司),诸如美团、58等很多大厂的新兴部门也会采用。
flyway,这个东西的理念平平无奇——做数据库的版本控制,但效果实际上出奇的好。DDL和DML的维护本身并不是一件复杂的事,常用的方法比如在项目中用一个sql文件记录,另开一个git仓库用来记录,都是可行的。在执行时,使用工单提交,完成线上变更。在我的实践经验中,这两种方法都有… Read the rest

类型安全

最近大家在解决sonar bug,我也看了一下,相当一部分sonar bug都是因为使用了类型不安全的库导致的。java本身是类型安全的,以java所写的代码一般也以类型安全为优美,但是我发现我们同学写的代码中有非常多的类型不安全的实现,特写一篇文章宣讲记录。

注:类型安全的定义在不同地方会有不同,本文指的是相当宽泛的类型安全。

大家都知道fastjson频繁爆出bug,而这些bug中最严重的一些,又是因为AutoType这一特性。这个事情说来话长,本文不展开,这里提供一篇文章供大家参考。AutoTyp… Read the rest

假如你的代码让公司亏了100万

虽然标题是假如,但是这种事我早就干过了,而且亏了不止一百万。今天就来聊一下这个问题,假如你的代码让公司亏了100万,最终的责任分配应该是什么样子?你会被炒吗?

我在面试中跟几家公司的面试官也讨论过这个问题,不出意料,在很多公司,被炒是大概率事件。 而同样的事情,发生在Facebook和google这样的公司,员工不仅不会被炒,甚至批评都不会有,不会被追究任何责任。有传言说在Facebook,如果你把生产环境搞挂或者造成重大损失,大家会庆祝你在Facebook成年了。这种差距的背后是什么?是这些公司有… Read the rest

Java 9-15最接近我们的特性

抛去各种各样特别牛的特性不谈,我们就说一下我们肯定会经常用到的几个特性。其实就几个,switch表达式,ZGC,var关键字,文本块,record,instanceof,还有更实用的nullpointer报错。

从简单的开始看起。

注:本文描述特性的时候包含很多直接抄来的样例,有的特性需要编译的时候开启特定开关,本文并不关注这些细节,而是关注特性本身。

1、更人性化的NullPointer报错

例如,如下代码:

var name = user.getLocation().getCity().getName();
Read the rest