标签:钉钉 strong shell int 利用 term 资深 大会 提升
By 技术怪咖 欧阳森林导读:在互联网时代,如何将一个好的idea快速的转化为产品,如何在原有产品中增加新的特性,是产品能够快速的推向市场、快速占领的关键。因此,作为客户端的架构选型,面临哪几方面的需求?资深前端工程师欧阳森林针对其专业领域的经验,有着自己独到的见解。
自从互联网江湖上出现了一部叫做“云”的秘籍,大大小小的门派,纷纷对外宣称自己掌握了“云”的核心,各种“云”应用层出不穷,Service的各种架构在一次次的华山论剑上大放异彩,仿佛你要是不知道最新的SaaS架构,不知道微服务,那你就落后了时代。可惜,好的服务不过是内功心法,如果你的招式太过单一,用户体验不好,就只能表演一下胸口碎大石、银×××咽喉的工夫,行家当然明白你内功深厚一代宗师,可打赏的终究是看热闹的路人甲乙丙丁,用户感官上的体验直接决定了究竟是少林真传大师,还是行走江湖卖艺先生。
桌面客户端仍然是最重要的、复杂度最高的产品。变化纷繁,招式华丽才是广大路人们心中高手的形象,当然也只有程序的UI交互做的好,客户也才愿意买单。
在互联网时代,如何将一个好的idea快速的转化为产品,如何在原有产品中增加新的特性,是产品能够快速的推向市场、快速占领的关键。因此,作为客户端的架构选型,也就面临以下几个方面的需求:
客户端的开发技术/框架,主要以下有几种:
下面分别就这几种开发技术/框架,分析其适用的场景和优缺点:
在桌面客户端开发中,纯Native开发是一直沿用至今,也是使用最多的技术。使用Native开发,能够实现最好的性能,可以比较容易的与第三方的C++应用集成。
优点:
Qt一直以来被许多用户作为跨平台客户端开发的首选,其功能强大、支持的操作系统丰富、与C++结合紧密,其在某些特定领域(如嵌入式领域、军工、安防监控领域等)非常受欢迎。
优点:
从使用的情况来看,Qt作为跨平台的桌面端开发框架,有其有力的方面,但缺点也制约了其快速发展和在客户端开发的大规模使用。
随着PC机不断提升的机器性能以及H5标准的发展,利用JS语言依靠Browser为载体的B/S体系软件,有着很强的交互表现力,使用Html/JS作为UI的开发语言,可以十分高效快速的完成各种复杂界面(尤其是各种动画效果)开发。
随着Nodejs和Chromium的CEF越来越成熟,出现了将Nodejs与Webkit集成的开源框架,比较成熟的有NW.js(前身node-webkit)和Electron(前身atom-shell), 该类型的框架既能使用Html/JS来开发UI界面,又能集成C++库来完成大计算量的任务,使得开发基于Web和Native混合的应用非常方便。
Item | NW.js | Electron |
---|---|---|
Sponsor | Intel | Github |
Project inception | 2011 | 2014 |
Supported System | Windows/Mac/Linux | Windows/Mac/Linux |
Minimum Windows Version | Windows XP | Windows 7 |
Apps build on it | WhatsApp for Desktop, Messenger for Desktop and more | Slack, Atom, Visual Studio Code, Skype and more |
由于集成了Node.js和Webkit,以及丰富的Node.js第三方库,NW.js和Electron提供了完全使用Javascript来开发客户端的能力。只要熟悉前端Web开发,就能迅速开发出与传统客户端相媲美的客户端软件,开发速度和功能都能满足目前互联网时代的要求,大家的前端开发人员储备,海量的Web 框架和UI组件,使得它们成为了目前最炙手可热的客户端开发框架。
Electron和NW.js相比较来说,Electron的发展更快、bug更少、贡献者更多、社区更活跃。参考知乎上的某篇问答: [维护一个大型开源项目是怎样的体验? - zcbenz 的回答](https://www.zhihu.com/question/36292298/answer/102418523) ,根据NW和Electron的作者自己的回答,显然Electron比NW.js更好。如果不考虑支持XP系统,Electron更适合作为客户端的框架。
优点:
Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件(俗称谷歌亲儿子),支持Windows, Linux, Mac平台, 其包含C/C++程序接口,能够完美的与C++库集成,完善的支持Html5 Web页面开发,并且可以通过修改编译选项和源代码后编译的方式来实现剪裁CEF和提供原CEF没有的功能,定制自己的窗口类型。
优点:
在互联网时代,选择一个合适的客户端框架,对于一个产品快速的推向市场,有着至关重要的作用。NW.js、Electron、CEF等Web browser模式的开发框架,能够完美复用现有的Web开发框架和技术,极大的提高开发速度,实现产品的快速迭代、最终实现产品的成功。
我们在2015年初做全时蜜蜂客户端的架构选型时,曾考虑过NW、Electron和CEF三个框架,最终由于蜜蜂客户端要兼容XP、实现透明窗体和集成比较多的C++模块而选择了CEF。事实证明,使用CEF,我们做到了每周发一个小版本、每个月发一个大版本的快速迭代,不间断且快速给客户提供了好用的新功能。而且据笔者观察,钉钉也在最近舍弃了NW换成了CEF作为桌面客户端开发框架。
标签:钉钉 strong shell int 利用 term 资深 大会 提升
原文地址:http://blog.51cto.com/13938401/2167822