33K Star!這才是程式設計師需要的神器

程式設計師寶藏庫

:https://gitee。com/sharetech_lee/CS-Books-Store

你想要的,這裡都有!

作為程式設計師用的比較多的工具是什麼?

我覺得搜尋引擎絕對能名列前茅。

在開發過程中,總會遇到這樣或者那樣的問題超出我們自身的知識範圍。這些問題可能是程式語言方面的,可能是Linux作業系統方面的,可能是服務部署方面的等等。

當遇到這種問題時,很多同學會選擇求助於搜尋引擎,懂得懂得,搜尋引擎搜出的很多結果要麼和問題無關、要麼是個大坑。

所以,從事開發工作這麼多年,我深刻意識一個道理,能夠快速解決問題真的是一項非常突出的本領,哪怕是在藉助於網際網路的情況下。

話說回來,正是因為尋求問題的道路非常曲折繁瑣,因此,網上出現了各種各樣的速查表「CheatSheet」,估計有不少同學過去都看到過很多了。

但是,我認為這並沒有從效率上徹底解決問題。

今天我在瀏覽Github時發現一款非常不錯的開源工具,真的讓我眼前一亮。

33K Star!這才是程式設計師需要的神器

這款開源工具的名字叫做cheat。sh,目前已經33K+ Star了。

這款工具的簡潔是「你唯一需要的速查表」,簡單概括,這款工具把知名、權威社群的答案、資料進行了統一彙總,我們只需要這一款工具就可以快速得到最準確、最可靠的答案。

33K Star!這才是程式設計師需要的神器

它背後的知識來源於tldr、StackOverflow、cheat。sheets等社群或者開源專案。

為了更加清晰的理解它的用處,下面先來看一個示例:

$ curl cht。sh/lua/table+keys —— lua: retrieve list of keys in a table local keyset={} local n=0 for k,v in pairs(tab) do n=n+1 keyset[n]=k end ——[[ [ Note that you cannot guarantee any order in keyset。 If you want the [ keys in sorted order, then sort keyset with table。sort(keyset)。 [ [ [lhf] [so/q/12674345] [cc by-sa 3。0] ]]

上面執行的curl命令包含下面幾個資訊:

cht。sh:工具名稱

lua:程式語言

table+keys:要查詢的問題,多個關鍵詞用加好連結

33K Star!這才是程式設計師需要的神器

透過這樣,它就可以快速在終端下給出問題的答案。

如果你不想要文字描述,只想要「純淨」的答案,還可以透過引數來處理:

$ curl cht。sh/lua/table+keys\?Q local keyset={} local n=0 for k,v in pairs(tab) do n=n+1 keyset[n]=k end

想必到這裡,很多同學都已經知道它的用法了,概括一下這款工具的價值,主要有以下幾點:

簡潔——它應該只包含你需要的東西,沒有雜亂的資訊

快速——能夠快速得到問題的答案,「所見即所得」

全面——程式語言、作業系統等等,覆蓋面非常全

通用——隨時隨地可用,

可能很多同學還有一絲疑慮,感覺用curl每次都要輸入很長的命令,太麻煩。

33K Star!這才是程式設計師需要的神器

沒事,前面只是一個小示例,下面系統的介紹一下如何安裝並使用客戶端。

安裝

方式1

PATH_DIR=“$HOME/bin” # or another directory on your $PATHmkdir -p “$PATH_DIR”curl https://cht。sh/:cht。sh > “$PATH_DIR/cht。sh”chmod +x “$PATH_DIR/cht。sh”

方式二

curl -s https://cht。sh/:cht。sh | sudo tee /usr/local/bin/cht。sh && sudo chmod +x /usr/local/bin/cht。sh

安裝後就可以在終端下使用了。

如果想用互動式命令模式,還需要透過命令sudo apt install rlwrap安裝rlwrap。

用法

透過上述命令安裝客戶端之後,就不用再像前面curl命令那樣每次輸入很長的命令,可以用更加貼近人為描述的方式查詢問題答案。

舉幾個例子:

$ cht。sh go reverse a list$ cht。sh python random list elements$ cht。sh js parse json

這樣看,估計很多開發同學都能夠懂得它的用法了,「命令+語言+問題」。

可以看看效果:

$ cht。sh python random number# Try: from random import randrange print(randrange(10))# **Docs:**# https://docs。python。org/3/library/random。htmlrandom。randrange# # [kovshenin] [so/q/3996904] [cc by-sa 3。0]

再嘗試一個:

$ cht。sh python matplotlib plot line# You can directly plot the lines you want by feeding the `plot` command# with the corresponding data (boundaries of the segments):# # `plot([x1, x2], [y1, y2], color=‘k’, linestyle=‘-’, linewidth=2)`# # (of course you can choose the color, line width, line style, etc。)# # From your example: import numpy as np import matplotlib。pyplot as plt np。random。seed(5) x = np。arange(1, 101) y = 20 + 3 * x + np。random。normal(0, 60, 100) plt。plot(x, y, “o”) # draw vertical line from (70,100) to (70, 250) plt。plot([70, 70], [100, 250], ‘k-’, lw=2) # draw diagonal line from (70, 90) to (90, 200) plt。plot([70, 90], [90, 200], ‘k-’) plt。show()# ![new chart](https://i。imgur。com/76drc。png)# # [gcalmettes] [so/q/12864294] [cc by-sa 3。0]

可以看得出來,它不僅支援程式語言的基本語法,還支援查詢語言基礎之外的工具包的用法。

IDE+編輯器

前面介紹了它在命令列下的用法,其實,cht。sh更強大的是它不僅支援命令列,它還可以在常用的IDE、編輯器下用。

例如:

Vim

Emacs

Sublime

IDEA

VS Code

IDEA

。。。

除此之外,它還是跨平臺的,在Windows、Linux、macOS下都可以用。

另外,這款工具在編輯器、IDE下功能更加豐富,甚至可以自動生成程式碼片段,直接補全答案。

下面看一下效果!

Sublime:

33K Star!這才是程式設計師需要的神器

IDEA:

33K Star!這才是程式設計師需要的神器

VS Code:

33K Star!這才是程式設計師需要的神器

最後再補充一點,在知識方面,它覆蓋也非常全,Python、JavaScript、Go、C++、Linux、php,我們在開發中遇到的很多問題透過cht。sh都可以快速得到答案!

傳送門

建議大家有空可以多瀏覽Github,有很多好用的開源免費工具。但是,目前Github上專案多如牛毛,而且刷榜現在也非常嚴重,想要找到優質的專案變得越來越難。這裡,給大家推薦Github上一個非常不錯的專案《

DevWeekly

》,這個專案每週都會精挑細選一些優質的開源專案,涵蓋C++、JAVA、JavaScript、Python、Go等不同程式語言。此外,還有一些開源工具、優秀的技術文章:

https://github。com/Jackpopc/DevWeekly