GitHub 熱點速覽 Vol.21:Go 新手起手式,學就完事兒了

削微寒發表於2020-05-25

作者:HelloGitHub-小魚乾

摘要:說到學習之道,方法很重要,好的學習方法能讓你比他人更快地入門到精通,比如本週被 3k 多人 pick 的 learngo 專案,它收錄了多個例子和練習,新手 Go 開發可快速習得 Go 程式設計之法。本週 TheAlgorithms 開源的 C-Plus-Plus、Python、Java 等也明示另外一條學習之路,雖然不如標準快效率高,但是演算法絕對是學習一門語言的不二之選。當然,前人言傳身教的最佳實踐也是不一個不可放過的耗資源,比如 Jetpack MVVM 最佳實踐。本期的主題專案為你選擇了 macOS 神器,工欲善其事必先利器,好用的開發環境也提升你的學習效率。

以下內容摘錄自微博@HelloGitHub 的 GitHub Trending,選項標準:新發布 | 實用 | 有趣,根據專案 release 時間分類,釋出時間不超過 7 day 的專案會標註 New,無該標誌則說明專案 release 超過一週。由於本文篇幅有限,還有部分專案未能在本文展示,望周知 ?

  • 本文目錄
      1. 本週特推
      • 1.1 Go 新手起手式:learngo
      1. GitHub Trending 周榜
      • 2.1 git 終端:gitui
      • 2.2 C++ 學演算法:C-Plus-Plus
      • 2.3 Windows 工具集:PowerToys
      • 2.4 Jetpack MVVM 最佳實踐:Jetpack-MVVM-Best-Practice
      • 2.5 React 狀態管理:Recoil
      • 2.6 Apple & Google 合力:exposure-notifications-server
      • 2.7 統計學習方法:Statistical-Learning-Method_Code
      • 2.8 輕量級 Web 伺服器:TinyWebServer
      1. 本週 GitHub Trending #macOS 神器# 主題的主力軍
      • 3.1 Touch Bar 廢物再利用:Pock
      • 3.2 資源訂閱:NetNewsWire
      • 3.3 視窗管理器:Rectangle
      1. 推薦閱讀

1. 本週特推

1.1 Go 新手起手式:learngo

本週 star 增長數:3400+

騷年,學 Go 嗎?#GitHub Trending# Go 新手起手式:learngo 收錄了 1000+ Go 相關的例子、練習和測驗,可幫你快速習得 Go 程式設計之法。

GitHub 地址→https://github.com/inancgumus/learngo

2.1 git 終端:gitui

本週 star 增長數:400+

gitui 是一個由 rust 編寫的 git 終端,gitui 的特性

  • 快速直觀的僅鍵控制
  • 基於上下文的幫助,沒有必要記住任何快捷鍵
  • 檢查/提交更改(包括鉤子:commit-msg / post-commit)
  • (取消)階段檔案/大塊,還原/重置檔案/大塊
  • 瀏覽提交日誌
  • 可擴充套件的 UI 佈局
  • 非同步輸入輪詢和非同步 git API 用於流體控制

GitHub 地址→https://github.com/extrawurst/gitui

2.2 C++ 學演算法:C-Plus-Plus

本週 star 增長數:1100+

C-Plus-Plus 是一個用 C++ 實現的演算法實踐,如果你想了解演算法的話,不妨看下這個專案。

GitHub 地址→https://github.com/TheAlgorithms/C-Plus-Plus

2.3 Windows 工具集:PowerToys

本週 star 增長數:3000+

PowerToys 是微軟開發者開發的免費實用工具集,可以用於高階使用者調整和簡化 Windows 操作,以提高效率。2019 年 5 月,微軟宣佈以官方名義重啟該專案。微軟表示,此次重啟對 PowerToys 的研發,將會提供一些提高效率的實用程式,並且可以通過 Windows 10 shell 使用,同時讓使用者可以自定義各個工作流。

GitHub 地址→https://github.com/microsoft/PowerToys

2.4 Jetpack MVVM 最佳實踐:Jetpack-MVVM-Best-Practice

本週 star 增長數:450+

專案作者擁有 3 年的移動端架構踐行和設計經驗,領導團隊重構的中大型專案多達十數個,對 Jetpack MVVM 架構在 確立規範化、標準化 開發模式以減少不可預期的錯誤所作的努力,有著深入的理解。在這個專案中,作者將展示 Jetpack MVVM 是如何蘊繁於簡地將原本十分容易出錯、一出錯就會耽擱半天時間的開發工作,通過寥寥的幾行程式碼輕而易舉地完成。除了在蘊繁於簡的程式碼中掌握 MVVM 最佳實踐,你還可以從這個開源專案中獲得的內容 包括:

  • 整潔的程式碼風格和標準的資源命名規範。
  • 對檢視控制器知識點的深入理解和正確使用。
  • AndroidX 和 Material Design 2 的全面使用。
  • ConstraintLayout 約束佈局的最佳實踐。
  • 優秀的使用者體驗 互動設計。
  • 絕不使用 Dagger,絕不使用奇技淫巧、編寫艱深晦澀的程式碼。
  • The one more thing is:

GitHub 地址→https://github.com/KunMinX/Jetpack-MVVM-Best-Practice

2.5 React 狀態管理:Recoil

本週 star 增長數:3700+

Recoil 為 React 的外部狀態管理提供了一種分散式 + 函式式的新的解決方案。特性

  • 最小和反應(Reactish):Recoil 像 React 一樣工作和思考。將一些新增到您的應用程式並獲得快速靈活的共享狀態。
  • 資料流圖:派生資料非同步查詢已通過純函式和高效訂閱方式實現。
  • 跨應用觀察:過觀察應用程式中所有狀態的變化來實現永續性,路由,時間旅行除錯或撤消,而不會影響程式碼拆分。

GitHub 地址→https://github.com/facebookexperimental/Recoil

2.6 Apple & Google 合力:exposure-notifications-server

本週 star 增長數:1100+

New:exposure-notifications-server 是 Google 開源的曝光通知服務,利用藍芽技術幫助政府和衛生機構減少病毒的傳播,使用者隱私和安全是設計的核心,並在 iOS 和 Android 應用程式提供了參考程式碼。參考伺服器原始碼可以在 GitHub 上獲得,可以部署在公共衛生機構選

GitHub 地址→https://github.com/google/exposure-notifications-server

2.7 統計學習方法:Statistical-Learning-Method_Code

本週 star 增長數:1700+

Statistical-Learning-Method_Code 是手寫實現李航《統計學習方法》書中全部演算法專案。專案力求每行程式碼都有註釋,重要部分註明公式來源。具體會追求下方這樣的程式碼,學習者可以照著公式看程式,讓程式碼有據可查。

GitHub 地址→https://github.com/Dod-o/Statistical-Learning-Method_Code

2.8 輕量級 Web 伺服器:TinyWebServer

本週 star 增長數:150+

TinyWebServer 是 Linux 下 C++ 輕量級 Web 伺服器,助力初學者快速實踐網路程式設計,搭建屬於自己的伺服器。特性:

  • 使用 執行緒池 + 非阻塞 socket + epoll(ET 和 LT 均實現) + 事件處理(Reactor 和 Proactor 均實現)的併發模型
  • 使用狀態機解析 HTTP 請求報文,支援解析 GET 和 POST 請求
  • 訪問伺服器資料庫實現web端使用者註冊、登入功能,可以請求伺服器圖片和視訊檔案
  • 實現同步/非同步日誌系統,記錄伺服器執行狀態
  • 經 Webbench 壓力測試可以實現上萬的併發連線資料交換

GitHub 地址→https://github.com/qinguoyi/TinyWebServer

在本期的主題專案中,小魚乾選擇了 3 個用 swift 開發的 macOS 工具,壯哉,macOS。

3.1 Touch Bar 廢物再利用:Pock

本週 star 增長數:100+

Pock 是一個可把 Touch Bar 當作 Dock 直接用來切換和啟動 App 的小工具。Pock 具有以下特性:

  • 支援顯示通知角標
  • 提供了 ESC 按鈕,所以不必隱藏 Pock 來使用系統的 ESC
  • 可設定是否在進入系統時啟動 Pock

GitHub 地址→https://github.com/pigigaldi/Pock

3.2 資源訂閱:NetNewsWire

本週 star 增長數:50+

NetNewsWire 是一款免費的 RSS 閱讀器,除了支援 RSS,它也支援 Atom,JSON Feed 和 RSS-in-JSON 格式。

GitHub 地址→https://github.com/Ranchero-Software/NetNewsWire

3.3 視窗管理器:Rectangle

本週 star 增長數:150+

Rectangle 是一個開源的視窗管理器,基於Spectacle應用,用Swift語言編寫。Rectangle 可讓使用者使用鍵盤快捷鍵來移動和調整視窗大小。

GitHub 地址→https://github.com/rxhanson/Rectangle

推薦閱讀

以上為 2020 年第 21 個工作周的 GitHub Trending ?如果你 Pick 其他好玩、實用的 GitHub 專案,記得來 HelloGitHub issue 區和我們分享下喲 ?

HelloGitHub 交流群現已全面開放,新增微訊號:HelloGitHub 為好友入群,可同前端、Java、Go 等各界大佬談笑風生、切磋技術~

相關文章