回顾 2016html
iOS 和 Android 系统不约而同窗习了对方的优势,长得愈来愈象:3D touch、权限控制、夜间模式、电话防骚扰... 本来属于桥的两侧的开放与封闭,愈来愈往一个中心靠;由此看来,真正在 OS 里的应用 App 才是系统的灵魂。前端
像「微信」,不论你用 iOS 仍是 Android,不少人日常耗电量最多的 App 就是它。而微信借助大量的用户与使用时长,也在 2016 年底期,推出了「小程序」的内测,继续百度「轻应用」未完成的使命,在微信应用里再打造一个「小程序」生态市场。android
而在微信发布「小程序」以前,Google 也在本身今年的 IO 大会中提出 PWA(Progressive Web Application),推进 Web 应用向前一步,在 Chrome 里完成用户按需使用,无需安装(还可将资源离线),还有着相似客户端的高性能体验,还有桌面添加快捷方式等功能。在离线技术上用 Service Worker 来作离线化,相比以前的 App cache 更灵活高效。PWA 这项技术实际是与 Android 的 App 理念是有相应冲突的,它的将来如何还要看将来 Android 与 Chrome 如何整合吧。数据库
Android Stdio 2 出现了 Instant Run 特性,美团以此为基础推出了「Robust」的热修复技术(http://tech.meituan.com/android_robust.html), 解决了原来热修复上方案的兼容性问题。小程序
Google 除以上外,还联合了 Microsoft,Mozilla ,Apple 几个主要浏览器厂商发起了一个面向 Web 的通用二进制和文本格式项目,它是 Web 上 JavaScript 有效补充,在本地解码速度比现行 JS 解析要快得多。若是这一标准能普遍实施将影响全部 Web 开发者。后端
Apple 也没闲着,在 WWDC 2016 上宣布,Apple 在 iOS 上 的 ATS (App Transport Security)策略,将在 2017 年 3-4 月左右(原计划是 1 月 1 号),非 HTTPS 的网络请求将被禁止。浏览器
客户端咱们能够不用 HTTP 协议,走自建长链或自定义应用层协议,在 WebView 里 HTTPS 则是绕不过的槛,也就是说,大多数 Web 站点将必须由 HTTP 迁移到 HTTPS。安全
在网络基础设施上还不及欧美的国内, 因为 DNS 劫持与代码注入,迁至 HTTPS 将遇到证书错误,形成原来只是注入代码变成页面不可访问,最终致使 HTTP 请求成功率下降。除此以外,HTTPS 因增长了安全证书验证与加密,相比 HTTP 请求时延增加,影响加载页面性能和用户体验。前端框架
HTTPS 的推动一方面对安全是好事,也对 Web 上普及 HTTP2 推动起到很大做用;另外一方面对广大的中小站点来讲换 HTTPS 真是耗不起。而如今,各大互联网公司都在忙着切协议了。微信
iOS 相比 Android 的环境,让人头疼的是没有出现相似 Class Loader 的动态插件化技术。就在年末的前几天,滴滴来了个大新闻,出了一个 DynamicCocoa 技术,它是流行的热修复方案 JSpatch 的「升级版」,实现 oc 与 JavaScript 广义互调,实现插件化。再也不上架 Appstore 就实现功能更新,至关让人期待。若是坑真的已被踩完,颇有可能 Apple 将中止动态利用 JavaScript Core 来运行代码的这个机制。
Web 框架上,从 Google 查询关键字的大势看,jQuery 时代已慢慢离咱们而去。Web 前端框架已基本三足鼎立,分别是 React / AngularJS / Vue。让人想不到的是 AngularJS 查询指数最多的地区不在欧美,也不是中国,而是在「印度」。
如图:
不论是 Web,仍是客户端,都不一样程度遇到业务愈来愈复杂,代码量愈来愈大,编译性能愈来愈慢的问题。国外大厂们用以前服务端的分布式编译思路拓展到客户端实现了并行编译。Google 的 Bazel,Facebook 的 Buck,在很大程度上提高编译效率;Web 咱们也作过相似尝试,能提高约 40% 左右的性能。并行编译这都是针对大厂复杂业务的方案,对于我的开发者与创业公司来讲,这些都不是工程化中的最大痛点。
Web 开发中,Node.js已在驱动先后端的再分工,这已经是事实。而 Node.js最火的地方在哪?中国。也得益于知乎与一些技术论坛的热炒,如今不论在哪一种场合,都在说「先后端分离」这事。事实上这谁都都有本身的理解方式,真正应用 Node.js 在前端与后端的从新分层,有轻如用它只作数据 IO 的 API,也有重如创业公司从业务到数据库链接全是 Node.js 的。前端向后端渗透,后端再后移,具体怎么分,没有定论。
最后总结一下「跨端」,它在今年是「百花齐放」。
跨端技术今年已再也不去谈论 Hybrid 技术了。离线化、差量更新、Web 与端互调等能力已不是什么新鲜事,说明混合开发已基本成熟,在各大厂均有较为普遍的使用,若是还没作的,也在补齐当中。
新的技术是:React Native、Weex,还有 PWA、小程序,甚至还有 Electron。我向培训行业的人了解过,今年 Android、iOS 的培训人数在减小,而以 Web 技术栈的培训中心的前端生源一直没减,这充分说明市场对这块技术人材的渴求。
展望 2017
经过简单梳理完 2016 的前端技术以后,能够总结出 2017 的一些趋势。我也简单列举本身关注的几点:
iOS 动态插件化技术。特别是 iOS 上的插件化技术期待可以获得更大的发展,来解决目前发版效率与包大小问题。
Google 一边是 Chrome 的 Web,另外一边是 Android 的 App,我很期待的是 Chrome 与 Android 融合以后对开发的影响。
Web 框架层面明年难有创新,中期还还是 React/AngularJS/Vue 三驾马车的技术栈体系,但我仍期待是否有超越 React 的模板/框架思路。
HTTP 到 HTTPS 的更替将会推进 HTTP 2 的使用。让 Web 页面性能十年以来以请求数为首要基准成为过去式。为应对 HTTPS,部分云计算厂商能够提供整套移动端商业解决方案,如:长链透传收费服务和 HTTPS 套装。
跨端上 React Native 与 Weex 着重于解决跨端技术问题,并不能给开发者带来实实在在的收益。PWA 还谈之过早,因此我更看好小程序将来的发展,并非技术上如今有多牛,而是在微信它是能给我的开发者和 Web 从业者带来就业机会与收益的最佳方式。脑洞大一点的看,支付宝、Facebook、小米是否也会会推出本身的「小程序」场景呢?是件使人期待的事。
前端的春天
不论是 Web 前端、iOS,仍是 Android,对大前端工程师来讲,这是最好的时代。放在几年前 1/3 是大前端,2/3 是后端。而如今则是一半以上是大前端的人,这充分说明大前端的重要性。
Web 前端的工程师在问将来在哪里,Android 和 iOS 的工程师也在说 Web 前端抢了他们的饭碗。出口在哪?除了向 NodeJS 向后端的渗透以外,跨端的学习,专一一端技术,关注其余端的技术也是一种出路。如今业务中遇到的问题常常是三端参与,你能够想象当开一个业务会议,后端一个工程师参与,前端一去就三人的感人画面吗?
跨端技术,只是大前端开始。端与端技术之间相互学习和借鉴,这将成为将来前端技术最重要的创新来源。