整体介绍

团队协作

  • Ant:较少使用
  • Maven
  • Gradle
  • Git
  • SVN:较少使用

质量保证

  • Checkstyle
  • FindBugs:代码检测工具
  • SonarQube:平台,集成了上面两种工具

压测

  • JMeter
  • JMH
  • AB
  • LoadRunner

容器与代理(随着微服务的盛行,Envoy、OpenResty、Kong等API网关的使用也越来越普遍)

  • Tomcat
  • Jetty
  • Nginx
  • Envoy
  • OpenResty
  • Kong

CI/CD

  • Gitlab-CI
  • Jenkins
  • Travis

JVM相关

  • JMC(JFR)
  • jstack、jmap、jstat

系统分析

  • vmstat
  • iostat & iotop
  • ifstat & iftop
  • netstat
  • dstat
  • strace
  • GDB
  • lsof
  • tcpdump
  • traceroute

文档管理

  • JavaDoc
  • Swagger

网络工具

  • PostMan
  • WireShark(网络包分析工具)
  • Fiddler(只针对HTTP进行抓捕)
  • Charies

JVM相关工具

JMC(Java Mission Control)

1.7之后提供的 JVM 图形化监控工具,包括 JVM 浏览器,飞行控制器 JFR(Java Filght Recorder),JMX(Java Management Extensions)控制台。

jps:查看java进程信息
jmap:查看JVM中对象的统计信息,可以在内存溢出时查看堆中最大的对象类型
jstat:对JVM的资源和性能进行实时监控
jstack:查看JVM线程栈信息,可以检查线程死锁问题
jinfo:动态查看、调整jvm参数
jcmd:1.7提供的综合工具,使用飞行计数器分析性能。

Git

分布式管理,有四个保存数据区域,如图中的工作区,暂存区,本地仓库,远程仓库。

开发时线程远程仓库拉取代码到工作区,可以使用clone,pull,fetch,checkout。pull=fetch+merge

提交代码时先使用add,再commit,再push。

Git 工作流

github 工作流:master 分支的代码一直是可发布状态,需要新开发就直接开一个feature分支,完成后pullrequest(PR),当Review通过后,合并到mater分支。

Linux 分析工具

  • vmstat:进程、虚拟内存、页面交换、IO读写、CPU活动等
  • iostat & iotop:系统IO状态信息
  • ifstat & iftop:实时网络流量监控
  • netstat:查看网络相关信息,各种网络协议套接字状态
  • dstat:全能型实时系统信息统计
  • strace:诊断、调试程序的系统调用
  • GDB:程序调试、coredump分析
  • Isof:查看系统当前打开的文件信息
  • tcpdump:网络抓包工具
  • traceroute:网络路由分析工具