作者: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 Go 新手起手式:learngo - 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 - 本周 GitHub Trending #macOS 神器# 主题的主力军
3.1 Touch Bar 废物再利用:Pock
3.2 资源订阅:NetNewsWire
3.3 窗口管理器:Rectangle - 推荐阅读
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
推荐阅读
- GitHub 热点速览 Vol.20:VSCode 插件全家桶新增画图小能手
- GitHub 热点速览 Vol.19:如何叩响大厂的门?
- GitHub 热点速览 Vol.18:刷 LeetCode 的正确姿势
以上为 2020 年第 21 个工作周的 GitHub Trending ????如果你 Pick 其他好玩、实用的 GitHub 项目,记得来 HelloGitHub issue 区和我们分享下哟 ????
HelloGitHub 交流群现已全面开放,添加微信号:HelloGitHub 为好友入群,可同前端、Java、Go 等各界大佬谈笑风生、切磋技术~