2019-11-6 【RCViewer】应该怎么选用应用框架

先硬广一波:RCViewer的开发启动了。虽然不能说是划时代屌炸天的技术和产品,但是对于现有被折磨的人群,我抱着最大的善意启动这一个项目,对于个人版预计全功能终身免费,并且不会做包括广告一类的商业化,只希望跟我一样被折磨的人能够在世界的各个角落,都可以不受限制的、自由的、愉快的访问放在某个场所的设备。底层的传输是在百万级节点的P2P通信网络中验证过的超高码率高性能多径传输技术----这么一说还真的是有点屌炸天了----RCViewer将基于对网络基础设施的有效利用,确保复杂网络也能带来感人的协作体验。

现代码农很难想象上古时代的应用开发模式。想当年,施乐(为什么是施乐?)或者其他什么公司为了开发一款新打印机,硬件方案选型确定后,施乐将不得不从最底层的MCU微码开始,构建驱动,构建系统,最后才到打印机业务,这个过程实在是很感人,所以上古时代的计算机公司都是全产业链公司,他们具有实现一切的能力。他们不得不如此,半导体方兴未艾,通用芯片尚未萌芽,一个新业务的开展,伴随的是一系列从芯片、存储器、通信等器件的重新设计。彼时标准尚缺,每一颗新芯片都可能带来一个新的体系架构。早年的穿孔纸带应用在不同体系架构的使用体验当然是感人的,然而即便是在不那么蛮荒的年代,将代码翻译成机器成看懂的二进制串也不是一件简单的事情。所以一个新设备的出现,并不是组装了一台机器,而是生产了一颗新的芯片,诞生了新的体系架构,开发了针对该体系架构的编译器,开发了多任务系统,驱动,和应用。你看,所有的东西都完成了,应用才能开始开发。

可是这么做就太太太低效了,所以软件先驱抽象出了硬件隔离层,抽象出了系统层,抽象出了中间件,甚至弄出了让现代码农完全无需了解软件制作机理的IDE----我对强大的IDE对于工程师的作用一直持否定态度----现代码农的所谓开发应用,就是打开IDE,写下int main() { printf("hello world!"); },然后鼠标点下三角形的运行按钮。然而IDE告诉他:printf未定义,他只能一脸懵逼的看着IDE,骂道:这IDE真不好用。所以当我们说到应用框架的时候,其中其实蕴含了整个计算机体系发展过程中不断抽象,不断分层,不断分工细化带来的社会效率的提升。裸系统上当我们要去开发一个图形窗口应用,应用需要自己操作显示器件,在指定区域更新内存,刷新出一个新的button。在成熟的应用框架上,你甚至不需要了解你的控件最终将被composite在哪里,你只需要拖动控件,调整属性即可。但作为现代工程师,失去了了解系统在做什么的机会,最终沦为996的码兽,比起上古时代的先驱来说,实在是幸福感缺缺啊。

可是应用框架终究能够带来效率的提升,怎么选择应用框架就成了最应该考虑清楚的事情,否则很快的选了,用到一般发现选错了,这简直不是不幸福能够形容的。以RCViewer来说,应用框架的选择经历了三个阶段,然而并不能保证现在的选择一定完美,只是现在的选择能满足我对系统需要的能力,实现的工作量也可以接受。

第一个阶段是一脸懵逼的阶段。早期开始RCViewer开发的时候,因为要以代理模式来处理多径传输和纠错,我天真的认为nodejs能够满足编解码和数据共享的需求(性能和便捷性),所以我选用electron作为应用框架。如果只是做一个业务型的应用,electron一定是不错的选择,异步,跨平台,自带浏览器内核,免费,组件丰富,不要太完美。然而硬伤是多任务能力和数据共享,对于cpu密集型的任务,实现难度大,性能差,不要说达到200ms的屏幕延迟,能做到3秒以内,我就应该很佩服我自己了。所以我最终放弃了electron和nodejs。

第二个阶段是自认为可以掌控全局的阶段。经历了electron的挫败后,我开始重新寻找一个既简单又能跨平台且能力强大的方案。golang是性能强大的服务端语言,RCViewer在客户端需要实现部分服务端的功能,我想何不在golang上搭一层浏览器的皮,借助浏览器的能力做前端,golang实现需要的cpu密集型任务,再结合便捷强大的vue,简直太完美了。所以我在这个方案上实现了基础的信令、网络、UI操作原型,然后始料未及的是,不做深度定制的浏览器内核对于超低延时视频的支持实在是不够强大,空有ffmpeg这么强大的武器,在浏览器上却是无能为力。再一次的挫败让我知道对于RCViewer的技术方向和局限在哪里。

我最终选择了QT。所以,对于应用框架选择,如果是业务型应用,所有浏览器引擎作为内核的框架都可以选择,然而如果涉及到底层深度优化,浏览器实在是不太能提供足够的支持能力。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容