GitHub 热点速览 Vol.21:Go 新手起手式,学就完事儿了

作者:HelloGitHub- 小鱼干

摘要:说到学习之道,方法很重要,好的学习方法能让你比他人更快地入门到精通,比如本周被 3k 多人 pick 的 learngo 项目,它收录了多个例子和练习,新手 Go 开发可快速习得 Go 编程之法。本周 TheAlgorithms 开源的 C-Plus-Plus、Python、Java 等也明示另外一条学习之路,虽然不如标准快效率高,但是算法绝对是学习一门语言的不二之选。当然,前人言传身教的最佳实践也是不一个不可放过的耗资源,比如 Jetpack MVVM 最佳实践。本期的主题项目为你选择了 macOS 神器,工欲善其事必先利器,好用的开发环境也提升你的学习效率。

以下内容摘录自微博@HelloGitHub 的 GitHub Trending,选项标准: 新发布 | 实用 | 有趣 ,根据项目 release 时间分类,发布时间不超过 7 day 的项目会标注 New ,无该标志则说明项目 release 超过一周。由于本文篇幅有限,还有部分项目未能在本文展示,望周知 :full_moon_with_face:

  • 本文目录
      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. GitHub Trending 周榜

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. 本周 GitHub Trending #macOS 神器#主题的主力军

在本期的主题项目中,小鱼干选择了 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