Electron 源码目录结构分析

Electron 的源代码主要依据 Chromium 的拆分约定被拆成了许多部分。

  • browser——主窗口、UI、主进程
  • renderer——渲染进程
  • common——同时被主进程和渲染进程用到的代码
  • app ——系统入口代码

Signals 是什么

响应式更新/细粒度更新。

  • 状态(observable)
  • 副作用(computed)
  • 衍生状态(pureComputed)
  • 反应式所有权

https://zhuanlan.zhihu.com/p/608897758

https://github.com/angular/angular/discussions/49090

import maps

import map直译过来是 导入映射,它与模块的使用有关,一般我们在项目中导入模块,会调用require方法,或者使用import语句或方法,引入的模块通常使用 npm 之类的包管理器进行管理。但是import map提供了一种支持,让我们可以直接在页面上管理模块,不需要通过打包构建。

优势:

  • 支持动态加载模块
  • 通过合并模块减少网络请求
  • 模块关系管理
1
2
3
4
5
6
7
8
<!-- 定义模块关系 -->
<script type="importmap">
{
'module1': 'module1.js',
'module2': { deps: ['module1'], url: 'module2.js' },
'module3': { deps: ['module1'], url: 'module3.js' },
};
</script>
1
2
3
4
//加载模块
Promise.all([import(moduleMap["module1"].url), import(moduleMap["module2"].url), import(moduleMap["module3"].url)]).then(([module1, module2, module3]) => {
// ...
});

DefineProperty enumerable

为什么 enumerable 默认为 false

开发团队如何管理琐碎、突发性任务?

https://www.infoq.cn/article/1xgi5mqffx33cavflaar

  • RD: Research and Development engineer

鸭式辨型法

“像鸭子一样走路并且嘎嘎叫的就叫鸭子。” – James Whitecomb Riley

实现接口实际上是检测对象是否拥有接口定义的所有方法。

接口只是用来定义某些方法名称,它并不需要实现这些方法,比如 Duck 接口中不需要实现 swim 方法。接口要做的是记住方法名称。

HTMX

感慨时尚是一个圈,框架发展的弊端又开始让我们回归旧的潮流,但今时不同往日,即使用法一致背后的实现可能也是千差万别。

https://www.infoq.cn/article/veskosrskc9xgiyygyku

可视化了解 React

很有意思的网站~

https://react.gg/visualized#jquery