ClassLoader, JavaAgent, Aspectj Weaving一站式扫盲帖

最近工作里复习的Class Loader基础知识集锦,写下来希望对别人有帮助,而且不止是为了撂倒面试官。

为了尽量简单明了容易背,有些部分写得比较干。 [...] (阅读全文……)
Posted in 日常 | 4 Comments

Sonar + Jacoco,强悍的UT, IT 双覆盖率统计

以前做统计代码测试覆盖,一般用Cobertura。以前统计测试覆盖率,一般只算Unit Test,或者闭上眼睛把Unit Test和Integration Test一起算。

但是,我们已经过了迷信UT的时代,使用嵌入式容器的IT (如Spring Boot所倡导的一整套IT测试体系),对代码质量和重构的帮助一点都不比UT小(UT本质上不支持重构,UT不支持基于用户故事的测试。)

但是IT很容易只跑一个用例就跑出40%的覆盖率来,所以Sonar + Jacoco 这种同时显示UT和IT测试覆盖率的组合非常实用。 [...] (阅读全文……)
Posted in 技术 | 2 Comments

魏晋的男神们

下雨天,在小咖啡店里看《世说新语》,那个美姿容的暗黑乱世。 [...] (阅读全文……)
Posted in 文艺 | 1 Comment

Netty之有效规避内存泄漏

有过痛苦的经历,特别能写出深刻的文章 —— 凯尔文. 肖

直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能。但,要重新培养被Java的自动垃圾回收惯坏了的惰性。

Netty有一篇必读的文档 官方文档翻译:引用计数对象 ,在此基础上补充一些自己的理解和细节。

[...] (阅读全文……)
Posted in 技术 | Tagged | 6 Comments

Netty之Java堆外内存扫盲贴

Java的堆外内存本来是高贵而神秘的东西,只在一些缓存方案的收费企业版里出现。但自从用了Netty,就变成了天天打交道的事情,毕竟堆外内存能减少IO时的内存复制;而且也没了烦人的GC。 。

好在,Netty所用的堆外内存就是Java NIO的 DirectByteBuffer类,通读一次很快。还有一些sun.misc.*的东东木有源码,要自己跑去OpenJdk那看个明白。

[...] (阅读全文……)
Posted in 技术 | Tagged | 9 Comments

上班一月

度流光电掣,转浮世风车。入职一个月了,新环境熟稔之后,日子又重新过得飞快,一点都不经花。还有很多事情没做啊,我急促的,甚至奔跑起来。

[...] (阅读全文……)
Posted in 工作 | 1 Comment

Apache Thrift设计概要

最近把Apache Thrift 的Java版代码翻了一遍,尝试理解做一个RPC框架所要考虑的方方面面。
网上关于Thrift设计的文章好像不多,于是把自己的笔记整理了一下发上来。

加插招聘广告:唯品会广州总部的基础架构部招人!! 如果你喜欢纯技术的工作,对大型互联网企业的服务化平台有兴趣,愿意在架构的成长期还可以大展拳脚的时候加盟,请电邮 calvin.xiao@vipshop.com [...] (阅读全文……)
Posted in 技术 | 9 Comments

卡夫卡说过的话

我是一只很不像样的鸟,我是一只寒鸦。 (“卡夫卡”本意是“寒鸦”)

我像其他人一样会游泳,只是我的记性比别人好,就是忘不了以前的不会游泳。由于我不能忘记,会游泳对于我来说无济于事,到头来我还是不会游泳。 [...] (阅读全文……)
Posted in 文艺 | 1 Comment

上班一周

终于安顿下来,过上每天有人发工资给自己看代码、学知识的蜜月期。
[...] (阅读全文……)
Posted in 工作 | 1 Comment

专访唯品会架构师肖桦:做编码的架构师

给CSDN的Java 20周年专题写的采访稿,http://www.csdn.net/article/2015-05-19/2824712-Java
[...] (阅读全文……)
Posted in 技术 | Tagged | 6 Comments