记忆化
记忆化 Memorization(简写 memo),是一种提高程序执行速度的优化技术,简单来说就是把需要重复计算的结果缓存在内存中,下次要用时直接取出来就行,不用再计算一次,属于典型的空间换时间的优化方案,通常会用在有大计算量或者递归、循环应用等一些场景。
最近,Github 联手 OpenAI 发布了 AI 编程神器Github Copilot预览版。它基于 GPT-3 自回归语言模型,我们只需要编写一个好的函数名或注释,它就会自动编写好细节代码。这并非简单的智能提示或代码片段,而是真正的代码逻辑!
比如你要编写一个从 URL 中获取查询参数的方法,通常我们就面向 Google 和 StackOverflow 编程了,而现在,你只需要写个好的函数名即可:
Side effect,中文可以叫“副作用”。这个词第一次听的话有种负面的感觉,但如果你使用过 React Hooks 中的useEffect
或接触过函数式编程,对它应该不陌生。
仓就是仓库(repository,简称 repo)。通常我们使用多个仓库(简称多仓,multi-repo)来管理项目代码,也就是每个仓库负责一个模块或包的编码、构建、测试和发布,代码规模相对较小,所以也称为小型规模仓库(简称小仓)。而单一(mono)仓库(简称单仓,mono-repo)是指在一个仓库中管理多个模块或包,当代码规模达到一定程度后可称为大型规模仓库(简称大仓),至于这个程度大小并没有明确定义,通常说的大仓可理解为就是单仓。
我们以一个通常的 Node JS 项目为例,简要说明这几种仓库管理方式,如下图:
说实话,这两个术语名字取的,确实让人难以一下子理解。但理解了之后又不得不佩服这取名:妙啊。
在解决浏览器兼容性问题或使用一些较新的 Web 技术时,经常需要查看各浏览器对 HTML/CSS/JS/SVG/Web/HTTP 等某些接口的支持程度。以下是两种不错的自查方式: