重构css-十年“屎山”终于建成,QQ却选择了被Google Teams抛弃的Electron

2023-08-29 0 7,582 百度已收录

据百度百科介绍,2023年4月23日,新版Windows QQ将正式开始内部用户测试,采用全新QQ NT架构,带来全新交互界面。

去年,随着QQ for macOS的更新,QQ全新的NT技术框架进入了公众的视野。 腾讯表示,QQ将采用全新的QQ NT技术,全面重塑QQ底层代码。

去年12月,QQ for Linux 3.0正式版在QQ官网上线,Linux用户可以直接下载试用。 该版本采用全新的QQ NT技术框架,可支持x64系统和arm64系统。 主要在系统外观、效率提升、生活娱乐等方面进行功能改进和扩展。 QQ for Linux的版本更新非常缓慢,2008年才推出1.0版本,十几年后的2019年才推出2.0版本。 3.0版本来得比较快。 今年4月7日,腾讯Windows QQ新框架版本开启灰度公测。 这次需要登录资质,如果没有申请Windows QQ测试计划是很难登录的。

目前,基于QQ NT架构,这是QQ首次统一Windows/Mac/Linux三个平台的架构,实现了一套代码三平台多终端操作。 三个平台的版本在外观、操作和性能上都是一致的。 提高用户的操作体验。

多端统一,QQ选择Electron

QQ的架构设计始于1998年,经过24年的发展,其架构经历了无数次的迭代和构建。 有网友表示,目前Windows版的QQ是在2009年“拼接修复”的基础上构建的。

一直以来,QQ最大的问题就是难以跨平台。 在Windows方面,QQ首先使用了MFC,后来还使用了DirectUI、WPF等,这些能力只能在Windows平台上使用。 Linux和Mac端必须使用其他技术,例如Qt。 从过往的更新历史也可以看出,三个平台的更新迭代节奏完全不同。

因此,对于QQ开发团队来说,复用代码并在三个终端上保持一致的用户体验非常重要。 如今,QQ凭借NT架构实现了QQ架构的统一。 QQ NT技术的重点之一是使用Electron作为新版QQ桌面UI的跨平台解决方案。

重构css-十年“屎山”终于建成,QQ却选择了被Google Teams抛弃的Electron

Electron 是一个使用 JavaScript、HTML 和 CSS 构建的跨平台桌面应用程序框架,基于 Chromium 和 Node.js,兼容 Mac、Windows 和 Linux。

但不同系统之间还是存在较大差异,需要做相应的一些额外处理,才能使打包后的应用程序能够在不同系统下正常运行。 QQ开发团队在Electron的基础上做了很多优化。 例如,针对Electron“占用显存”的问题,QQ根据不同的使用场景,使用Electron在Electron和N中开发了多平台客户端。 成本要低得多。 与大多数完全可重用的代码相比,有针对性的优化成本可以忽略不计。

而且,Electron 基于 Node.js,这意味着 Node 生态系统中的所有模块都可以在 Electron 中使用。 同时,跨平台也使得Electron可以同时开发Web应用程序和桌面应用程序。 无论是UI还是代码,很多资源都可以共享,大大减轻了开发人员的工作量。 QQ开发团队可以享受这样的便利。

多终端统一的需求不仅仅限于QQ。 2017 年,GitHub 使用 Electron 重写了 macOS 和 Windows 客户端。

负责重绘应用程序的团队解释说,重新创建 GitHub 桌面客户端的主要动机是为了降低支持多平台开发的成本。 事实上,为Windows和macOS开发原生应用程序需要使用两种不同的技术堆栈,这意味着每个功能都需要重复实现、调试和维护。 如果您需要支持第三个平台,例如Linux,那么您需要投入额外的精力。 这与QQ面临的情况类似。

重构css-十年“屎山”终于建成,QQ却选择了被Google Teams抛弃的Electron

显存太多,微软放弃Electron 7

有些人选择 Electron,有些人放弃它

今年4月初,微软宣布以公开预览的形式在Win10/Win11系统上推出新版本的Microsoft Teams应用程序。 微软协作应用程序和平台总裁 Jeff Teper 表示,新版应用程序的设计核心是速度和易用性,“我们围绕速度、性能、灵活性和智能重新构建了 Teams 应用程序。视频使用量减少了 50%记忆。”

功能增加的一个重要因素是应用程序从 Electron 过渡到 Microsoft 的 Edge WebView 2 渲染引擎。 要知道,微软使用 Electron 还不到四年就放弃了。

“当我们在 2015 年开始开发 Teams 时,我们选择了 Electron 等框架来实现跨平台 Web 和桌面客户端的快速交付,”该公司工程副总裁 Sumi Singh 解释道。 压力来了。”

此前,Teams 被公认为视频内存领域的大玩家。 Office 365 MVP Tony Redmond 做了一个测试,下图显示了 Windows 任务管理器报告,加载到 Edge Chromium 中的浏览器客户端占用了 775 MB,而构成 Teams 桌面客户端的进程则需要 887 MB。

过去,微软尝试了多种不同的技术来降低桌面客户端的视频内存要求。 但事实上,一大进步是 Teams 2.0 将于 2021 年从 Electron 切换到 Edge WebView2。

Edge WebView2 控件允许用户在本机应用程序中嵌入 Web 技术(HTML、CSS 和 JavaScript)。 Web 代码可以嵌入本机应用程序的不同部分,或者所有本机应用程序都可以构建在单个 WebView2 实例中。

根据 Teams 工程师 Rish Tandon 在 Facebook 上的分享重构css,Teams 2.0 从 Electron 切换到 Edge WebView2 花了大约 6 个月的时间。 优化后的Teams 2.0仅消耗Teams 1.0上同​​一帐户的一半显存。

今年新版Teams发布时,微软表示邀请了第三方基准测试公司GigaOm在三台不同机器(低端、通用和高端)上测试新旧Teams的性能。性能),新版本的性能明显更好:

1.应用程序启动速度提升2倍

2. 入会速度提升2倍

3. 聊天/频道切换速度提升1.7倍

4.显存消耗降低高达50%

5. C盘空间减少高达70%

如何选择跨平台框架

虽然多终端统一带来了很多便利,但跨平台框架并不是万能的。 “跨平台意味着需要花费大量的时间来解决平台差异的问题,同时也不得不面对第三方库不如原生平台丰富强大的事实。虽然跨平台-平台是以牺牲一些功能和体验为代价来权衡开发速度和一致性的,它不是业务开发的手炮。” 腾讯微信客户端工程师方秋芳曾表示。

重构css-十年“屎山”终于建成,QQ却选择了被Google Teams抛弃的Electron

目前,这个问题还没有既定的解决方案。 事实上,重写该应用程序的 GitHub 团队表示,网络不是一个完美的平台,原生应用程序也不是。 在 Electron 中重写原生应用程序只是不同权衡之间的权衡。

方秋芳认为,从框架开发者的角度来看,跨平台开发的难点在于处理平台差异。 从框架使用者的角度来看,困难在于,如果框架出现问题,维护成本会非常高。

那么,企业如何选择适合自己的跨平台开发框架呢?

阿里巴巴淘技术部资深无线技术专家黄刚(昵称:腾远)曾分享,从应用的生命周期来看,研发阶段只是其中一个阶段,无论是长期术语可维护性和可操作性也是一个需要考虑的问题

滕源表示,如果在目前的业务形态下,前端解读产品化程度较高、相对稳定,或者对性能、交互有极其严格的要求,那么跨平台优先可能不是一个理想的选择。 一方面,多平台开发工作在整个开发成本中所占比例不高,投资回报率可能不高; 另一方面,跨平台优先以牺牲平台特性为代价来实现跨平台一致性。 在实现性能一致的过程中,填孔的工程成本可能会更高。

反过来说,如果目前的业务重构css,前台的呈现比较不稳定,整个前台开发的比重比较高,那么应用跨平台框架的利润就会比较高。

腾远认为,从Hybrid方案到React Native、Weex再到Flutter,本质上是在开发成本、灵活性、性能体验之间找到平衡点。 只是你的切入点不同,最终导致整个解决方案不同。

“假设你今天要做一个新的应用程序,可能整个开发团队有多个后端和很少的客户端,那么我可能会建议考虑 Hybrid 模型;如果你有更高的性能要求,可以考虑 Weex 或 React Native;反之,如果客户有更多的朋友,那么考虑 Flutter 可能是个好主意。” 滕渊说道。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css 重构css-十年“屎山”终于建成,QQ却选择了被Google Teams抛弃的Electron https://www.wkzy.net/game/182725.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务