前言:
而今各位老铁们对“nodejs作为后端”大约比较重视,同学们都想要分析一些“nodejs作为后端”的相关内容。那么小编同时在网络上收集了一些有关“nodejs作为后端””的相关资讯,希望同学们能喜欢,大家一起来了解一下吧!说起QQ的发展进程,小雷觉得有俩关键词可以准确形容:“伟大与牺牲”。
QQ从传统互联网时期便扎根本土发展,以极其丰富的周边和便捷的聊天传输功能,俘获不少网友的芳心。
聊天体验就不用多介绍了,该有的都有,甚至比微信还优越。
比如微信死活不上的聊天记录云同步,早在多年前的QQ,得到完美呈现。
即使QQ不小心丢失数据,那些重要的聊天记录还是能恢复如初。
图源:QQ
而且在“发送文件”等生产力场景上,QQ的可用性也比微信高得多,大文件随意传,限制颇少。
反观微信嘛,早期就有着50MB文件传输限制。
眼看用户吐槽声渐高,才逐渐放宽到100MB、200MB和1GB。
行吧,1G又不是不能用。
图源:微信
不过QQ虽然功能优秀,但在微信推出后,还是不得不上演“爱的供养”,全方位给微信输血。
比如早期的微信,有个【QQ离线消息】功能。
图源:微信
咱们可以通过这入口,直接在微信上查看QQ消息,甚至是回复好友。
这波操作,就为了最大化减轻了用户迁移负担。
图源:微信
说白了啊,QQ当时把最核心的竞争力,都让渡给了微信。
各种引流+资源扶持,再加上微信足够简洁好用,才有了如今的社交霸主+国民级数字生活平台。
图源:百度
此消彼长之下,网上时不时都会有人讨论:“QQ是不是要凉了?”
关于这事儿,小雷也特意观察过,QQ虽然不复巅峰,但有5亿多的月活用户量保底,日子还过得下去。
而且最近QQ也官宣了一个重磅消息,桌面端要“彻底疯狂”,迎来史诗级重做。
图源:QQ
QQ重做了,但网友不乐意
如果现在还有用QQ聊天办公的小伙伴,应该能感受到,QQ的Windows版界面显得很不和谐。
这个“不和谐”体现在哪呢?
我想,大概是对于信息的展示,已经跟不上时代变化了。
QQ已经二十多岁高龄,放在日新月异的互联网,称得上是超长寿产品了。
但这二十多年间,QQ桌面端的模样没啥变化,所有更新都是在原有的“竖栏”上加模块。
图源:自制截图
所有功能都竖着放,让本来空间就不大的界面越来越拥挤。
而且啊,QQ打开聊天或者其他功能板块的方式,真的很old school。
比如去年新增的“频道”功能,在桌面端打开,就是一个新的独立界面。
还有很多功能都因为主界面空间不足,只能创建独立窗口来使用。
反馈到日常使用中,就是各个界面占满屏幕,搞得桌面乱七八糟。
反观自家兄弟微信,界面是相当地现代化,也符合操作逻辑。
虽然信息展示同样分为三大块,但很显然,横向排版设计能展示更多信息。
左边功能栏,中间联系人,右侧聊天窗口和功能展示,既美观,使用效率又高。
咱们用桌面端软件,图的不就是直观好上手嘛。
图源:微信
即使抛开微信不谈,作为QQ衍生版本的Tim,都早早地把界面进行重做。
图源:Tim
而QQ作为老大哥,再不跟上桌面端的现代化步伐,就真的不礼貌了。
当然,真要说起来,QQ是从去年开始,就有了重做桌面端的迹象。
在2022年9月,MacQQ悄悄推送船新版本。
这版本采用了现代化界面设计,相应的,底层框架也经过了重构。
图源:QQ
而在MacQQ全面公测没多久,Linux版QQ也故技重施,用同样的框架重做了一版。
我超,Linux版?!
以前的Linux QQ有多难用,相信体验过的小伙伴都感同身受。
这玩意基本就是个wine兼容套壳版,占资源非常大,还容易崩溃闪退。
图源:优麒麟
如今经过重做的Linux原生版QQ终于出炉,让Linux感动流涕。
对了,根据官方的消息,Windows版也会采用统一的架构来重做。
理论上来说,三端架构统一是好处多多的。
既利于同步更新,让各个系统用户快速体验到新功能,开发团队还省事儿,少掉几根头发。
但从用户们的反馈来看,大家对QQ采用的新框架,充斥着反对和不满。
QQ居然放着React Native、Flutter、Tauri这些跨平台框架不用。
转而用上了广受吐槽的Electron...
图源:QQ
那么,这个Electron框架是啥玩意儿,为啥用户们都不喜欢呢?
关于这个,咱们得从谷歌家的Chrome说起。
Chrome作为目前市占率最高,且拓展性最强的浏览器,相信不少小伙伴都用过。
而Chrome的代码又是开源的,这就意味着,它能被程序员大佬们进行魔改利用。
So,包含了Chrome内核的Electron框架,很快就诞生了。
图源:维基百科
而基于Electron开发的桌面端应用,大概能分为三大部分。
Chromium内核+NodeJS后端+几个原生API,就能凑成一个能在桌面端运行的Web应用。
图源:github.io
再说直白点,用Electron写出来的软件,和Chrome浏览器套壳没啥区别。
只要你懂点前端技术,就可以用Electron打包微信网页版,让它成为独立的桌面级应用。
回到用Electron重做的QQ,道理是相通的。
反正底层都是Chrome,那开发团队只要把前端界面做得好看点,让用户看不出来是网页套壳,不就完事儿了?
如果大伙还是觉得有点绕,那小雷做个究极省流版总结:
所有用Electron写的桌面端应用,在打开后都是一个浏览器,本质上都是Chrome套壳。
图源:Github
这么做的好处是有很多。
对于开发者来说,代码成本很低,毕竟内核还是网页嘛,自带跨系统特性,把前端界面做好就完事儿。
对于企业来说,用electron框架来做软件,收益就更明显了,连后端程序员都省了...
可是,这么做的代价又是什么呢?
说实话,大部分代价,都是Chrome带来的。
Chrome的缺点是什么?内存占用大啊!
开一个Chrome浏览器,就能吃掉1G以上内存了。
那要是再开几个基于Electron开发的软件,那场面我不敢想...
就拿用Electron打包的网易云音乐来说,我刚打开这软件,它就吃了我200多M内存。
包括国民级下载软件迅雷,也是用Electron重做过的。
由此带来的结果是,我刚启动迅雷,便失去了500M内存。
对用户来说,虽然Electron可以写出极其美观的界面,但却换来臃肿的内存占用。
所以大伙应该能理解,为什么很多用户都抵触QQ用Electron来重做各个系统的桌面端了叭。
这玩意儿对小内存电脑电脑极其不友好,开两个凑合能用,开五个卡顿迟滞。
图源:百度
用Electron重做,图啥?
那么问题来了,QQ的开发团队肯定也了解Electron缺点,那为什么还要头铁呢?
从内部开发人员的知乎回答来看,咱们能挖出点线索来。
首先,现有的Windows、Mac和Linux版QQ,背后都有独立的开发团队,不利于统一更新迭代。
基于这需求呢,QQ就决定用可以一套代码、多端运行的跨平台框架,来重做软件。
图源:知乎@MagiLu
至于为啥选Electron嘛,还是因为成本低。
其他跨平台框架虽然性能好,但人力成本高啊。
Electron就不一样了,不用考虑后端,那现有的Web前端程序员拉过来就能上手。
不过这位老哥也提到,新版QQ并不是单纯的网页版QQ套壳,而是基于NT架构进行完整重写。
图源:知乎@MagiLu
由此带来的,就是内存占用不像其他Electron应用那么高。
图源:知乎@MagiLu
说白了,QQ还是考虑到了投入产出比。
而此举的背后,或许反映了鹅厂目前降本增效的策略,和QQ战略地位的下降。
u1s1,QQ现在算不上特别重点的大项目,真正的技术人才,或许都被调去做微信或者其他新项目了。
目前只有Electron框架,能让QQ做到人员精简的情况下,保持跨系统快速更新迭代。
当然,咱们也不用太灰心,这框架还是有优点的。
至少它的跨平台属性,让Mac和Linux的软件生态得到了扩充。