摸鱼精选第 26 期
1. React Native 工程 Monorepo 改造实践
Monorepo 就是把子仓库都放到一个仓库来管理。本文作者是网易云音乐团队,采用 yarn workspace 方案来管理 Monorepo。
对于多个功能类似的工程采用 Monorepo 的管理方式确实会方便代码复用和调试,提高我们的开发效率。
2. Tao of Node - Design, Architecture & Best Practices
Node 之道:关于设计、架构与最佳实践 — “全图鸟瞰” 式的总结是非常受欢迎的。我们都在为架构设计探索新的设计思路、处理之道。作者在文中总结了在构建高质量 Node 应用程序时,所获得的所有来之不易的最佳实践。
作者在 2021 年还写了 React 之道:Tao of React - Software Design, Architecture & Best Practices 。
3. 十个有用的软件开发原则
集中精力学习概念,而不是技术
不要太关心技术的复杂细节,因为你可以随时查阅它们。你要学习底层的基本概念。
技术会变化,概念却是永恒的。你学到的概 念将被用在更新的技术中,你就可以更快地学会新技术。 例如,不要太关注 React、Kubernetes、Haskell、Rust 的表面细节。 重点学习:
- 纯函数式编程
- 关系型模型
- 规范的方法
- 逻辑编程
- 代数数据类型
- 类型类(通用的和特定的)
- 借位检查器(仿射/线性类型)
- 依赖类型
- Curry-Howard 同构
- 宏
- 同像性(Homoiconicity)
- VirtualDOM
- 线性回归
- ......
4. CFS 组调度
本文介绍了 CFS 组调度功能引入的原因,配置方法,和一些实现细节。此功能可以在高负载下"软限制"(相比与 CFS 带宽控制)各分组任务对 CPU 资源的使用占比,以达到各组之间公平使用 CPU 资源的目的。在老版原生 Android 代码中对后台分组限制的较狠(甚是将 background/cpu.shares 设置到 52),将 CPU 资源重点向前台分组进行倾斜,但这个配置可能会在某些场景下出现前台任务被后台任务卡住的情况,对于普适性配置,最新的一些 Android 版本中将各个分组的 cpu.shares 都设置为 1024 以追求 CPU 资源在各组之间的公平。