简介工欲善其事,必先利其器。意思是工匠要想做事更有效率,必先利其器。程序员也是如此。如果你想每天早点下班,就必须使用一些开发工具来提高你的工作效率。今天穆峰就给大家总结一下工作中常用的一些工具。一切都不知道大家在日常工作中会不会遇到这样的情况。每次找文件总是抓狂,因为记不住放在哪个目录,但文件名记住就好了,而窗口自带的文件搜索慢得离谱。另外,经常会出现一个文件找了很久却没有这个文件的情况。看得我想吐血。如果有一个可以搜索所有本地文件的工具就好了,于是Everything应运而生。Everything是一个Windows系统文件搜索工具,通过它可以快速找到电脑中的文件和文件位置,真正实现了全盘搜索,而且它的体积也非常小,只需要14MB左右的内存,不到9MB硬盘空间,查找文件效率秒级左右,比windows自带的文件查找效率高出很多倍。可以说,有了Everything,您可以告别到处找文件的尴尬局面,实现快速文件定位,大大节省文件查找时间。Mavenhelper在开发项目时通常会引入第三方jar包进行功能集成,但是导入的第三方包会不会包含与项目中已有jar包冲突的jar包呢?其实我们不善于判断。这样往往会导致jar包冲突导致服务启动失败等异常问题。有时候费了好大劲才排查问题,结果发现只是一个小小的jar包版本冲突,浪费时间和精力。MavenHelper是Java开发必备的Maven管理插件。没有它,我们需要手动分析jar包版本冲突,费时费力。通过MavenHelper,可以一键查找项目中有冲突的jar包。然后通过exclude排除冲突的jar包,会自动添加到对应的pom文件中,方便我们快速的去除项目中冲突的jar包,让技术人员更加关注业务功能的实现,尽量不要在这些小事上浪费时间。除了编码实现,ProcessOn程序员在平时的工作中还包括架构设计和编写技术方案。无论是架构设计还是编写技术方案,绘图总是必不可少的。清晰的架构图、流程图、时序图可以帮助我们更直观地理解业务逻辑和架构原理。因此,一款功能强大的绘图软件就显得尤为重要。ProcessOn是一款非常强大的在线绘图工具,支持流程图、思维导图、UML、网络拓扑等结构图形绘图,甚至支持团队协作绘图。另外,由于是在线绘图工具,屏蔽了系统间的使用差异,您可以随时随地创建图形。ProcessOn还包括大量的绘图模板,各行各业都可以使用。有时候没有画图思路的时候,完全可以借鉴模板中的画图结构。在Apipost程序员的日常工作中,接口联调测试是最重要的研发任务之一。通过和其他同学的联调测试,可以发现我们接口定义的问题,检查接口调用的正确性等等。市面上有很多接口测试工具,但总觉得有不足之处。能测试接口的不能生成接口文档,能生成接口文档的不能做性能测试。总之,它们不能涵盖程序员所有的界面开发和使用场景。Apipost的出现完美解决了以上问题。官方称Apipost=Postman+Swagger+Mock+Jmeter,也就是说将这些工具的能力集成在一起。其实简单来说,Apipost就是一个API接口的封装解决方案。通过它可以定义接口、共享接口、测试接口、mock接口、生成文档等,基本涵盖所有与接口相关的研发场景。其中,我认为在项目组支持接口共享是一个非常实用的能力。以前我们开发接口和别人连接的时候,要么是接口文档满天飞进行交换,要么就是来回发送Swagger连接。Apipost完美解决了这些问题,输入界面只有项目组成员才能看到,而且还支持自动生成API文档,简直不要太方便。另外,界面还支持查看界面状态,主要包括三种界面状态:开发中、完成、待修改。团队中前后端同事可以清晰的看到各个接口的实现状态,方便大家及时了解各个接口的开发进度。同时协同日志可以查看界面的修改记录,非常实用。MAT内存溢出大概是程序员最不想遇到的线上异常,但是又不得不面对,因为内存溢出是一个非常典型的服务异常。快速定位内存异常的原因并修复,减少线上异常的影响时间,是对程序员比较基本的技能要求。其实在分析内存溢出的时候,我们可以借助内存分析工具来提高我们定位问题的效率。MAT(MemoryAnalysisTool)是一款内存分析工具。可以帮助开发者分析Java应用程序的hprof崩溃文件,分析异常堆积对象,快速找到内存泄漏类及其对应的方法,方便技术人员定位分析内存泄漏问题。JavaStreamDebugger开发需求时,我们经常使用stream()来简化循环代码,结合lambda表达式可以变得更简洁。但是有一个问题一直困扰着技术人员。stream()流内部不容易调试,无法查看其中的值循环操作。JavaStreamDebugger可以帮助我们分析stream()流的内部数据赋值,方便程序员。查看每个值的执行流程和数据的最终结果。WiresharkWireshark是一款网卡抓包分析工具,通过它可以抓取指定网卡的所有网络数据包。主要可用于网络数据分析场景,如分析网络数据的正确性、网络底层通信机制、客户端是否主动断开或服务端断开等。ArthasArthas是阿里巴巴开源的在线Java应用异常定位和诊断工具。它可以在不重新启动应用程序的情况下动态跟踪java代码。通过Arthas,我们可以实时在线查看应用内存、CPU使用率等负载情况、JVMGC和线程状态。信息等,还支持在线热修改代码,无需重启服务,在在线定位问题,测试修改后代码执行的场景下非常实用,大大提高了技术人员分析问题和解决问题的效率例外。Arthas启动后,可以attach到指定的java进程。下面是Arthas启动后的交互界面。Arthas提供了丰富的命令交互。在这里输入dashboard命令可以查看当前java应用的各线程的cpu、运行状态等信息。同时可以查看JVM中堆、新生代、元空间、老年代的使用情况。方便我们理解java应用程序的内存垃圾回收。