技术 | 盘复最近的前端专业技术讨论

1,200 阅读4分钟
原文链接: mp.weixin.qq.com

今天写了一天的Objective-C代码,满脑子里是 [ NSString copy ] 这样的符号。本来没什么想分享的,后来想了想还是要盘复一下最近的一些专业亮点。至少了解了下,不是么?


有幸加了一个“前端”大牛比较集中的微信群,偶尔看看Vue的作者尤讲讲东西,或者听听贺老分享分享观点。话说最近“跳槽季”到来,池老湿还专门写了篇文章《你是不是该跳槽》来说说这“杨花满天飘”的三金四银。而且今天还有一场winter老湿的《一线大厂如何面试前端工程师》,讲的内容都挺棒的,不仅仅是前端这个岗位适用。


最近前端我听到讨论最多的三个技术点是PWA,Webassembly字节码技术和Weex,虽然前两个技术点早之前就已经存在,而且Google开发者网站还专门针对PWA写过东西。不过听到热烈讨论的时候,还是最近,黄老湿的一文推了一波。


PWA解决的痛点其实和Webassembly,Weex都非常的类似,它们能够显著的提升应用的运行速度,只是处理的方向不一样。


我们知道从HTML5开始,Web技术显著的在增强,当这一系列的关键技术的出现,组合起来,终于让我们看见了解决Web移动应用的蹩脚之处。如果我们要使用Web技术来开发移动应用,从App的形态上来说,我们欠缺很多东西,比如可以在主屏幕打开移动应用,应用可以全屏打开,应用可以离线访问,Push推送,通知等等。这些东西基本上在以前就是App独有的一个形态,而现在PWA的出现,从侧面杀入了App形态领域。我们可以用Service Worker来离线Web文件,我们可以让Web应用像App一样添加到桌面等等。PWA并不是具体的技术,而是一篇多种技术组合在一起的解决方案,足够让我们多思考思考应用形态的问题了。


Webassembly让我想起来了比较失败的asm.js,这是火狐社区提供的一套类似Webassembly字节码技术方案,不知道未来前景究竟会如何,不过它的应用场景还是很可观的。


它愿景:


“Define a portable, size- and load-time-efficient binary format to serve as a compilation target which can be compiled to execute at native speed by taking advantage of common hardware capabilities available on a wide range of platforms, including mobile a”


想想可以发挥通用的硬件性能和原生应用的运行速度,这个收益还是值得去了解一下的。


至于Weex在加入了Vue2.0之后,看起来竞争力很可能会涨一波,一个可以运行三端的引擎,对于商业公司在成本上,是很有竞争力的。而且,搭上Vue火热的这一波之后,至少在国内还是能很有影响力的。说到Weex其实我想到的不是React Native反而是微信小程序。虽然小程序火了一波之后,现在慢慢沉寂了下来。不过,我很钦佩小程序的那帮人,探索了一个不同的应用形态,还是用Web技术实现了出来。


市场上Hybrid发展这么多年,出了RN,又Weex,大家都在考虑如何使用Web技术把移动应用做的更好。而移动应用发展了这么多年,App的形态多数都已经固化了下来,一个App如果没有点Push都不好意思说这是一个移动应用。微信小程序可能就是一种App形态的探索,通过Web技术,看看能玩到什么程度。以前我是很难想到,Web技术还可以用如此桥接的方式来展现应用。用安卓来描边之后,能明显的发现其内容还是一个WebView,而其JS逻辑通过一个独立的JS运行引擎(JavaScriptCore)来让逻辑与样式彻底的分离,想一想,为什么小程序不能使用浏览器的方法,比如window,document,而且也不允许跳转链接,这就是“创造”了一种应用形态。


探索总是会阵痛的,创造肯定比Copy要复杂的多。




更多精彩内容可关注我的个人微信公众号:搜索fed-talk或者扫描下列二维码,也欢迎您将它分享给自己的朋友。