ARTS 打卡第 1 天

A：617. 合并二叉树

算法基础比较薄弱，跑了好多次才跑通～

R：Things you forgot (or never knew) because of React

React 由于发布早形成了一定的优势，成为了标准，但在敏捷性和适应性上和也有一些严重的缺点。2013 年以后它的每一个决定都是另一层技术债，而它的竞品则没有这些限制

关于生态系统的问题：我们被 “训练” 得认为包都是框架特定的，React 加速了这个观点，做什么事情都是找到 React 的包，而不是原生 JS 包。于是 React 的规则、状态管理、组件生命周期之类的都带进来了，和这一套不相容的就不太 work 或不太方便。但不应该这样，一切都只是 JS，那理应只要是 JS 的东西都能纳入进来。(当然对 Svelte、Vue 之类的框架来说也是这样，但只有 React 在这方面是最笨重的，其它的一些框架适应性更强，不会有类似渲染生命周期之类的问题，这些框架共同的选择就是使用了 web components)。Preact 的 Signal 就是一个例子，尽管是给它自己用的，但也可以用在任意其它框架中，甚至是原生 JS 中。 Web Components 也是一样，兼容于任何非 React 框架

React Hooks 过时了：Hooks 不再是优势，它是基线，常规方式。其它框架也有类似的东西，但更快、更容易使用和书写

你不再需要在细微层面上管理渲染：比如 useMemo 和 useCallback 的区别、useEffect 的依赖和生命周期理解。在其它框架中不需要操心这些，它们更聪明，只会更新值而不是持续地更新不需要更新的东西

可处理大规模复杂应用不再是必要的关注点：React 并不是前端应对大规模复杂应用的最佳、唯一甚至是第一个解决方案，它只是同一范式的许多可能版本之一，也是一个古老的版本，其它现代竞品框架同样能应对这个问题

服务端渲染不再特别：除了 React 大多数玩家也支持服务端渲染了

双向数据绑定不难也不糟糕：React 是单向数据流，所以使用表单很麻烦。双向数据流就没有这些问题，而且双向数据流造成的一些问题在长时间的迭代中也解决了

处理样式很简单：React 的样式没有内置优雅的方案，但在 Vue 和 Svelte 中，这个问题内置已经解决了，它们都有组件级作用于，而且在 React 中能用的方案也可以在它们中兼容

框架不再那么难学了：React 状态管理、属性、嵌套、生命周期、hooks、JSX，学习起来并不友好。现在的新框架已经简单好学得多了

作者对 Svelte 和 Vue 两个编译时框架比较推崇

T：CodeBox

一个隔离的 Python 沙箱运行环境，可以用来实现 ChatGPT Code Interpreter。

S：阅读《最高学以致用法》 的一些记忆

输出与输入的时间比例最好控制在 70% 比 30%，输出才是 “有效” 的学习，光有输入没有输出等于没学，也记不住。

Reference:

ARTS 打卡活动