一、前言
CSDN 猿创征文第四季寻找开发者每天都在使用、寻找、贡献、创作各类开发者工具,包括开源服务、付费软件、API等。
作为 Java 程序员,常用的软件开发软件(如 IDEA、Eclipse)、开源项目(Spring Boot、MyBatis、Dubbo、RocketMQ、Guava 等)就那些无需赘述,这里就不想介绍了。
借着这个机会,本文介绍几款自己日常开发中经常用到的能够提效的软件和插件,希望对大家有帮助。
二、高效软件
2.1 效率工具集 - uTools (或 Alfred)
uTools 软件官网: https://www.u.tools/
推荐理由:
uTool 提供了诸多有用的插件,能够极大提高日常检索和开发效率。
如网页快开: 可以定义各种搜索方式,能够输入一个关键字快速触发一个或者多个网站的搜索。如输入一个问题,自动同时打开百度、谷歌搜索引擎一起搜索。如预定义公司内部根据 traceId 搜链路日志的链接,输入 traceId,自动触发调用链路检索功能。
如备忘快贴:可以预定义各种常见的文本,如 maven 指令、 cd 和 open 指令等,快速复制出来使用。
还有 Ocr 图片转文字、 JSON 格式化、生成二维码、图片压缩、文本 Diff 等功能,非常强大。
2.2 笔记软件 - 语雀
作为程序员不管是技术方案,还是说明文档还是排查问题的文档等,避免不了写文档。
笔记类软件有很多,如 语雀、为知笔记、有道云笔记、印象笔记、 notion 等,大家根据自己的喜好进行选择。
本人用过 notion、有道云笔记、印象笔记、语雀等。最近很长一段时间习惯于使用语雀,语雀的小记可以快速记录待办事项,排查问题暂时记录线索、写一些文章目录等。日常写作也习惯于在语雀中创作再导出 Markdown 格式然后发布到 CSDN 中。
2.3 思维导图 - Xmind
通常使用 Xmind 记录日常开发中经常会用到的指令,如 find、grep 、maven 、git 等命令的常见和高级用法。
会选择使用 Xmind 梳理创作文章的结构,推敲调整好思维导图后再去创作,避免反复修改,做无用功。
使用 Xmind 归纳常见解决问题的思路、归纳性能优化的常见方法、归纳软件开发周期中的注意事项等。
2.4 粘贴板历史 - uPaste ( Mac 专用)
日常开发和排查问题时,经常需要反复粘贴粘贴板历史中的一些内容,反复切换软件或者浏览器 tab 页粘贴刚才粘贴过的内容非常浪费时间。
uPaste 则可以更优雅地解决这个问题,该软件可以自动将不同的内容根据类型进行分类,也支持快捷键呼出粘贴板历史,按照关键字、应用名称等搜索粘贴历史,使用快捷键快速粘贴。
2.5 快捷切换 - Manico ( Mac 专用)
日常开发过程中,经常需要从各种 App 之间进行切换。如从 IDEA 切换到 语雀,从语雀切换到钉钉等等。
每次切换都会浪费很多时间,有没有快速实现切换的方式呢, Manico 就可以解决这个问题。
Manico 可以通过快捷键呼出正在使用的 App,按对应的数字即可快速切换到对应的应用界面。
2.6 截图贴图 - Xnip ( 或 Snipaste )
日常编写技术方案、使用文档等避免不了使用截图。
日常开发中排查问题,希望可以截图记录到文档中或者并排贴到桌面上方便分析问题。
可以使用 Xnip (Mac) 或者 Snipaste 。
Snipaste 优势在于跨平台,而且免费。支持截图、标注和贴图功能,可以满足大多数截图场景。
Xnip 仅支持 Mac 系统,而且免费版有水印,但是步骤标注,更专业;截取窗口时带阴影效果,更美观。
Xnip 支持步骤工具(在截图上添加标号,给出步骤注释,适合写使用文档)、滚定截图、截图标注、贴图(适合将关键线索截图后贴到窗口中排查问题,避免反复切换)。
2.7 终端 - iterm ( Mac 专用)
iterm 比默认的终端颜值更高。
https://iterm2.com/
再搭配 oh-my-zsh 的各种插件和主题,颜值爆表。
如 powerlevel10k 主题非常漂亮:
安装 zsh-autosuggestions 插件,可以根据历史输入的指令、根据当前文件名称等自动补全,效率翻倍。
2.8 线上诊断 - arthas idea
日常开发中,难免会遇到各种奇奇怪怪的问题,如何快速解决是关键。
可以使用 arthas ,查看线上某个类的源码,分析某个类是从那个 Jar 包加载而来,抓取某个调用的入参、返回值、异常信息;分析调用的耗时等;对快速排查问题有极大的帮助。
2.9 作图软件 - draw.io / PlantUML
作为程序员画图不可避免。在这里推荐两个非常棒的作图软件,draw.io 和 PlantUML。
通常,画流程图、架构图等我会选择使用 draw.io ,拖拖拽拽即可,方便而且颜值更高。画时序图、类图等我会选择使用 PlantUML 通过脚本的方式画图,更方便,高效。
2.9.1 draw.io
draw.io 在线版:
https://app.diagrams.net/
桌面版下载地址:
https://github.com/jgraph/drawio-desktop/releases
详细用法,参见:《免费画图软件推荐 - draw.io》 设置 sketch 之后颜值立马提升一个 Level。
2.9.2 PlantUML
PlantUML : https://plantuml.com/zh/sequence-diagram
官网的教程非常全面,有很多示例:
2.10 文档扫描 - Scanner Pro / 扫描全能王
学习和工作中很可能有重要的纸质文档、重要的纸质证书需要保存,如果不能电子化存储,很容易丢失。
有时需要打印,如果没有扫描过还要拿文档、证书去打印店打印。如果想扫描存储,去打印店通过扫描仪来扫描,浪费钱而且浪费时间。
推荐大家使用 Scanner Pro(仅 Mac) 或者 扫描全能王 对文档、证书进行扫描保存,非常方便。
Scanner Pro 扫描文档非常清晰,扫描时如果拍歪了可以自动校正,非常专业,扫描后可以以 PDF 或者 图片格式保存和分享。彩色的证书扫描后打印出来几乎和原版一模一样。苹果用户还可以通过 icloud 在自己的多个苹果设备内共享。安全起见,推荐外加 U 盘和网盘备份。
三、高效 IDEA 插件
接下来主要介绍可以提高开发效率的 IDEA 插件。
3.1 智能代码提示 - Tabnine
IDEA 本身提供了基本的代码提示,可以额外安装智能代码提示的插件,如 tabnine 对此功能进行增强,可以大大提高编码效率。
尤其是 Tabnine Pro 版本非常强大,可以根据诸多开源项目机器学习的结果和当前代码进行大量片段的代码提示。
tabnine 还提供了代码搜索工具: https://www.tabnine.com/code
可以搜索各种函数在知名开源项目的用法案例,很赞。
3.2 arthas 指令生成 - arthas idea
前面推荐了 arthas ,该工具可以帮助我们快速分析和定位问题。但手动拼接 arthas 命令非常麻烦。
可以安装 arthas idea 插件,在对应的函数上选择需要的指令即可复制出对应指令在 arthas 中执行,非常方便。
3.3 自动生成注释 - Easy JavaDoc
日常开发避免不了写一些常规的注释,但很多注释非常简单,不写不符合规范,写了又浪费时间。
可以使用 Easy Javadoc ,该插件支持类、函数、属性等基于翻译软件自动生成注释。对于不太符合要求的注释二次修改即可。
有些朋友会想到,如果有些专有词汇想按照自己的意图翻译怎么办?
该插件还支持自定义单词映射,翻译时对应单词将采用配置中的值来填充。
3.4 自动格式化 - Save Action
该插件可以在我们保存文件时,自动触发 import 优化、代码 format 、为属性添加 final 等。
大家可以根据自己的偏好进行配置。
3.5 Java 对象转 JSON - Java Bean to Json
开发中有时候需要根据某个 POJO 类构造对应的 JSON 发起请求。
此时,可以使用 Java Bean to Json 插件,一键构造对应的 JSON 字符串,然后根据实际业务填值即可,相当省时间。
3.6 自动调用所有 Setter - GenerateAllSetter
开发中,经常需要构造某个对象,然后调用所有的 Setter 方法。手动调用每个 Setter 方法非常浪费时间,而且很容易遗漏。开发中经常需要对不同分层模型之间转换,如 UserVo from(UserDo user)
。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wQ7OQgVH-1668259016804)(https://cdn.nlark.com/yuque/0/2022/gif/1790553/1668236341088-9fc59c66-4f8b-42aa-a5ff-09ae0f74b16e.gif_the_conveter.gif&originHeight=921&originWidth=1325&originalType=binary&ratio=1&rotation=0&showTitle=false&size=129809&status=done&style=none&taskId=uc274c24b-f743-4e15-b745-bf1af1f6dc2&title=)
可以使用 GenerateAllSetter 插件,根据某个对象自动调用所有 Setter 方法,还可以定义好转换函数后自动生成转换的代码,非常有效率。
3.7 Maven 冲突解决 - Maven Helper
Maven 是常用的版本管理工具,使用 Maven 经常会遇到 Jar 包冲突的情况。
可以使用 mvn dependency:tree
打印依赖树进行分析,但不太方便。
此时,可以使用 Maven Helper 插件,来分析依赖冲突,排除某个依赖等,非常方便。
3.8 PlantUML 整合 - PlantUML integration
在做技术方案时,通常需要画各种 UML 图, 前面也推荐了 PlantUML 。
但是直接在 PlantUML 上作图远程渲染容易造成数据泄露,IDEA 提供了 PlantUML 的整合插件: PlantUML integration
,可以实现本地画图。
但新版本的 PlantUML 默认主题非常昏暗,大家可以参考我的另外一篇文章:《PlantUML 高版本 IDEA 插件默认主题修改》调整到之前经典的主题即可。
3.9 字节码查看 - Jclasslib
偶尔需要查看字节码,通常使用 javac 编译,然后使用 javap 指令反编译来查看字节码,非常不便。
可以安装 Jclasslib 以可视化已编译Java类文件和所包含的字节码。
效果如下
点击指令关键字,可以跳转到指令的说明文档
3.10 变量区分 - Rainbow Variable
IDEA 中不同变量的颜色区分不大,有些变量命名比较相似而且类型相同很容易误用。
此时,可以使用 Rainbow Variable 插件,在同一个函数内部相同的变量采用同样的颜色,不同的变量很容易通过颜色进行区分,避免误用。
3.11 参数自动填充 - Auto filling Java call arguments
在日常开发中,经常需要创建对象和调用函数,通常参数都已经在当前函数内已经定义,调用时还需要再手动填充到参数中,比较浪费时间。
此时,可以使用 Auto filling Java call arguments 插件。
在调用函数时,通过alt enter键,触发联想功能,选择“auto fill call parameters” 自动填充调用的函数的形参名,非常高效。
如果想了解更多受欢迎的插件可以在 IDEA 插件市场里自行检索:
可以选择按照:下载量、名称、星级、相关性和最近更新等方式排序。
四、总结
本文主要推荐自己日常开发中常用的对提效比较有帮助的软件和 IDEA 插件,希望对大家有帮助,如果你有能够提效的软件推荐,欢迎在评论区补充。