唯品会 Java 核心项目 VJTools 开源了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cfz
V2EX    Java

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

  •  1
     
  •   cfz
    cfz 2018-06-06 12:19:38 +08:00 4409 次点击
    这是一个创建于 2689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 最繁忙,占用内存最多的线程”。

    另一用途,是监控系统发现指标超阈值时,钩子脚本调 VJTop 纪录事发地状况。

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

    1 条回复    2018-06-12 08:50:48 +08:00
    skyJ
        1
    skyJ  
       2018-06-12 08:50:48 +08:00 via Android
    哪里下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5508 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 06:34 PVG 14:34 LAX 23:34 JFK 02:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86