天天看點

用好這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用戶端

🔗 連結:https://insomnia.rest/

👍 推薦指數:⭐⭐⭐⭐

Insomnia 是一個跨平台的 REST API 用戶端,基于 Electron 而建構。

相對于Postman來說,二者功能差不多,不過我更喜歡Insomnia,因為顔值更高,并且KeyMap支援vim。

Navicat Premium:資料庫工具

🔗 連結:http://navicat.com/en/

👍 推薦指數:⭐⭐⭐⭐

支援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倍研發效能提升案例集》;

看完覺得對您有所幫助别忘記點贊、收藏和關注呦;

繼續閱讀