VJTools, 是主力于 Java 的唯品会, 关于 Java 的一些小家底:唯品会 Java 开发手册, 核心基础类库 , 问题排查小工具. 各位看官看着是好的, 烦请 "Star" :
https://github.com/vipshop/vjtools
1.唯品会 Java 开发手册
阿里巴巴 Java 开发手册 https://github.com/alibaba/p3c , 是首个对外公布的企业级 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 大, 思路来源于 https://github.com/alibaba/TBJMap , 翻新后支持 JDK8, 支持 Survivor 区老龄对象过滤, 以及大天秤对输出结果不要看歪脖子的执着.
此处有一实战:[唯实践] JVM 老生代增长过快问题排查 https://mp.weixin.qq.com/s?__biz=MjM5NjM5MzQ1MQ==&mid=2651039738&idx=1&sn=7730d63445fd426a00c4d83882059570 , 最后定位是 Jedis 的锅.
4. 工具集 - VJTop
若你习惯以 Top 观察 "OS 指标及繁忙的进程", 也推荐以 VJTop 观看 "JVM 指标及 CPU 最繁忙, 占用内存最多的线程".
在 https://github.com/patric-r/jvmtop 之上二次开发, 又结合 SJK https://github.com/aragozin/jvm-tools 的思路, 从 / proc , PerfData,JMX 等处, 以更高的性能, 获取更多的信息.
最后的话
SpringSide 之后好久没开源新项目, 希望大家继续支持, 不需要打赏, Github 点星是最好的支持.
VJTools 官方微信讨论群, 请搜索微信号 viptech128(唯技术), 添加好友后加入.
对于优秀的建议和 Pull Request 代码提交, 唯品会将不吝发挥电商本色, 给予 vip.com 购物卡的奖励 !!!
有关的...
2016-11-26 -- 关于 Java 集合的小抄 http://calvin1978.blogcn.com/articles/collection.html
2015-04-21 -- JDK 数则 http://calvin1978.blogcn.com/articles/jdk.html
来源: https://juejin.im/entry/5b1733ea5188257d9b79cf63