GitHub 上的頂級項目都是做什麼的?
- 2019 年 10 月 10 日
- 筆記

作者 | Angry Bugs
來源 | http://bit.ly/34Q9bJW
前一陣看到同事在用一個名叫 AirFlow 的工具,而我竟然素未耳聞,一番搜索之後發現這個 工具是 Apache 的頂級項目,而且在 GitHub 上有 1w+ 的 Star。
震驚之餘,感覺有必要把 GitHub 上常用工具捋一遍,以避免以後發生重複造輪子的情況。計劃是把 GitHub 上 5k+ Star 的項目都知道是做什麼用的,每周看 50 個。
數據來源是這裡:https://gitstar-ranking.com/repositories
下面是本周記錄:
教程資源類
- freeCodeCamp/freeCodeCamp 免費程式碼訓練營
- EbookFoundation/free-programming-book 免費編程圖書
- sindresorhus/awesome awesome 列表的列表。這個項目起源於某個人做了一個 awesome-php 的 php 優質資源 列表,然後大家就做了 awesome-python,awesome-vue 等各種列表,這個項目又把 各種 awesome 列表收集了起來。
- CyC2018/CS-Notes 國人編寫的電腦基礎教程,中文
- jwasham/coding-interview-university 面試考點總結
- h5bp/Front-end-Developer-Interview-Questions 前端工程師面試問題
- vinta/awesome-python Python 的一些優質資源。前面提到的 awesome 系列列表,不再贅述
- airbnb/javascript Airbnb 的 js 編碼規範,值得參考。
- github/gitignore GitHub 提供的各種項目的 gitignore 文件模板,省了自己寫了
- getify/You-Dont-Know-JS 前端(JS)的一些坑的總結
- vuejs/awesome-vue Vue 的一些優質資源。awesome 系列,不再贅述。
前端 UI 框架 / 庫
- twbs/bootstrap Twitter 推出的前端 UI 框架,有網格系統和各種組件,曾經常年在 GitHub 上排名第一,可以說是後端工程師畫介面的利器。競品:Semantic UI, pure-css
- FontAwesome/Font-Awesome 字體和圖標庫,可以使用 SVG 和字體等等多種格式。
- ant-design/ant-design 螞蟻金服出的 react/vue 組件庫,去年的 「聖誕彩蛋」 就是這個庫搞得。主要提供 React 的組件庫,用於企業中後端的後台的建設。 關於 React/Vue 和前端的組 件化是一個很有意思的話題,可以查閱相關資料。它和 Bootstrap 等的區別在於,Bootstrap 更偏向於 UI 方面,是 CSS 框架,而 antd 則是完整的包括 UI 和功能在內的 React 組件。可以理解為 Bootstrap 只做了 「皮」, 而 antd 是 「皮」 + 「骨」。
- Semantic-Org/Sematic-UI 和 Bootstrap 類似的一個組件庫。Semantic UI 更強調使用語義化的 class 來定義樣式。
- google / material-design-icons Google 推出的 Material 風格圖標庫。
- daneden/animate.css CSS 動畫效果庫。
大前端框架和庫
- vuejs/vue Vue 是國人推出的一個前端框架,可以通過寫不同的 Vue 組件來組成一個完整的應用, 支援服務端渲染(SSR)。和 React 一樣,Vue 也使用了 Virtual-DOM 技術來提高性能。
- facebook/react facebook 推出的一個前端框架,特點是每個組件的 HTML/JS/CSS 組合在一起,使用 Virtual-DOM 渲染。在 React 出現之前,前端框架普遍採用了後端廣泛使用的 MVC 模式,強調 HTML/JS/CSS 三者要分離,而 React 則反其道而行之,強調從組件構建, 可以說 React 的出現是前端界的一場革命。
- facebook/react-native 使用 React 的語法來構建 native app,注意這裡並不是使用一個 iOS 或者 Android 的 WebView 中嵌套了一個 webapp,而是直接使用 JS 來操作原生組件。
- angular/angular.js Google 推出的前端框架,沒用過
- reactjs/redux react.js 的一個組件,用來管理數據。
- meteor/meteor 前幾年火過一陣,號稱要統一前後端,然而我從來沒搞明白到底是幹啥的,如今熱度已經大減了。HN 上甚至直接有人問 Is meteor.js dead?
- webpack/webpack 用於打包前端資源。
- chartjs/Chart.js 前端數據可視化組件。
- electron 可以使用前端的工具鏈來編寫桌面應用,同時能夠跨平台。
- jQuery 老牌的跨瀏覽器兼容庫。隨著瀏覽器的發展,現在使用 jQuery 的越來越少了。
- create-react-app 用來構造 react app 的輔助工具。
- d3.js 前端數據可視化組件。
後端工具
- elasticsearch 使用 Java 編寫的一個搜索工具,要實現全文搜索的話,選擇 ES 就對了。
- moby
Docker 的內核. Docker 可以讓你打包應用的所有環境,像虛擬機一樣隔離,但是又不像虛擬機 一樣過多消耗資源。
庫
- ReactiveX/RxJava TODO 一種編程模式,現在還不是很了解。
機器學習
- TensorFlow Google 推出的深度學習庫,目前佔主流地位。
語言
- Microsoft/TypeScript 微軟推出的一個 JavaScript 的超集。我們知道 JavaScript 是一個動態弱類型的語言, 這種特性在小項目上很方便,然而隨著前端項目越來越大,強類型對於程式正確性的保證 就顯得越來越重要了。TypeScript 重點就在於增強了類型,甚至名字都叫 TypeScript。強類型的語言是近年來語言的發展趨勢,新語言諸如 Rust、Go、Swift 都是強類型的 語言。而一些老語言,比如 Python 也加入了 Type Hint 的功能來增強類型支援。
- Apple/swift Apple 推出的新語言,用來代替 Obj-C。
- golang Google 推出的程式語言。特點是通過 Goroutine 支援高並發。
- nodejs 可以在伺服器上運行的 js。
通用工具類
- hakimel / reveal.js 使用 js 來做 PPT 的一個框架或者說工具
- GoogleChrome/puppeteer Google 推出的操作 Chrome 瀏覽器的 node.js API。可以用在自動化測試和爬蟲等領域。官方 API 的推出基本上意味著第三方工具已經失去意義了。比如說 Phantom.js 直接宣 布停止維護了。
- atom GitHub 推出的一個程式碼編輯器。
- oh-my-zsh zsh 的增強組件集,可以讓你的 shell 異常強大,建議剛學命令行的可以體驗一下.
- vscode 微軟推出的程式碼編輯工具,目前佔據了市場優勢地位。
Web 框架
- rails Ruby 的一個 MVC 模式的 web 框架,當年可謂大紅大紫,現在似乎熱度有所衰減了, 可能是因為大家都不寫 Web 應用了。
- expressjs Node.js 的一個 Web 框架。
- http://socket.io 實現 WebSocket 的一個庫,使用 node.js 編寫。WebSocket 是在瀏覽器和伺服器之間 實現全雙工通訊的一個協議。
- laravel 一個比較現代的 PHP MVC web 框架,不過 PHP 這幾年的熱度衰減也很厲害,好多搞 PHP 的都直接轉 Go 了。
內核
- torvalds/linux 這個不用說了吧。評論里提到 Linux 的貢獻者在 GitHub 上顯示為正無窮,厲害了。