一大波開源小抄來襲

2022-07-06 09:01:06

「小抄」一詞大家應該不會陌生,它有個學名叫做「速查表」(cheatsheet)是用來快速找到你知識點和答案的表格,因為其有體積小、不易察覺等特點,頻繁出現在考場和演講中...

友情提示⚠️:考試作弊一時爽,抓到就是火葬場!

記得我大學時有一次考試,老師允許我們每個人帶一張 A4 紙大小的「小抄」進入考場,正反面可以隨便寫東西。我帶著那張密密麻麻沒有一塊空白的「小抄」,信心滿滿地踏入考場。這門課是我所有課裡考的分數最高的一門,後來補考的同學紛紛找我影印這張「小抄」。

時至今日,雖然我已不會再考試,但手邊還是會常備小抄。比如:寫程式碼的時候突然想不起了語法、程式碼片段、命令,這個時候小抄(速查表)可以發揮奇效!有了它瞬間就能找到答案,複製/貼上 就能解決問題,極大地提高了開發效率。

下面,就是專為程式設計師準備的「開源小抄」集合,內容包含了 Python、JavaScript、Linux、Git、K8s 等,由於種類眾多便於閱讀,我將它們分成了:語言、命令和綜合三大類。

閒話少說,直接上專案!

一、語言類

寫程式碼就像寫作文都有提筆忘字的時候,但絕不能讓這種情況打斷沉浸式地編碼的氛圍。下面的速查表專案涵蓋:Python、C++、Rust、JS 語言,能讓你在忘記語法時、執行不通過時,瞬間找回記憶重切換回編碼程序。

1.1 Python(python-cheatsheet)

Star 數:29.5k|中文:

Python 的語法很簡單,也正是因為簡單很多人不會花時間去刻意記憶,有了這個專案你就更不用被語法了。它對 Python 常用的資料型別、函數、庫進行了分類,可以幫助你快速找到想要的程式碼片段和語法解釋,僅需「填空」這些程式碼就可以馬上跑來了。

from threading import Thread, RLock, Semaphore, Event, Barrier
from concurrent.futures import ThreadPoolExecutor

<Thread> = Thread(target=<function>) # Use `args=<collection>` to set the arguments.
<Thread>.start()                     # Starts the thread.
<bool> = <Thread>.is_alive()         # Checks if the thread has finished executing.
<Thread>.join()                      # Waits for the thread to finish.

強烈推薦給剛接觸 Python 的小夥伴們,覺得好用記得回來點贊!

線上:https://gto76.github.io/python-cheatsheet

專案:https://github.com/gto76/python-cheatsheet

1.2 C++(cpp-cheatsheet)

Star 數:1.9k|中文:

C++ 是我當年上大學時必修課!也是很多大學生的第一門程式語言(噩夢),如果你提到 C++ 語法腦子裡是一團漿糊,那不如看看這個專案興許你就能構建起清晰的 C++ 知識體系,最不濟也能複製/貼上寫出能跑的 C++ 程式碼 。

#include <iostream>         // Include iostream (std namespace)
cin >> x >> y;              // Read words x and y (any type) from stdin
cout << "x=" << 3 << endl;  // Write line to stdout
cerr << x << y << flush;    // Write to stderr and flush
c = cin.get();              // c = getchar();
cin.get(c);                 // Read char
cin.getline(s, n, '\n');    // Read line into char s[n] to '\n' (default)
if (cin)                    // Good state (not EOF)?
                            // To read/write any type T:
istream& operator>>(istream& i, T& x) {i >> ...; x=...; return i;}
ostream& operator<<(ostream& o, const T& x) {return o << ...;}

專案:https://github.com/mortennobel/cpp-cheatsheet

1.3 Rust(cheats.rs)

Star 數:2.9k|中文:

很多人都說 Rust 易學不易寫。救星來啦!該專案不僅提供了基礎的語法速查,還有執行順序詳解和編寫時需要關注的注意事項。如果你覺得還不夠,專案還包含了範例程式碼(EX)、書籍(BK)、標準(STD)等相關資料的擴充套件。

線上:https://cheats.rs

專案:https://github.com/ralfbiedert/cheats.rs

1.4 JavaScript(modern-js-cheatsheet)

Star 數:23k|中文:

現在後端多多少少都會寫點前端,或許因為沒有系統學習過 JavaScript 語法,多數情況都是邊查邊寫。該專案的程式碼範例特別豐富,希望藉此可以拯救掙扎在 JS 語法謎團中的小夥伴們。

async function getUser() { // The returned promise will be rejected!
  throw "User not found !";
}

async function getAvatarByUsername(userId) => {
  const user = await getUser(userId);
  return user.avatar;
}

async function getUserAvatar(username) {
  var avatar = await getAvatarByUsername(username);
  return { username, avatar };
}

getUserAvatar('mbeaudru')
  .then(res => console.log(res))
  .catch(err => console.log(err)); // "User not found !"

專案:https://github.com/mbeaudru/modern-js-cheatsheet

另外,這裡還有份 React+TypeScript 的速查表,一併奉上:

這個專案不同於之前的專案,它是以問答的方式引出知識點,並給出解答和範例程式碼。

專案:https://github.com/typescript-cheatsheets/react

二、命令

在編碼中除了程式語言之外,還離不開很多其它的東西,比如:工具、系統、服務等等,需要高效地使用他們就需要牢記命令,但是命令太雜、太多了記不全。下面這些專案覆蓋了,常用的 Git、Linux、K8s 命令,快快收藏起來總一天會用得上!

2.1 Git(git-tips)

Star 數:13.9k|中文:

Git 是版本管理工具,日常開發中經常用到。在明白了 工作區、commit、暫存區、本地倉庫、遠端倉庫 概念之後就能上手了,但遇到一些特殊場景時,就需要下面這個專案來救場了!當你不知道用什麼 Git 命令完成操作或者有什麼簡便方法時,直接在此專案中 Ctrl/Cmd+f 搜尋即可,立馬就能找到解決問題的命令。

刪除已經合併到 master 的分支

git branch --merged master | grep -v '^\*\|  master' | xargs -n 1 git branch -d

專案:https://github.com/521xueweihan/git-tips

這還有一份 GitHub 官方製作的 Git 速查表。

地址:https://education.github.com/git-cheat-sheet-education.pdf

2.2 Linux(linux-command)

Star 數:19k|中文:

開發者通常都離不開 Linux 作業系統,而且 Linux 伺服器又是命令列操作,如果你不知道命令連個檔案都打不開,但是 Linux 的命令實在是太多了,真心記不住全。有了這個專案,你就能隨用隨搜了,而且還支援中文搜尋。

線上:https://wangchujiang.com/linux-command

專案:https://github.com/jaywcjlove/linux-command

除此之外,還有個大而全的專案不得不提一下就是 tldr:

一個開源的 Linux 命令查詢工具,簡化版的 man 且「藥到病除」,可稱之為《新版 Linux 命令百科全書》(英文)。

專案:https://github.com/tldr-pages/tldr

2.3 Kubernetes(cheatsheet-kubernetes-A4)

Star 數:1.5k|中文:

隨著雲原生的勢不可擋,K8s 也成為了運維和程式設計師必會的技能之一。該專案試圖在一張 A4 紙上展示其常用命令,因此而得名。

專案:https://github.com/dennyzhang/cheatsheet-kubernetes-A4

值得一提的是該作者還寫了 Docker 版本,好事成雙。

專案:https://github.com/dennyzhang/cheatsheet-docker-A4

三、綜合

見過了上面細分領域的速查表,下面介紹幾個綜合型別的專案,這部分介紹的專案使用方式各有特色:有可以列印出來的,也有命令列直接查的,還有網頁能線上使用的,說真的寫到這裡我都想給自己點個「贊」了!

3.1 資料處理(ds-cheatsheets)

Star 數:10.7k|中文:

資料處理是一個涉及面很廣的領域,知識點很多包括:SQL、R、Pandas、Jupyter、巨量資料、資料視覺化等。這個專案涵蓋了我上述的所有內容,而且從基礎到實用都有。重點!提供了高顏值、全綵的 PDF 可以列印出來,貼在牆上、螢幕下方便時常查閱。

專案:https://github.com/FavioVazquez/ds-cheatsheets

3.2 線上網站(cheatsheets)

Star 數:11.8k|中文:

這是一個開源、全面的速查表網站,涵蓋了前端、後端、運維、IDE 多個方面,而且介面友好簡潔支援線上檢視。

線上:https://devhints.io

專案:https://github.com/rstacruz/cheatsheets

3.2 命令列(cheat.sh)

Star 數:29.2k|中文:

最後這個專案厲害了,號稱「你唯一需要的速查表」。它不僅支援命令列直接查詢:

還支援網站線上查詢:

不管哪種方式,都極客範兒十足!

線上:https://cheat.sh

專案:https://github.com/chubin/cheat.sh

四、最後

以上就是本期分享的所有「開源小抄」專案,有沒有找到你的菜?

往往用得最順手的小抄,就是自己做的小抄!希望本期的這些開源專案能給你的小抄本增加一些內容,又或者在使用方式的便利上提供一些思路,從而構建出最適合自己、最趁手的「神兵利器」!

可能有人會問:現在都有 AI 程式設計助手了(Copilot)還需要啥小抄呢?

Copilot 確實更加方便,但我覺得做小抄的過程也是知識的梳理和沉澱的過程,而且持續維護一份開源小抄不僅能留下自己變強的輒印,還能幫助他人何樂而不為呢!俗話說得好:「取自開源,回饋開源」。
最後,如果您覺得本期內容還不錯:求贊、求分享、求轉發,您的支援是對我最大的鼓勵!我們下期見~