网站开发的发展趋势

Web开发的发展方向

更多单页站点

现在不流行那种有各种 tab 页和许多子页面的网站了。由于用户更喜欢用滚屏方式浏览网页,各公司将会引起重视并停止浪费时间在设计和开发用户不喜欢的层层相套的子页面上。这一趋势将简化互联网并带来更迷人和身临其境的网页浏览体验,每个人都会感觉到愉悦。

更多使用快速原型开发工具

“UXpin、Webflow、Invision 以及其它许多快速原型开发工具,让设计师不用写一行代码,就能为网站和服务快速创建低保真和高保真原型,便于设计师衡量它们的可用性和美观性。” web 设计师 Jamie Leeson says 如是说,“许多工具也允许你在浏览器中设计原型并从工具里真正启动网站自身。”

快速原型工具的一个优点是它们能让开发者/设计师与最终用户同时获益。双方能够提前对产品页面和交互达成一致,避免了最终交付的产品和用户预期的不符。

更加移动优先

响应式设计显然是目前 web 开发领域的主要趋势之一,并且这一趋势还将持续一段时间。虽然现在的响应式设计大部分还是以 PC 版优先,然而,如果有一天我们把 PC 版放到比移动版次要的位置上,也没什么好奇怪的。许多 web 开发者已经开始转向以移动优先方案来做他们的响应式设计和开发。

更加重视人工智能

你已经听说了人工智能(AI),但是你对 web 设计和开发中的人工智能熟悉吗?在 2017 年,我们期待 web 与 AI 的碰撞,带来更强大的网页,为网站主和用户同时带来价值。

提供网络主机服务的 Wix,是这一领域的领头羊。他们现在提供了一个过程来询问用户一些问题,然后使用一个基于 AI 的平台根据用户的回答提供给用户最符合他们需求的 web 设计。这非常酷,值得一看。

简化的 Web 设计

虽然页面上留白将继续被认为是有价值的,但是也不用奇怪有些网站开始回归到使用基于文本内容的文字填充。你可以找到更多类似于这样的网页,它们合理地结合了留白和文本,创造出一个视觉上简单,而信息内容很丰富的网页,也带给用户很好的体验。

虚拟现实

我们已经看到一些公司比如 Mozilla 和 Google 投资开发 VR 与 Web 之间的 API。越来越多的 VR 应用程序将在接下来的几个月里相继问世,所以如果看到越来越多的虚拟现实元素出现在 Web 上,也别觉得奇怪。

技术方向 – 前端

AngularJS

首创的双向数据绑定, 以及内置的模块注入, 以及组件化的支持, 种种优势, 使得它迅速发展起来. 在 2014-2015 年, 有调查显示, 在使用了前端框架的项目, 有 50% 以上采用了 AngularJS. 但到底值不值我们继续学习, 我们再接下来看.

项目地址: https://angularjs.org/

EmberJS

受 Rails 全栈框架的启发, EmberJS 逐步发展成前端领域的另一个 “Rails”, 成为另一个独特的选择, 理论上, 你选择了 EmberJS, 就选择了一个完整稳定的生态, 不用再折腾的轮子. EmberJS 不仅全面支持模块化, MVC, 也实现了类似 AngularJS 的双向绑定( 当然原理不同 ), 甚至还做到了内置的打包和发布应用功能. 总而言之, 它是一个十分全面的前端框架. 事实上, 如果说 AngularJS 是当前短暂的前端史的一个高峰, 它就是另一个高峰. 但最近, 人气有一定的下降, 原因何在, 我们再分解.

项目地址: http://emberjs.com/

 

ReactJS

ReactJS 自发布之始, 就人气很高, 它是第一个采用虚拟节点( virtual dom )技术的框架, 通过这个技术点, 它独创性地整合了函数性编程的理念, 采用单向数据流来设计 dom 渲染与比对, 使得它轻量和灵活, 事实上, 它本身只专注于如何渲染 UI, 也不与 AngularJS 和 EmberJS 有冲突. 换言之, 你可以将它整合到其他框架中.

随着 ReactNative 和 Redux 方案的出现, ReactJS 重新回到前端的浪尖, 因为其简洁优雅的实现和对 Native APP 的冲击, 又一次成为新的弄潮儿.

项目地址: https://facebook.github.io/react/

流行不一定是发展最快, 我们再来看看近二年发展最快的几项前端技术栈:

ReactJS

上文已经提到, React 由于本身的简洁性和对组件化专注的实现, 一直没有被新的 ES6 标准和前端思潮落下, 它几乎不受 ES6 的影响, 以及前沿性的支持 native app 开发( 通过 ReactNative ), 所以一直发展趋势良好.

而 AngularJS 则不一样, 由于 ES6 的发布, 使得它的依赖注入特性成为鸡肋, 以及 AngularJS 第一版对组件化支持的蹩脚实现( 能支持是一回事, 好用是另一回事 ), 而组件化则学习成本过高, 过于复杂, 所以 AngularJS 决定推翻设计重新开发第二版, 而第二版过于激进的采用 Typescript, 完全不兼容的第一版的设计, 以及各种魔法的应用, 使得它离前端越走越远.

VueJS

VueJS 是近二年的新秀, 它起步之初, 只是一个简化版的类似于 AngularJS 双向绑定的实现的研究( 当然原理并不同 ). 但其理念与 ReactJS 相近, 只是专注于实现数据绑定, 模块化与组件化, 所以足够的简单灵活.

随着生态的快速发展, VueJS 正好接了 AngularJS 第一版的班, 又改良了 AngularJS 的错误设计( 事后来看, 依赖注入与组件化两部分是比较失败的设计 ), 整体发展迅速, 逐步成为后起之秀.

项目地址: http://vuejs.org/

MeteorJS

MeteorJS 本不适合与上述几个前端框架比较, 因为它实际是一个全栈框架, 更像 Rails 这种角色, 但由于它是纯 Javascript 的方案, 所以还是放在这里.

如果说上述前端框架都是解决前端工程化的产物, 那 MeteorJS 是一个颠覆思维的 web 开发框架, 它将Javascript 同构技术应用到极端, 再整合 websocket 进行实时数据通知与热代码更新, 不同于前后端分离的理念, 它在开发者角度完全没有前后端的概念, API 既在前端又在后端, 再加它全生态的支持( 移动 app 支持, 应用发布), 也是一个全新的视角, 由于它发展速度极快, 所以列在这里.

项目地址: https://www.meteor.com/

各大框架都在迅速发展中, 它们有几个共性的发展方向:

ES6 支持

每一次 Javascript 的新标准发布, 都是各大框架更新的好机会, 所以 ES6 是肯定得到各大框架的良好支持, 建议大家一定要学好.

web 组件化

毋庸置疑, 组件化是现代前端工程化中极为重要的特性, 甚至 google 还专门出了 Polymer 这个只做组件化实现的框架. 所以每一个够格的前端框架都非常重度支持它. 同时, 组件化也将作为 w3c 标准予于定义, 所以前端框架仍将不留余力地改进与标准的兼容.

Server-side Render

服务端渲染技术是 2016 年才开始火的概念, 它与传统的后端渲染不同, 为了解决前端框架第一次加载慢的问题, 以及 SEO 问题, 而提出的解决方案. 之前有 prerender, 现在各大框架都在尝试在内部集成并支持它. 但我个人觉得, 带来的问题远比解决的问题更多, 比如要求我们开发的时候有更多的限制.

App Render

现在有一种大前端的概念, 可以理解为 web 前端对 App 开发的支持, 包括 Ionic ( 基于 AngularJS ), React Native( 基于 React 理念 ), Meteor 都是针对 App 开发的痛点而生.

相关文章