Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Electron.js in 2019 (中文/Simplified Chinese)
Search
Cheng Zhao
January 06, 2019
Technology
0
410
Electron.js in 2019 (中文/Simplified Chinese)
Cheng Zhao
January 06, 2019
Tweet
Share
More Decks by Cheng Zhao
See All by Cheng Zhao
Electron Now
zcbenz
2
720
Electron Now(日本語)
zcbenz
3
1k
a community story of Electron
zcbenz
0
200
Evolution of Electron - NodeFest 2016
zcbenz
7
15k
Electron Workshop - Shanghai 2016
zcbenz
0
250
Practice on embedding Node.js into Atom Editor
zcbenz
24
11k
node-webkit: app runtime based on Chromium and node.js
zcbenz
248
190k
Other Decks in Technology
See All in Technology
Goでマークダウンの独自記法を実装する
lag129
0
210
実践アプリケーション設計 ③ドメイン駆動設計
recruitengineers
PRO
1
160
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
1
270
[CV勉強会@関東 CVPR2025 読み会] MegaSaM: Accurate, Fast, and Robust Structure and Motion from Casual Dynamic Videos (Li+, CVPR2025)
abemii
0
190
「守る」から「進化させる」セキュリティへ ~AWS re:Inforce 2025参加報告~ / AWS re:Inforce 2025 Participation Report
yuj1osm
1
110
あなたの知らない OneDrive
murachiakira
0
230
小さなチーム 大きな仕事 - 個人開発でAIをフル活用する
himaratsu
0
120
Understanding Go GC #coefl_go_jp
bengo4com
0
1.1k
歴代のWeb Speed Hackathonの出題から考えるデグレしないパフォーマンス改善
shuta13
6
600
TypeScript入門
recruitengineers
PRO
8
1.6k
自治体職員がガバクラの AWS 閉域ネットワークを理解するのにやって良かった個人検証環境
takeda_h
2
380
RAID6 を楔形文字で組んで現代人を怖がらせましょう(実装編)
mimifuwa
0
300
Featured
See All Featured
Balancing Empowerment & Direction
lara
2
590
Code Reviewing Like a Champion
maltzj
525
40k
Automating Front-end Workflow
addyosmani
1370
200k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Building Adaptive Systems
keathley
43
2.7k
Done Done
chrislema
185
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Thoughts on Productivity
jonyablonski
69
4.8k
How to Ace a Technical Interview
jacobian
279
23k
GraphQLとの向き合い方2022年版
quramy
49
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.6k
Transcript
Electron.js in 2019 赵成 @ 第13届D2前端技术论坛
⾃自我介绍 ‣ 赵成(zcbenz) ‣ Electron 原作者(original author)& 全职开发 ‣ 在
GitHub ⼯工作 ‣ 最近的⼏几个业余项⽬目 GUI库 https://github.com/yue/yue Slack客户端 https://github.com/yue/wey
Electron 开发团伙 ‣ 2013 ~ 2014 ‣ 2015 ~ 2016
‣ 2017 ~ 现在
参与开发的主要公司和团队
Electron 在中国 ‣ ⽂文档的社区中⽂文翻译完成度达到了了 79% ‣ electronjs.org 中国访问⽐比例例达 18%,略略低于美国
2018/2019的开发⽅方向
更更加安全
更更加安全 ‣ 微软的安全专家进⾏行行代码审核 ✦ 分离内部和外部IPC通道等 ‣ 更更安全的默认选项(5.x) ✦ nodeIntegration 默认关闭
✦ contextIsolation 默认开启 ✦ sandbox 默认开启 ‣ 安全漏漏洞洞悬赏(bug bounty) ✦ 发送邮件⾄至
[email protected]
及时更更新 Chromium
为什什么更更新 Chromium 很慢 • Electron 有⼤大量量的 Chromium 补丁(⽬目前有98个) ✦ 取消安全检查
✦ 增加接⼝口 ✦ 和 Node.js 共同运⾏行行 • Electron 增加了了多种运⾏行行模式(sandbox, contextIsolation, nodeIntegration, nativeWindowOpen… ) • ⼤大量量依赖于 Chromium 具体实现的功能(webFrame, remote, mixed-sandbox, webview, protocol…)
提升 Chromium 更更新速度 ‣ 降低更更新难度 ✦ 编译系统切换到 GN(和 Chromium 保持⼀一致)
✦ 将补丁合并到 Chromium 和 Node.js 上游 ‣ 增加⼈人⼿手 ✦ 来⾃自 Slack, VS Code, Microsoft Team 的开发者协 助 Chromium 更更新
⽭矛盾 ‣ 成熟应⽤用的开发者不不愿意升级到新版本 ✦ 更更新 Chromium ⼀一定会引⼊入 bug - 单元测试未覆盖到的功能出现问题
- GPU 渲染机制变换导致应⽤用渲染bug ‣ 部分开发者催着升级到新版本 ✦ Chromium ⼀一直在引⼊入新功能 ✦ 旧版本的 Chromium 得不不到安全更更新
应⽤用反馈项⽬目 (App Feedback Program)
App Feedback Program ‣ 应⽤用开发者参与新版本 beta 测试 ✦ 在你的应⽤用⾥里里测试 10000
个⽤用户⼩小时以上 ✦ 有⼈人能每周参与讨论应⽤用⾥里里遇到的 bug ‣ 反馈的 bug 作为优先事项修复 ‣ 详情:https://electronjs.org/blog/app-feedback- program
Electron ⼤大版本发布流程 1. 有了了新 Chromium 更更新 2. Electron 更更新到最新的 Chromium,在所有单元测试通过后发布
beta 版 3. 参与 App Feedback Program 的应⽤用开发者在⾃自⼰己的应⽤用中测试 beta 版 4. 应⽤用开发者回报 bug 5. 视频会议时讨论并向开发团队分配 bug 6. 修复 bug 后发布新 beta 版 7. 重复 3 - 6 直⾄至发布稳定版
⼀一些常⻅见问题
有什什么新功能?
Electron 的开源⽂文化 ‣ ⽤用户对开发者来说,是邻居⽽而不不是客户 ‣ 新功能主要由第三⽅方公司的开发者主导 ‣ 提供相应的资源,就可以影响 Electron 的开发
如何影响 Electron 的未来 ‣ 提供开发者参与 Electron 的开发 ‣ 加⼊入 App
Feedback Program ‣ 加⼊入 Electron 的 Slack 讨论组参与讨论 ✦ 应⽤用开发者限定 ✦ 向
[email protected]
发邮件申请加⼊入 (请简单说明⼀一下应⽤用的情况)
能不不能所有 App 共享 ⼀一个 Electron runtime ?
共享 runtime 的问题 ‣ App 开发者选择 Electron ⼤大部分时候就是要削减开 发成本,⽽而不不是降低⽤用户的使⽤用成本 ✦
很多 App 针对特定的 Chrome 版本编写 ✦ 需要 App 的开发者测试多个 Electron 的版本 ✦ 新的 Electron 更更新很可能会导致旧 App 出 bug
所以 ‣ ⽤用户基数⼤大的 App 不不太可能使⽤用共享 runtime ‣ 类似的尝试效果都不不好(Chrome Apps, Adobe
AIR…) ‣ ⾄至少2019年年不不会有共享的 Electron runtime
谢谢