浅谈Electron.js中的架构设计Electron是使用不同的Web技术构建跨平台桌面应用程序的不错选择。尽管

不久前,我开始从事一个名为Taggr的附带项目,这是一个完全离线的交互式照片探索应用程序。开发Taggr要求我从应用程序复杂性的最低级别开始,尝试多种架构方法并探索每种局限性。

在本文中,我们将讨论使用electron构建桌面应用程序的不同构建方法之间的权衡。我们将分析每个不同方法的缺点,并介绍旨在应对它们的架构。

本文中介绍的蓝图是持续努力的结果,以找到一种方法,使我(一个独立开发人员)通过利用标准网络工具来管理应用程序的复杂性并满足性能要求。让我们开始吧!

在过去的几年中,在浏览器领域内的JavaScript使用情况大大增加,在很大程度上是借助库和框架(例如React,Vue和Angular)的帮助。同样,JavaScript已经不仅仅局限于在浏览器中使用,而是可以在其他地方使用,比如Node.js、Deno和ReactNative。

Electron.js就是这些框架之一。自2013年发行以来,Electron已成长为构建跨平台桌面应用程序最常用的框架之一。VSCode,Slack,Twitch和许多其他流行的桌面应用程序是使用Electron构建的。

Electron将Chromium和Node.js嵌入其二进制中,使Web开发人员能够在不编写原生桌面应用代码的情况下编写桌面应用程序。Electron实现了一个与Chromium浏览器类似的由主进程和渲染进程组成的多进程模型。

每个应用程序的窗口都是一个渲染进程。每个窗口之间是相互隔离的执行上下文,主进程程负责应用程序生命周期管理,窗口管理或渲染进程管理,以及一些nativeAPI(例如系统菜单,通知和托盘图标)等。

每个应用程序由一个主进程和一个可变数量的渲染进程组成。渲染进程可用于JavaScript代码执行,也可以在没有UI的情况下存在。

注意:Electron不是构建跨平台桌面应用的唯一选择。其他替代方案也提供了更少的资源消耗和更小的可执行文件,但没有活跃的共享社区,学习资源或者得到像Electron一样的广泛传播和使用。

如果您还不熟悉Electron,它很容易上手,因为Node.js和JavaScript的知识是可以互通的。

Electron抽象出原生应用层和熟悉的js语言,减少了推广和开发成本。从本质上讲,Electron在桌面应用程序开发中所做的工作类似于ReactNative对移动开发的开发。

Electron还可以管理构建和部署,以及应用程序更新,从而易于将跨平台应用程序保持同步的更新。您可以通过运行时加载远程资源来实现自动更新。

但是,Electron带来了一些便利和好处,同时在权衡利弊中,也带来了一些不可避免的问题。Electron开发框架默认包含了Chromium和Node.js环境。导致Electron应用比使用本地开发会消耗更多的资源。因此,一些人对Electron的性能和资源消耗表示担忧。

此外,由于基础体系结构,复杂的Electron应用程序会对应用程序的性能和开发人员来带一些挑战。我们通过三个不同的应用程序示例来进行深入分析。

让我们研究具有不同复杂性的三个应用程序示例的高级结构设计。请注意,我们的目的并不是要详尽,而是旨在分析您可以使用Electron构建的什么样(能力边界)的应用。

让我们从一个低复杂的应用程序开始。就我们的示例而言,我们将将网页包装为桌面应用程序。示例可能包括即时消息传递应用程序,数据分析仪表板和在线流应用程序。

许多企业提供基于成熟的Web的应用程序的桌面版本,使我们的使用情况成为常见的用例。我们将使用Electron运行在chrome上的应用程序,消除不必要的差异,并提供统一的UI,而不是不同的浏览器有不同表现。

像Spotify这样的音乐流应用程序,它是使用本地缓存提供脱机流支持的,是一个典型具有中等复杂性的应用程序的示例。桌面应用程序可以使用Electron来构建本地缓存层。

与低复杂性应用相似,中等复杂的应用程序也可以补充网络应用程序。主要区别是提供离线支持的能力。因此,这些应用在概念上与脱机支持的渐进式Web应用程序(PWA)相似。

对于最高级别的复杂性,让我们看一下像Sharp这样的批处理图像处理应用程序。该应用程序必须能够处理数千个图像并完全离线工作。

离线应用程序与前两个示例明显不同。具体而言,典型的后端工作负载(例如图像处理)将通过创建离线应用程序在Electron中执行。

请注意,绝不能在主进程中运行CPU密集型操作。这样做可能会阻塞主进程,从而导致您的应用程序卡住或者崩溃。

此外,将业务逻辑和通信层与ElectronAPI耦合限制了重复使用Web开发工具的原则。主进程和渲染器进程之间的通信使用IPC,在两个渲染过程之间进行通信时,需要通过主进程进行信息的来回传递。

如果您的应用程序属于低或中复杂性类别,恭喜!离线应用程序中出现的许多坑都不会遇到。但是,如果您的应用程序需求落在高复杂性范围内,那就难说了!

让我们详细介绍每个模块!

注意:部分技术栈纯粹是依据个人喜好而选择的,并且可以使用其它技术替换。例如,您可以将typescript交、替换为JavaScript,React替换VUE,REDUX替换MOBX或使用其它的NPM软件包管理器替换yarn,而不是完全遵照上述示例。只要尊重上述思路,您就可以自由选择技术栈。

使用yarnworkspace来实现CodeShing,这是将模块作为NPM软件包发布,更新和版本化的简单替代方法。

前端模块负责UI的所有内容。它包含我们应用程序的组件和动画,但不包含业务逻辑。在生产环境中,Electron从生成的静态文件中使用它。

后端模块包含后端代码库和电子设置代码。业务逻辑和长期运行的操作(例如图像处理)将在单独的node.js流程中运行,以使UI不会遭受降级性能。

前端和后端使用node-ipc传递的跨进程消息进行通信。消息传递允许异步和基于事件的通信。

异步通信最适合短时任务。前端可以在后端成功处理消息后立即获取结果。

Electron是使用不同的Web技术构建跨平台桌面应用程序的不错选择。尽管Electron更适合在低复杂性应用中使用,但是随着复杂性的增加,性能和开发人员的经验和能力水平将显得更为重要。

本文所提出的架构旨在为高复杂性应用程序提供合理的理论基础。当然,它可能需要根据具体情况进行扩展,而且它为不同类型应用程序提供了很好的理论支持。

THE END
1.阅读建议阅读建议 上周日,我发起了“case reading”活动,一起阅读英文原文,12月阅读资料为马斯克收购推特相关文件。 非常感谢大家的热烈支持,阅读群活动正在稳步推进中。作为群主,我真心希望这个活动能够帮助到大家,所以呢,希望唠叨几句,有一些的建议。 一、阅读准备https://www.bilibili.com/read/cv40050546
2.纸质阅读与电子阅读的利弊*1. 你平均每天花多少时间阅读? 半小时 一小时 两小时及以上 不阅读 *2. 请问你喜欢电子阅读还是纸质阅读? 电子阅读 纸质阅读 *3. 日常生活中,你以电子阅读,纸质阅读哪个为主? 电子阅读 纸质阅读 *8. 你认为以后纸质阅读和电子阅读哪个是主流? 纸质阅读 电子阅读https://www.wjx.cn/jq/103106697.aspx
3.电子阅读与纸质阅读的利弊[电子阅读与纸质阅读]《电子阅读与纸质阅读》综合性学习试题及答案2018-11-06 2022年新安全生产法知识竞赛试题库及答案【四篇】2023-12-29 新疆内初班民族团结试题(有答案)【6篇】2023-12-29 中小学班主任基本功素质大赛情景答辩题(附参考答案)(合集五篇)2023-12-29 https://www.scfaying.com/k/dianziyueduyuzhizhiyuedudelibi/
4.互联网利弊论文模板(10篇)导言:作为写作爱好者,不可错过为您精心挑选的10篇互联网利弊论文,它们将为您的写作提供全新的视角,我们衷心期待您的阅读,并希望这些内容能为您提供灵感和参考。 篇1 论文关键词网络隐私 法律 保护 一、隐私与网络隐私权 隐私是一种与公共利益、群体利益无关,当事人不愿他人知道或他人不便知道的信息,当事人不愿https://www.haofabiao.com/haowen/30331.html
5.大家更喜欢纸质书还是电子书?看纸质书的时候我会更加沉浸在阅读的乐趣里,注意力更加集中,思绪也会来的更多一些。有时候脑子里火花一闪的时候停下来想一想,再低头继续阅读的时候会觉得很惬意,尤其是当我看下去之后发现自己的想法和作者观点一致时,会特别开心,仿佛和作者隔着时空默默地击了个掌。https://www.zhihu.com/question/5651489977/answer/53184005635
6.学习电子商务概论的总结(通用10篇)总结是事后对某一阶段的学习、工作或其完成情况加以回顾和分析的一种书面材料,它能帮我们理顺知识结构,突出重点,突破难点,因此,让我们写一份总结吧。总结怎么写才不会流于形式呢?以下是小编为大家整理的学习电子商务概论的总结,仅供参考,欢迎大家阅读。 学习电子https://www.yjbys.com/zongjie/gerenzongjie/1398707.html
7.电子商务学习总结(通用20篇)充满意义的学习生活又告一段落了,回顾过去的学习过程,倍感充实,收获良多,让我们一起来写学习总结吧。那么学习总结怎么写才能发挥它最大的作用呢?下面是小编为大家收集的电子商务学习总结,供大家参考借鉴,希望可以帮助到有需要的朋友。 电子商务学习总结 1 电子https://www.wenshubang.com/xuexizongjie/505706.html
8.关于暑假的调查报告4、对全体师生提出的建议: (1)加强自我学习,不断积累自己语言文字规范知识,为写好规范字,说好普通话。 (2)对教师自身语言文字水平提出要求:课堂教学必须使用普通话,语言力求清晰明了,板书工整条理,不写繁体字、异体字、错别字。 (3)对学生自身语言文字水平提出要求:课堂用语必须使用普通话,书写作业必须认真规范。 https://www.jy135.com/diaochabaogao/1379006.html
9.电子商务学习心得(通用20篇)通过这次实习,让我更加理解了电子商务是以电子化为手段,商务为目的的过程;加深理解了一学期来的电子商务理论知识;让我初步了解了B2B、B2C、C2C的交易过程,并掌握了基本的实践技能;充分结合书本所学知识,融会贯通,更深一层的理解电子商务在各个领域的应用,同时任何一个企业都不能忽视网上这块市场,让我更加坚定电子商https://www.fwsir.com/Soft/html/Soft_20221230154155_2173272.html
10.2021年中国报刊市场分析报告行业运营态势与发展前景预测七、生活类周刊发展的相关建议 第三章 2017-2020年中国报纸行业发展分析 第一节 中国报业发展概述 一、我国报纸行业加紧推进结构转型升级 二、我国报纸行业合作新模式剖析 三、我国报业实施国际化战略恰逢其时 四、数字化新形势下报业价值的相关思考 五、我国报纸行业品牌经营相关分析 六、报业电子版收费渐成市场发展https://baogao.chinabaogao.com/qikantushu/535316535316.html
11.互联网经济的利弊范文导语:如何才能写好一篇互联网经济的利弊,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。 篇1 随着互联网金融的蓬勃发展,作为新型支付工具的网络虚拟货币在交易范围、使用频率上均呈现出几何级数式的扩张和增长趋势,比特币浪潮一时风靡全球。正当人们热衷于虚拟货币所带来的数字化支付https://www.gwyoo.com/haowen/323126.html
12.电子档案的利弊9篇(全文)电子档案的利弊 第1篇 一、电子档案的优点 (一) 电子档案信息查找方便 当你需要在众多档案中查找你所需要的资料, 按照以往的查找方式, 我们需要在档案室一大堆的资料中按照特定分类方式逐个查找, 需要花费一定的时间。而电子档案的应用则明显的提高了我们查找档案的效率, 我们只需通过电子档案建立的特定的检索链接,https://www.99xueshu.com/w/ikey6u0h1x9y.html
13.浅谈电磁感应中的涡流效应产生的原因及利弊与控制通过线圈回路的磁通量发生变化,线圈中就会产生感应电动势,回路中也就产生感应电流(穿过线圈的磁通发生变化而产生的感应电动势。那今天我们讲讲电磁感应中的涡流效应产生的原因及利弊与控制。 涡流产生的原因 如果把一块导体放在变化着的磁场中或相对于磁场运动时,由于导体内部都可构成闭合回路,穿过回路的磁通发生变化,https://m.elecfans.com/article/578211.html
14.电子档案的利弊及电子档案的管理20230529071309.docx电子档案的利弊及电子档案的管理.docx 3页VIP内容提供方:xiaomiketang 大小:11.33 KB 字数:约1.21千字 发布时间:2023-06-01发布于湖北 浏览人气:33 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)电子档案的利弊及电子档案的管理.docx 关闭预览 想预览更多内容,点击https://max.book118.com/html/2023/0529/7063015023005113.shtm
15.头条文章有旅游签的话,如果背景条件比较好,建议重新申请下签证,签证官会在系统里备注新签证的赴美目的。如果背景条件不是很好,那就不要再申请了,选择容易的关口诚实入关即可。因为重新申请,如果签证官认为你不符合条件可能连旧签证也一并撤销。 总体来讲,诚实签和普通旅游签的材料区别在于,硬性指标只是多了医生预约单,毕竟https://m.weibo.cn/ttarticle/p/show?id=2309404880178487886004
16.关于电子书的利弊英语作文然而,正如每个硬币都有两面,电子书也有不足之处。例如,长时间阅读电子书会伤害我们的眼睛。 Weighing up the pros and cons, I think that e-books are beneficial if we read correctly and properly instead of reading over. 权衡利弊,我觉得我们恰当地阅读电子书而不是过度是很有好处的。https://m.unjs.com/zuowendaquan/yingyuzuowendaquan/2885757.html
17.纸质书和电子书的利弊分析传世,通过阅读者的痕迹传递一种感觉6. 静心,可以让心沉淀下来7. 可以享受安静又安逸的感觉,并且能够听到翻书的声音8. 能够直观地知道自己的阅读进度9. 对作者的尊重10. 比电子书正规,错别字删减也少,内容更可靠11. 高级画册方面,不会失真12. 不用充电,保护眼睛13. 内容比电子书更有深度,更有逻辑性电子书https://m.renrendoc.com/paper/165584793.html
18.支付宝电子对账单怎么取消五、总结与建议 取消支付宝电子对账单是一个需要谨慎考虑的决定。在取消前,用户需要充分了解取消的原因和影响,以及替代方案。同时,用户还需要注意账户安全和财务记录的备份问题。如果用户对自己的财务管理能力有信心,并且已经找到了合适的替代方案,那么取消电子对账单也是可以的。然而,对于大多数用户来说,保留电子对账单https://h.chanjet.com/ask/5a6418d07060ca950a.html