32

唯品会Java核心项目VJTools开源了

 5 years ago
source link: http://calvin1978.blogcn.com/articles/vjtools123.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

VJTools,是主力于Java的唯品会,关于Java的一些小家底:《唯品会Java开发手册》,核心基础类库 ,问题排查小工具。各位看官看着是好的,烦请“Star” :

https://github.com/vipshop/vjtools

1.《唯品会Java开发手册》

《阿里巴巴Java开发手册》 ,是首个对外公布的企业级Java开发手册, 意义重大。

我们结合唯品会的内部经验,参考《Clean Code》、《Effective Java》等重磅资料,增补了一些条目,同时删减了一些相对不那么通用的规则,让规范更精炼易记。

比如:《注释规约》中“所有的类都必须添加创建者和创建日期”,我们觉得在人才流动的今天,修改者纪录交给GIT更好。

在不断的改写中,规范变得更暗,更亮,更薄,更厚,更浑浊,更清澈,更混合,更纯粹...感谢阿里授权我们的任性修改。

2. 核心类库VJKit

综合众多开源类库的精华而成, 让开发人员避免底层代码的重复开发,默认就拥有最佳实践,尤其在性能的方面。

针对“文本,数字,日期,文件,集合,并发,反射”这些开发人员的日常,VJKit做了两件事情:

一是对Guava与Common Lang中最常用API的提炼归类,避免了大家直面茫茫多的API。

二是对各门各派的精华的借鉴移植,比如一些大项目的附送基础库如Netty,ElasticSearch,一些专业的基础库如Jodd,一些大厂的基础库如Facebook和Twitter。

3. 工具集-VJMap

分代版的jmap(新生代,存活区,老生代),是排查内存缓慢泄露,老生代增长过快原因的利器。

jmap -histo PID 打印的是整个Heap的对象统计信息,而为了定位上面的问题,我们需要专门查看OldGen对象,和Survivor区老龄剩男的工具。

致敬R大,思路来源于 TBJMap ,翻新后支持JDK8,支持Survivor区老龄对象过滤,以及大天秤对输出结果不要看歪脖子的执着。

此处有一实战: 【唯实践】JVM老生代增长过快问题排查 ,最后定位是Jedis的锅。

4. 工具集-VJTop

若你习惯以Top观察 “OS指标及繁忙的进程”,也推荐以VJTop观看 “JVM指标及CPU最繁忙,占用内存最多的线程”。

jvmtop 之上二次开发,又结合 SJK 的思路,从/proc , PerfData,JMX等处,以更高的性能,获取更多的信息。

最后的话

SpringSide之后好久没开源新项目,希望大家继续支持,不需要打赏,Github点星是最好的支持。

VJTools官方微信讨论群,请搜索微信号viptech128(唯技术),添加好友后加入。

对于优秀的建议和Pull Request代码提交,唯品会将不吝发挥电商本色,给予vip.com购物卡的奖励 !!!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK