我们一同看看当今Web开发的发展趋势,给大家分享我对年及未来的一些看法、观察和预测。我从年就开始做Web技术方面的工作,而近几年主要是做云架构解决方案。作为一名Web开发者,我曾在.Net、Node.js和Go技术栈上开发Web应用和Web服务。最近,我将Web技术和开发趋势作为整体研究了一遍,在这里分享一下我的想法和观察结果。
首先,让我分享一些我所观察到的可用性和体系结构目前的趋势。
可用性的趋势
如今,用户体验变得比以往更重要,响应式网页设计(RWD)也成为了网站必备的特性。RWD能让最终用户在不同尺寸的设备上访问网站,包括手机和平板浏览器。有了RWD取代移动网站,我们便无需为移动用户单独开发额外的网站。特别是当我们需要把焦点放到如何呈现内容时尤为有用。但如果你是在开发Web应用(包含着大量UI交互流程)而不是网站时,RWD就帮不了你了。记住Web应用与网站是不同的。TwitterBootstrap与ZurbFoundation算是目前最流行的RWD框架。如果你要针对移动用户开发APP我会建议使用轻量级的框架比如YahooPureCSS。
应用程序架构的趋势
企业中的移动优先策略同样影响到了Web开发架构。当一个组织在开发Web应用与Web服务时,他们会以自身的移动策略作为主方向调整。且如今,WebAPI已成为Web应用和移动应用的中心,开发者会在服务器端建立RESTful服务,然后基于RESTful服务为Web和移动开发前端应用。
API驱动开发的崛起
在移动领域,API(特别是RESTfulAPI)已成为Web应用的关键部分,而服务器端的实现已变成薄薄的一层,只提供数据和安全相关的API。这些RESTfulAPI并不受限于Web应用,移动应用同样可以使用。所以说现代Web开发人员编写的服务器端代码同时用于移动应用和Web应用,给予了我们更多的机会。这里的另外一个趋势是移动后端云服务的兴起,如Parse和AzureMobileServices等的服务(MBaaS)云平台解决方案。这些MBaaS平台可针对多种特定移动后端服务的数据模型提供自动的RESTfulAPI。我们可以使用MBaaS服务开发Web应用,因为它们不仅提供RESTfulAPI,伴随着移动SDK还提供了JavaScriptSDK用于HTML5客户端。未来,我坚信MBaaS服务将广泛用于Web应用和移动应用。
单页面应用程序(SPA)的出现
当使用RESTfulAPI的服务器端受限时,Web前端开发便迁移到客户端,且浏览器上的类桌面UI是在客户端渲染而不是在服务器端。在SPA应用中,前端只需简单的调用RESTfulAPI传送数据,然后在客户端构建完整的UI。这种情况下,JavaScript便成为构建Web应用的关键技术。SPA应用的一个优势是我们可以使用杂交移动容器(hybridmobilecontainer)比如Phonegap和Trigger.IO很容易地将这些Web应用打包成移动应用。这种方法可以应付小型到中型基于数据形式UI的应用。于是我们就可以用一份代码建立Web应用和移动应用了。
在基于SPA的Web开发中,JavaScript已成为关键技术,而且JavaScript技能也比以前更加重要。我曾接触过不同框架开发过一些SPA应用,并在这种模型下注意到了一些难题。如下:
当我们在开发大规模SPA应用时,对比以前的服务器端方式,现在维护应用变得非常困难。我感觉构建大型JavaScript应用真的很难去保持可维护性。
很难在客户端实现复杂的安全模型,对不同类型的授权角色限制不同访问级别的UI。
我对SPA框架的意见
目前AngularJS、EmberJS和Backbone是实际使用中最受欢迎的几个SPA框架。我对这三个框架做了评估并使用其开发过应用。根据我的经验,AngularJS是产能最高的框架,具备构建大型SPA应用所需的特性。依愚人之见,使用MV*框架做前端开发并不是一个好方法,MVC不适合大型前端应用。但如今我们在服务器端和客户端都使用MVC,我不认为这是最佳实践。
ReactJS–令人惊叹的前端框架
当大多数SPA框架依然在使用传统的MVC模型时,ReactJS为客户端构建UI提供了一种不同的方式。React是由Facebook和Instagram团队开发的JavaScript库,目的是用来构建用户界面。Instagram网站的整个前端和Facebook网站的一部分都是用ReactJS构建的。有趣的是,你可以与其他的前端框架如AngularJS和EmberJS一起使用ReactJS。你可以将ReactJS作为MVC框架的视图层。但是在实践中,我不建议在传统的MVC框架上使用ReactJS。ReactJS引入了虚拟DOM(VirtualDOM),这就是ReactJS库令人惊叹的部分,它给渲染UI带来了高性能的表现。ReactJS提供了比AngularJS与EmberJS等MVC框架更高性能的UI渲染。你可以利用虚拟DOM抽象出可重用的UI组件,然后在实际的DOM上合成这些组件。虚拟DOM让你可以利用React在浏览器以外构建UI。比如Facebook的React团队搭建了ObjectiveC桥,用于在iOS应用上构建UI。对于扩展前端应用,我们可以对React使用Flux架构,这是架构的一套基本惯例,提供了单方向的数据流。我已经对BackboneJS、EmberJS、AngularJS和React都做了评估并强烈推荐你使用React构建用户界面。
年服务器端Web技术栈的趋势
几年以前,动态类型语言如Ruby和Python已经吸引了许多创业公司。直到几年前,RubyonRails真是Web开发的一场革命。许多创业公司已经利用RoR和PythonWeb框架开发出各种创新的产品。但如今有趣的是,由于性能和可扩展性的难题,这些应用程序正被其它的Web技术栈重建。在大型应用程序中使用动态类型语言就像在喝加了太多糖的饮料。开始的时候,糖的甜味会比较吸引人,但长期来看就会伤害到应用程序的健康。今年,我们已经看到很多企业采用Node.js尤其是用于构建备受白癜风效果北京有治疗白癜风的医院吗