周刊 03 期 - Clash 风波
Summary from
周末在浙江省图书馆学习 Swift UI,效率高。React 文档更新后,提出九个最佳实践,强调使用 useMemo 和 useCallback 应在性能问题出现时再考虑。ESLint 团队在 v9 废弃格式化规则,推出 ESLint Stylistic 插件作为替代。小米更新 MiSans 网站,展示出色体验。Clash 系项目因作者删除,相关项目也被归档或删除,另一个工具 Surge 未受影响,引发猜测。
周末去了一趟浙江省图书馆新馆,5 层楼,非常大。因为是预约制,所以也不用担心进去之后没座位的问题,在那边学了一下午 Swift UI,效率非常高。
新版 React 文档中的九个最佳实践
随着 React 文档更新后,官方团队会把一些最佳实践以思考题的方式传达给开发者。
https://blog.testdouble.com/posts/2023-10-16-react-docs-recommendations
这篇文章选出了 9 个作者认为比较好的最佳实践,这些内容中大部分和我们的开发思路一致,不过我发现了一个我认为在以前会比较有争议的结论。
在考虑是否使用 useMemo、useCallback 或 React.memo 进行缓存时,请推迟缓存,直到观察到性能问题。
在刚开始工作的时候,受到 React Hooks 热潮的影响,非常喜欢用 useMemo
和 useCallback
对值和函数进行包装,而不去考虑是否需要包装。并且在使用这两个 hook 的时候,也没有搭配 memo
去使用。
在团队内部也因是否有必要使用这两个 Hook 而争论过。 在文档中,官方团队明确指出了这几个 API 的使用场景,就是在遇到性能问题的时候才进行使用。
相关阅读
- Should you add useMemo everywhere?
- Should you add useCallback everywhere?
- Should you add memo everywhere?
ESLint Stylistic
ESLint 团队决定在 v9 废弃代码格式化相关规则,原因是因为团队认为这不应该是 ESLint 该做的事情,理应交给 Prettier 或 dprint 这类源代码格式化工具去做。
并且 ESLint 团队认为维护这些规则对他们来说也是吃力不讨好的事情,目前还有很多缩进规则的问题没有得到解决。 ESLint 相关 ISSUE
所以 ESLint 社区中出现了替代方案,ESLint Stylistic,提供了一套 ESLint Plugin,目前包含 4 个 Plugin:
- Default
- JavaScript
- TypeScript
- JSX
为什么 ESLint 在宣布废弃格式化相关规则维护之后,社区中就立刻推出替代方案了呢,这是因为目前代码格式化的工具的可定制化能力比较差,并且在效果不好的时候,开发人员也没办法进行定制或改进,因此有部分人员热衷于使用 ESLint 来进行代码的格式化。
相关阅读
MiSans
随着 HyperOS 的发布,小米也更新了一版 MiSans 的网站。页面样式和交互做的非常有特点,体验属于第一梯队。
Clash 系项目仓库删除风波
11 月 2 日,Clash For Windows 的作者删除了托管在 Github 上的该项目,原因不明。对此行为有很多猜测,但是大方向应该是作者由于某些行为被警方找到了。
11 月 3 日,Clash 系的相关项目,包括但不限于内核,其他设备的客户端,均都采取了 Archive 或者删除的操作。
比较有趣的一点是,另一个翻墙工具 Surge(其开发者认为是网络调试工具),实名上网,而且在北京落户,却没有收到波及和影响,也引发了网络上的一些猜测。