用好这 28 个工具,开发效率爆涨
大家好,我是秦世成,我在云效负责制品仓库 Packages 的开发工作。作为一个有多年经验的资深 CRUD 后端工程师,使用过很多日常开发所需的工具软件,其中不少能堪称为「神器」,这些「神器」能极大的提升日常开发的效率;小到一个复制粘贴操作,大到开发运维,我们都可以使用合适的工具来进行效率提升,加速日常开发流程,让开发效率蹭蹭蹭。本文我将主要从 Terminal 和 Desktop 2 个大类、8 个核心开发场景介绍一下我最常使用的效率工具,及如何通过这些工具来提升程序员「幸福感」的实践。
Terminal
终端管理
在我们日常开发运维的过程中,经常会和终端打交道,比如服务的部署,文件的浏览查看等;但是我们在和终端打交道的过程中,经常会遇到下面的问题:
需要在多个终端之间切换,来回操作麻烦,容易出错,效率低下
终端输入效率低下,无智能自动提示,输入高亮显示等
终端显示操作不流畅,乱码频发,苦不堪言
通过下面的终端神器,就可以打造一个高颜值,高效率的终端。
iTerm2 负责颜值和基本的 Shell 呈现托管,Tmux 负责 Shell 的多窗口管理,而 Zsh 负责对 Shell 功能的拓展提升。
iTerm2:高颜值终端工具
🔗 链接:https://iterm2.com/
👍 推荐指数:⭐⭐⭐⭐⭐
iTerm2 是一款功能强大的终端工具,也可以说是 Terminal 的替代品,也可以说是 iTerm 的后继产品。它适用于 macOS 10.12 或更高版本的 macOS。它支持分窗口操作、自动补齐、粘贴历史、回放功能、全屏等功能,是一款非常强大、非常值得推荐的终端工具。
Tmux:终端复用软件
🔗 链接:https://github.com/tmux/tmux
👍 推荐指数:⭐⭐⭐⭐⭐
Tmux 是一个用于在终端窗口中运行多个终端会话的工具,即终端复用软件(terminal multiplexer)。在 Tmux 中可以根据不同的工作任务创建不同的会话,每个会话又可以创建多个窗口来完成不同的工作,每个窗口又可以分割成很多小窗口。这些功能都是非常实用的。
Tmux 可以无差别的优化我们使用终端的体验,特别是分屏+多窗口的功能可以极大的提高使用效率,就如下图所示,可以将自己关注的所有关键信息都展示在一个屏幕上,很极客有没有。不仅如此,tmux 还提供了 session 管理功能,可以同时开启多个 session,将相关的多个窗口集中在一个 session 进行管理,如果搭配上 tmux-continuum 插件,还可以自动保存和恢复 session,不用再担心重启以后 session 丢失的问题了。
Tmux 的细节和技巧有很多,这里就不再一一介绍了,更多奇技淫巧可以看阮一峰老师的文章《Tmux使用教程》
Tmux 社区也提供了许多的插件,满足不同的定制化需求,这里推荐几个比较常用的,更多的插件可以到官网探索:
tmux-plugin-manager: tmux 插件管理器
tmux-powerline:tmux 状态栏,颜控必备
tmux-continuum: 自动恢复和连续保存 tmux env
tmux-yank:允许将突出显示的文本复制到系统剪贴板
Zsh & Oh-my-zsh:能抗能打强大 Shell
🔗 zsh 链接:https://github.com/zsh-users/zsh
🔗 oh-my-zsh 链接:https://github.com/ohmyzsh/ohmyzsh
👍 推荐指数:⭐⭐⭐⭐⭐
Zsh 同 bash 一样,是一款功能强大的终端(shell)软件,提供的强大的自定制的能力,并且其 99% 的 Bash 操作 和 Zsh 是相同的。
而 oh-my-zsh 则是 zsh 的配置管理工具,其提供了强大的功能,插件,主题等,能够最大效率的提升使用 shell 的效率。
大家可能比较好奇,我都有 Bash 了,为了还要用 Zsh 呀?Bash 虽然能够满足我们使用 Shell 的基本要求,但是我们不仅要能用,而且还要用的好,用的舒服。作者在接触 Zsh 之前,一直使用的是 Bash,就在那个黑乎乎的界面上敲着生疏的命令,不仅效率低下,而且容易出错,极其枯燥。后来接触了 Zsh+oh-my-zsh 以后,原来 Shell 可以这么有趣,Zsh 不仅可以兼容 Bash 99%的操作,并且提供了高颜值的交互界面及高效率的插件,这种感觉就像以前就用 notepad 敲代码,后来切换到了 IDE 上,Shell 使用体验大大提升。
就如下图所示:高颜值交互界面,Git 信息自动提示,命令行高亮,输出内容更加友好等等。
我敲的不是命令行,而是艺术品。
oh-my-zsh 同样提供了诸多实用的插件:
git: 提供了当前的 workspace 下的 git 提示,比如分支信息,commit 信息等
zsh-autosuggestion:自动从 history 中,推荐输入的 shell 命令
zsh-syntax-highlighting:提供了 shell 命令的高亮显示
zsh-z: 提供了在你访问的目录间快速跳转的能力
zsh-vim-mode:将 shell 中的操作键映射为 vim,加速 shell 输入速度
开发调试
作为一个合格的 CRUD 工程师,在日常开发(mō yú)过程中,进行最多的操作就是 调接口->看响应->改代码->调接口->看响应->改代码...
那么如此高频的操作怎么能少了几件趁手的兵器呢。
如果你喜欢在终端下调用接口进行调试,那么不妨可以使用下面一组工具:
调接口(httpie)->看响应(jq & fx)-> 改代码(tig & vim)
httpie:高颜值 http 客户端
🔗 链接:https://httpie.io/
👍 推荐指数:⭐⭐⭐⭐
Httpie 是一个命令行 HTTP 客户端。它的目的是使 CLI 和网络服务之间的交互尽可能人性化。它提供了一个简单的 HTTP 命令,允许使用简单自然的语法发送任意 HTTP 请求,并显示多彩输出。HTTPie 可用于测试,调试以及通常与 HTTP 服务器交互。
我们以往使用的最多的就是 curl,curl 也是一个很强大的 Http 客户端,就是丑了些(手动狗头),如果你厌倦了 curl,不妨来试试 httpie,绝对会给你不一样的 http CRUD 体验。
jq & fx:JSON 处理和可视化
🔗 jq 链接:https://stedolan.github.io/jq/
🔗 fx 链接:https://github.com/antonmedv/fx
👍 推荐指数:⭐⭐⭐⭐
jq 是一款轻量级,并且足够灵活的命令行 JSON 处理器,可以在命令行中优雅快速的处理 JSON。
在遍地 RESTful 和 JSON 的时代,解析并处理 JSON 成为我们最常见的需求:
比如我们需要通过 Shell 调用接口完成一些自动话的操作,接口的响应为 JSON 格式,这时我们就需要使用 jq 来解析 JSON 内容获取我们需要的信息。
有或者我们需要处理大批量的数据,我们需要从这些数据中提取出有用信息,一种方式就是写个代码来解析,但是这不免杀鸡用牛刀;另一种就是我们可以直接使用 jq 来进行内容的提取与过滤。
fx 是一款强大的终端 JSON 预览器,可以在终端中预览高亮折叠预览 JSON。
如果 JSON 内容比较多的话,我们不用再使用 less 或者 more 这种分页工具来查看了,不仅低效,而且费眼。fx 可以在终端中预览 JSON,并提供高亮和折叠凳功能。
爱护双眼,从我做起。
tig:git 的终端命令行工具
🔗 链接:https://github.com/jonas/tig
👍 推荐指数:⭐⭐⭐
git 的终端命令行工具,提供了终端的 git 操作界面,相对于原始的 git 来说,tig 提供了更加优化的 git 操作界面,对于 git 的新手小白来说很适用。比如浏览提交历史,分支合并情况等。
tip:tig 命令倒过来写就是 git :-)
文件浏览
ranger:文件浏览
🔗 链接:https://github.com/ranger/ranger
👍 推荐指数:⭐⭐⭐
ranger 提供了和 finder 或者是 windows 资源管理器一样的文件操作体验,可以在终端中快速的浏览文件和文件夹,不用再频繁的 ls 和 cd 了。
ag:文件内容搜索
🔗 链接:https://github.com/ggreer/the_silver_searcher
👍 推荐指数:⭐⭐⭐⭐
比 grep、ack 更快的递归搜索文件内容。快速的递归搜索一个目录下的所有文件内容对于我们定位问题或者是获得一个目录的全貌来说极为有用,一般我们都使用 grep 命令来对一个目录下的所有进行递归搜索,但是如果目录下文件太多的话,grep 效率未免太慢了。通过 ag,我们可以快速高效的对目录进行递归搜索,更方便更高效。
系统运维
ncdu:高效磁盘分析工具
🔗 链接:https://dev.yorhel.nl/ncdu
👍 推荐指数:⭐⭐⭐
可视化和高效率的分析磁盘实用情况,在获取各个目录占用情况时很有用
glances:系统大盘工具
🔗 链接:https://nicolargo.github.io/glances/
👍 推荐指数:⭐⭐⭐
有时候我们需要预览系统的各项指标,比如 cpu 占用,load 情况,我们一般都是活用 top 或者是 htop 来,glances 就是用来替代 top 和 htop 的,其提供了更为强大的操作和更加有用的数据。
mycli:MySQL 客户端
🔗 链接:https://github.com/dbcli/mycli
👍 推荐指数:⭐⭐⭐⭐
mysql 的命令行工具,加入了自动补全和语法高亮。
提升幸福指数
shell 相对于 GUI 的操作来说,确实有诸多的不便,一不小心,就敲错命令了,不得不又从头再来,命令就算不敲错,那也记不住那么多的命令,那么下面就给大家推荐几个提升程序员幸福指数的终端工具,解放大脑,释放双手。
the fuck:释放双手,回归生活
🔗 链接:https://github.com/nvbn/thefuck
👍 推荐指数:⭐⭐⭐
在终端下是不是经常输错命令,搞得自己心烦意乱,The Fuck 是一款了不起的工具,帮你彻底解决这个问题,当你输错命令后,只要输入 fuck 命令,它会帮你自动纠正错。
tldr:释放大脑,回归双手
🔗 链接:https://github.com/tldr-pages/tldr
👍 推荐指数:⭐⭐⭐⭐
为了我们不必再去阅读晦涩的 manpage,tldr(Too long, Don't read)提供了更加友好的用户帮助手册。
其他 CLI 工具:
包管理软件,提供了快捷的安装软件的方式:
○ Linux:apt-get & yum & apk 等
○ Windows:Chocolatey
○ MacOS: Homebrew
cloc:代码行数统计工具
ab:apache 出品的一款功能强大的测试工具
Desktop
相对于终端工具来说,桌面工具种类就比较多了,这里我们就推荐几个比较经常用到提升效率的桌面工具,其中涵盖了开发,设计等等。
开发工具
Intellij IDEA:集成开发环境
🔗 链接:http://www.jetbrains.com/idea/
👍 推荐指数:⭐⭐⭐⭐⭐
先用 Intellij IDEA 来镇楼,最好用的跨平台的 IDE, YYDS。使用 Java 的小伙伴们应该都不陌生吧。
Insomnia:Http 客户端
👍 推荐指数:⭐⭐⭐⭐
Insomnia 是一个跨平台的 REST API 客户端,基于 Electron 而构建。
相对于 Postman 来说,二者功能差不多,不过我更喜欢 Insomnia,因为颜值更高,并且 KeyMap 支持 vim。
Navicat Premium:数据库工具
👍 推荐指数:⭐⭐⭐⭐
支持 MySql、PostgreSQL、Oracle、Sqlite 和 SQL Server 的客户端,操作友好,功能强大,提供了很多强大的操作,比如倒入到处,表批量操作,备份等等。
Charles:Http 抓包工具
🔗 链接:http://www.charlesproxy.com/
👍 推荐指数:⭐⭐⭐
Charles 是一款用于 HTTP 信息抓包工具,可以快速有效的获得 HTTP 信息,非常利于开发者的网页开发和调试修改等!Charles 有着可视化的操作界面,非常利于编辑者的使用和调试!作为一款 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
Alibaba Cloud AI Coding Assistant (阿里云智能编码插件 Cosy)
🔗 链接:https://developer.aliyun.com/tool/cosy?channel=yx_wx_xz
👍 推荐指数:⭐⭐⭐⭐⭐
Java 开发过程中最好用的插件之一。代码智能补全和示例代码搜索功能带来了沉浸式开发体验,亲测大幅提升编码效率。
比较牛的是代码补全功能支持整行的补全结果,开发团队还做了纯本地化处理可以断网使用,不会泄露代码,安全感极高。
代码搜索功能可以通过 API 或者中英文描述搜索网上开源的示例代码,在代码行内即可一键搜索需要用到的 API 示例也非常实用。
设计工具
Draw.io:高颜值画图软件
🔗 链接:https://github.com/jgraph/drawio
👍 推荐指数:⭐⭐⭐⭐⭐
优秀的画图工具,各种架构图,流程图不在话下;并且其中的 sketch 模式,作者尤为偏爱。
Typora:高颜值文档写作工具
🔗 链接:https://github.com/typora
👍 推荐指数:⭐⭐⭐⭐⭐
强大的 Markdown 工具,支持 Latex,流程图,时序图等拓展 Markdown 语法
提升幸福指数
桌面工具使用起来最大的问题就是窗口太多了,不方便管理,这里我们和 Terminal 一样,同样有桌面管理,启动管理等工具,同样还有其他能够提升效率的工具推荐。
Context:开启的窗口切换工具
🔗 链接:https://contexts.co/
👍 推荐指数:⭐⭐⭐⭐
快捷的在各种窗口间切换工具,在打开比较多的窗口的时候,可以快速的切换。
Alfred:快速启动工具
🔗 链接:https://www.alfredapp.com/
👍 推荐指数:⭐⭐⭐⭐⭐
Alfred 是一个用键盘通过热键、关键字、自定义插件来加快操作 x 效率的工具,它不但是搜索工具,还是快速启动工具,甚至能够操作许多系统功能,扩充性极强
Paste:粘贴板工具
🔗 链接:https://pasteapp.io/
👍 推荐指数:⭐⭐⭐⭐⭐
粘贴板工具,能够保留一定时间内的粘贴板记录,并提供搜索等功能,一次可以复制多项内容,然后再一次粘贴多项内容,再也不用切来切去了。
OmniFocus:GTD 工具
🔗 链接:https://www.omnigroup.com/omnifocus/
👍 推荐指数:⭐⭐⭐
GTD 实践类软件,有效提升效率
欢迎留言分享你日常开发中比较喜欢的工具。
关于我们
了解更多关于云效 DevOps 的最新动态,可微信搜索并关注【云效】公众号;
福利:公众号后台回复【指南】,可获得《阿里巴巴 DevOps 实践指南》&《10 倍研发效能提升案例集》;
看完觉得对您有所帮助别忘记点赞、收藏和关注呦;
版权声明: 本文为 InfoQ 作者【阿里云云效】的原创文章。
原文链接:【http://xie.infoq.cn/article/f156c200c56a508b71609305f】。文章转载请联系作者。
评论