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

下面是本周記錄:

教程資源類

  1. freeCodeCamp/freeCodeCamp 免費程式碼訓練營
  2. EbookFoundation/free-programming-book 免費編程圖書
  3. sindresorhus/awesome awesome 列表的列表。這個項目起源於某個人做了一個 awesome-php 的 php 優質資源 列表,然後大家就做了 awesome-python,awesome-vue 等各種列表,這個項目又把 各種 awesome 列表收集了起來。
  4. CyC2018/CS-Notes 國人編寫的電腦基礎教程,中文
  5. jwasham/coding-interview-university 面試考點總結
  6. h5bp/Front-end-Developer-Interview-Questions 前端工程師面試問題
  7. vinta/awesome-python Python 的一些優質資源。前面提到的 awesome 系列列表,不再贅述
  8. airbnb/javascript Airbnb 的 js 編碼規範,值得參考。
  9. github/gitignore GitHub 提供的各種項目的 gitignore 文件模板,省了自己寫了
  10. getify/You-Dont-Know-JS 前端(JS)的一些坑的總結
  11. vuejs/awesome-vue Vue 的一些優質資源。awesome 系列,不再贅述。

前端 UI 框架 / 庫

  1. twbs/bootstrap Twitter 推出的前端 UI 框架,有網格系統和各種組件,曾經常年在 GitHub 上排名第一,可以說是後端工程師畫介面的利器。競品:Semantic UI, pure-css
  2. FontAwesome/Font-Awesome 字體和圖標庫,可以使用 SVG 和字體等等多種格式。
  3. ant-design/ant-design 螞蟻金服出的 react/vue 組件庫,去年的 「聖誕彩蛋」 就是這個庫搞得。主要提供 React 的組件庫,用於企業中後端的後台的建設。 關於 React/Vue 和前端的組 件化是一個很有意思的話題,可以查閱相關資料。它和 Bootstrap 等的區別在於,Bootstrap 更偏向於 UI 方面,是 CSS 框架,而 antd 則是完整的包括 UI 和功能在內的 React 組件。可以理解為 Bootstrap 只做了 「皮」, 而 antd 是 「皮」 + 「骨」。
  4. Semantic-Org/Sematic-UI 和 Bootstrap 類似的一個組件庫。Semantic UI 更強調使用語義化的 class 來定義樣式。
  5. google / material-design-icons Google 推出的 Material 風格圖標庫。
  6. daneden/animate.css CSS 動畫效果庫。

大前端框架和庫

  1. vuejs/vue Vue 是國人推出的一個前端框架,可以通過寫不同的 Vue 組件來組成一個完整的應用, 支援服務端渲染(SSR)。和 React 一樣,Vue 也使用了 Virtual-DOM 技術來提高性能。
  2. facebook/react facebook 推出的一個前端框架,特點是每個組件的 HTML/JS/CSS 組合在一起,使用 Virtual-DOM 渲染。在 React 出現之前,前端框架普遍採用了後端廣泛使用的 MVC 模式,強調 HTML/JS/CSS 三者要分離,而 React 則反其道而行之,強調從組件構建, 可以說 React 的出現是前端界的一場革命。
  3. facebook/react-native 使用 React 的語法來構建 native app,注意這裡並不是使用一個 iOS 或者 Android 的 WebView 中嵌套了一個 webapp,而是直接使用 JS 來操作原生組件。
  4. angular/angular.js Google 推出的前端框架,沒用過
  5. reactjs/redux react.js 的一個組件,用來管理數據。
  6. meteor/meteor 前幾年火過一陣,號稱要統一前後端,然而我從來沒搞明白到底是幹啥的,如今熱度已經大減了。HN 上甚至直接有人問 Is meteor.js dead?
  7. webpack/webpack 用於打包前端資源。
  8. chartjs/Chart.js 前端數據可視化組件。
  9. electron 可以使用前端的工具鏈來編寫桌面應用,同時能夠跨平台。
  10. jQuery 老牌的跨瀏覽器兼容庫。隨著瀏覽器的發展,現在使用 jQuery 的越來越少了。
  11. create-react-app 用來構造 react app 的輔助工具。
  12. d3.js 前端數據可視化組件。

後端工具

  1. elasticsearch 使用 Java 編寫的一個搜索工具,要實現全文搜索的話,選擇 ES 就對了。
  2. moby

Docker 的內核. Docker 可以讓你打包應用的所有環境,像虛擬機一樣隔離,但是又不像虛擬機 一樣過多消耗資源。

  1. ReactiveX/RxJava TODO 一種編程模式,現在還不是很了解。

機器學習

  1. TensorFlow Google 推出的深度學習庫,目前佔主流地位。

語言

  1. Microsoft/TypeScript 微軟推出的一個 JavaScript 的超集。我們知道 JavaScript 是一個動態弱類型的語言, 這種特性在小項目上很方便,然而隨著前端項目越來越大,強類型對於程式正確性的保證 就顯得越來越重要了。TypeScript 重點就在於增強了類型,甚至名字都叫 TypeScript。強類型的語言是近年來語言的發展趨勢,新語言諸如 Rust、Go、Swift 都是強類型的 語言。而一些老語言,比如 Python 也加入了 Type Hint 的功能來增強類型支援。
  2. Apple/swift Apple 推出的新語言,用來代替 Obj-C。
  3. golang Google 推出的程式語言。特點是通過 Goroutine 支援高並發。
  4. nodejs 可以在伺服器上運行的 js。

通用工具類

  1. hakimel / reveal.js 使用 js 來做 PPT 的一個框架或者說工具
  2. GoogleChrome/puppeteer Google 推出的操作 Chrome 瀏覽器的 node.js API。可以用在自動化測試和爬蟲等領域。官方 API 的推出基本上意味著第三方工具已經失去意義了。比如說 Phantom.js 直接宣 布停止維護了。
  3. atom GitHub 推出的一個程式碼編輯器。
  4. oh-my-zsh zsh 的增強組件集,可以讓你的 shell 異常強大,建議剛學命令行的可以體驗一下.
  5. vscode 微軟推出的程式碼編輯工具,目前佔據了市場優勢地位。

Web 框架

  1. rails Ruby 的一個 MVC 模式的 web 框架,當年可謂大紅大紫,現在似乎熱度有所衰減了, 可能是因為大家都不寫 Web 應用了。
  2. expressjs Node.js 的一個 Web 框架。
  3. http://socket.io 實現 WebSocket 的一個庫,使用 node.js 編寫。WebSocket 是在瀏覽器和伺服器之間 實現全雙工通訊的一個協議。
  4. laravel 一個比較現代的 PHP MVC web 框架,不過 PHP 這幾年的熱度衰減也很厲害,好多搞 PHP 的都直接轉 Go 了。

內核

  1. torvalds/linux 這個不用說了吧。評論里提到 Linux 的貢獻者在 GitHub 上顯示為正無窮,厲害了。