大家好,我是秦世成,我在云效負責制品倉庫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倍研發效能提升案例集》;
看完覺得對您有所幫助別忘記點贊、收藏和關注呦;

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/435410.html
標籤:其他
上一篇:用好這28個工具,開發效率爆漲
下一篇:圍繞分割影像的一部分切割補丁
