阅读更多

本文中,我们将一同看看当今 Web 开发的发展趋势,给大家分享我对 2015 年及未来的一些看法、观察和预测。我从 2000 年就开始做 Web 技术方面的工作,而近几年主要是做云架构解决方案。作为一名 Web 开发者,我曾在 .Net、Node.js 和 Go 技术栈上开发 Web 应用和 Web 服务。最近,我将 Web 技术和开发趋势作为整体研究了一遍,在这里分享一下我的想法和观察结果。

首先,让我分享一些我所观察到的可用性和体系结构目前的趋势。

可用性的趋势

如今,用户体验变得比以往更重要,响应式网页设计(RWD)也成为了网站必备的特性。RWD 能让最终用户在不同尺寸的设备上访问网站,包括手机和平板浏览器。有了 RWD 取代移动网站,我们便无需为移动用户单独开发额外的网站。特别是当我们需要把焦点放到如何呈现内容时尤为有用。但如果你是在开发 Web 应用(包含着大量 UI 交互流程)而不是网站时,RWD 就帮不了你了。记住 Web 应用与网站是不同的。Twitter Bootstrap 与 Zurb Foundation 算是目前最流行的 RWD 框架。如果你要针对移动用户开发 APP 我会建议使用轻量级的框架比如 Yahoo Pure CSS 。

应用程序架构的趋势

企业中的移动优先策略同样影响到了 Web 开发架构。当一个组织在开发 Web 应用与 Web 服务时,他们会以自身的移动策略作为主方向调整。且如今,Web API 已成为 Web 应用和移动应用的中心,开发者会在服务器端建立 RESTful 服务,然后基于 RESTful 服务为 Web 和移动开发前端应用。

API 驱动开发的崛起

在移动领域,API(特别是 RESTful API)已成为 Web 应用的关键部分,而服务器端的实现已变成薄薄的一层,只提供数据和安全相关的 API 。这些 RESTful API 并不受限于 Web 应用,移动应用同样可以使用。所以说现代 Web 开发人员编写的服务器端代码同时用于移动应用和 Web 应用,给予了我们更多的机会。这里的另外一个趋势是移动后端云服务的兴起,如 Parse和 Azure Mobile Services 等的服务(MBaaS)云平台解决方案。这些 MBaaS 平台可针对多种特定移动后端服务的数据模型提供自动的 RESTful API 。我们可以使用 MBaaS 服务开发 Web 应用,因为它们不仅提供 RESTful API ,伴随着移动 SDK 还提供了 JavaScript SDK 用于 HTML5 客户端。未来,我坚信 MBaaS 服务将广泛用于 Web 应用和移动应用。

单页面应用程序(SPA)的出现

当使用 RESTful API 的服务器端受限时,Web 前端开发便迁移到客户端,且浏览器上的类桌面 UI 是在客户端渲染而不是在服务器端。在 SPA 应用中,前端只需简单的调用 RESTful API 传送数据,然后在客户端构建完整的 UI 。这种情况下,JavaScript 便成为构建 Web 应用的关键技术。SPA 应用的一个优势是我们可以使用杂交移动容器(hybrid mobile container)比如 Phonegap 和 Trigger.IO 很容易地将这些 Web 应用打包成移动应用。这种方法可以应付小型到中型基于数据形式 UI 的应用。于是我们就可以用一份代码建立 Web 应用和移动应用了。

在基于 SPA 的 Web 开发中,JavaScript 已成为关键技术,而且 JavaScript 技能也比以前更加重要。我曾接触过不同框架开发过一些 SPA 应用,并在这种模型下注意到了一些难题。如下:

  1. 当我们在开发大规模 SPA 应用时,对比以前的服务器端方式,现在维护应用变得非常困难。我感觉构建大型 JavaScript 应用真的很难去保持可维护性。
  2. 很难在客户端实现复杂的安全模型,对不同类型的授权角色限制不同访问级别的 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(Virtual DOM),这就是 ReactJS 库令人惊叹的部分,它给渲染 UI 带来了高性能的表现。ReactJS 提供了比 AngularJS 与 EmberJS 等 MVC 框架更高性能的 UI 渲染。你可以利用虚拟 DOM 抽象出可重用的 UI 组件,然后在实际的 DOM 上合成这些组件。虚拟 DOM 让你可以利用 React 在浏览器以外构建 UI 。比如 Facebook 的 React 团队搭建了 Objective C 桥,用于在 iOS 应用上构建 UI 。对于扩展前端应用,我们可以对 React 使用 Flux 架构,这是架构的一套基本惯例,提供了单方向的数据流。我已经对 BackboneJS、EmberJS、AngularJS 和 React 都做了评估并强烈推荐你使用 React 构建用户界面。

2014 年服务器端Web技术栈的趋势

几年以前,动态类型语言如 Ruby 和 Python 已经吸引了许多创业公司。直到几年前,Ruby on Rails 真是 Web 开发的一场革命。许多创业公司已经利用 RoR 和 Python Web 框架开发出各种创新的产品。但如今有趣的是,由于性能和可扩展性的难题,这些应用程序正被其它的 Web 技术栈重建。在大型应用程序中使用动态类型语言就像在喝加了太多糖的饮料。开始的时候,糖的甜味会比较吸引人,但长期来看就会伤害到应用程序的健康。今年,我们已经看到很多企业采用 Node.js 尤其是用于构建备受关注的移动应用后端服务。大企业如领英(LinkedIn)和沃尔玛(Walmart)正在使用 Node.js 加强它们的移动后端服务。作为一项新技术,Node.js 真是 2014 年采纳市场的赢家。Node.js 也是移动后端服务(MBaaS)云解决方案的首选技术栈。今年我们也看到许多基于 Node.js 的命令行工具被用于前端开发。Node.js 的崛起与 Ruby 栈的衰落是今年最值得注意的趋势。

这里是一些服务器端 Web 栈的观察结果:

  • Ruby 栈特别是 RoR 正在失去动力且大型 Rails 应用正被重建成其他的技术栈。
  • 使用动态语言(Ruby 和 Python)做 Web 开发已逐渐失去其吸引力。
  • Node.js 更多地被采用到构建后端 RESTful 服务特别是在移动领域。
  • 用于前端开发的基于 Node.js 的命令行工具的出现。
  • 微软 .NET Web 栈和开放规范 OWIN 将发生大转变 – 这实际上对 ASP.NET 和 Node.js 都是好事。
  • 实时 Web 应用的出现

对2015年及以后的预测

哪种技术会称霸 2015 年?哪种技术会失去其势头?我深深地感受到使用动态语言做 Web 开发的时代就要结束了。而 Node.js 会再接再厉在新兴技术市场乘势而上吗?我不这么认为。自 2011 年起我已经主要在写 Node.js 代码并打算为此写一本书,但后来还是放弃了这个计划。最近我已离开了 Node.js 平台,原因如下:

  • Node.js 总被强调是一种用于构建高性能应用程序的技术,但对大型应用来说,它对性能的支持超过可用性和可维护性将是一个最大的难题。所以我预测在近期会有许多大型 Node.js 应用因可维护性问题而失败,过度炒作 Node.js 的时代将会结束。
  • 回调地狱。我知道 generator 和 promise 是解决回调地狱的好方法。Koa.js 之类的框架都是以牺牲性能为代价提供了解决方法。但对我来说依然有许多问题解决不了。
  • JavaScript 语言对我来说也是个问题。JavaScript 并不适合构建大规模的应用程序。
  • Node.js 是一个极简的平台。对我来说,它最好是可以构建基于 JSON 的 REST API 和实时系统。我希望可以利用单一的技术栈开发各种各样的应用程序。但问题是当执行 CPU 运算逻辑(CPU crunching logic)时 Node.js 总是会失败。

我使用 Node.js 的这些问题其他人也会有,在出错处理、调试和可用性上还会有许多实用性方面的问题。我相信可维护性将是大型 Node.js 应用的一个大难题。如果你在 Node.js 上构建 RESTful 服务,我强烈建议你使用沃尔玛开发的 Hapi.js 框架,它真的做得很好。我非常欣赏 Hapi.js 的作者 Eran Hammer 。

在 2015 年我看好 Go 语言,不仅仅是用于 Web 开发,还作为构建分布式应用的一个技术生态系统。对我来说,Go 是比 Node.js 更好的选择。我预测 2015 年许多 Ruby 和 Node.js 开发者会迁移到 Go 。

接下来是我对 2015 年及以后的一些预测:

  • 注重性能的 Web 应用由 Rails 重建到其它栈的做法将达到高峰值。
  • 至少对注重性能的 Web 应用来说,用动态语言做 Web 开发的时代要结束了。
  • 许多 Node.js 应用会陷入可维护性的问题。追求性能超过了可用性和可维护性可能会使 Node.js 失败。
  • Go 将作为一种通用的编程语言出现,吸引着 Web 开发者社区。Go 会很好的替代 Java 与动态语言还有 Node.js 社区。
  • Go 将继 Cobol 和 Java 成为下一代企业大范围使用的语言,但还需要时间。Go 是云时代的语言。
  • Java 与 .Net 栈将会继续其中、大型企业应用的势头,但会慢慢地在 Web 开发中没落。

Go:2015 及未来的技术

最近出现了许多用Go开发的优秀应用,包括DockerPacker.IO 。我预测Go将会在各种不同的社区中产生巨大的吸引力,包括 Java、Ruby、Python 和 Node.js 。Go 是静态类型语言却提供了动态类型语言生产力的灵活性。在Go语言中,并发性是核心编程语言的一等公民。类似 C 和 C++,Go编译成原生机器码;而不像 Java 和 .Net ,它不需要任何JIT 编译。我爱上了 Go 的简单性、实用的设计和相当好用的包系统。也许它不适合构建传统的Web应用,但绝对适合做提供 RESTful 服务的 HTTP 服务器。在未来,你也许还可以用 Go 开发 Android 应用。Go 的优势是它是一种通用编程语言,可以用于任何可能的场景 – 包括系统编程和大型分布式商业应用。我强烈感受到 Go 是属于云时代的分布式、并发、并行计算的语言。Go可以在企业中成为下一个 Java 。

 

英文来自:shijuvar

本文由伯乐在线 Jaward华仔翻译

来自: 伯乐在线
7
0
评论 共 6 条 请登录后发表评论
6 楼 zoutuo1986 2014-10-21 10:38
工具,技术是死的。人和开发过程中出现的问题是活的。
5 楼 zicjin 2014-10-17 21:54
看了一下原文,翻译完全错误:
Microsoft .NET Web stack is going to a big paradigm shift with open specification OWIN

原意是:.NET Web技术栈将向 OWIN开放规范 大举转变。
OWIN怎么可能会有大转变。
4 楼 zicjin 2014-10-17 21:43
微软 .NET Web 栈和开放规范 OWIN 将发生大转变。不知道这句话具体指什么转变
3 楼 hantsy 2014-10-14 23:13
Go 从语言排行榜上升很快,另外 Google 的 Dart 也上升趋势。
2 楼 kuchaguangjie 2014-10-13 15:39
任何语言都只是工具而已, 并且 越上层 就 越只是个工具, go 也一样. 不用盲目去学习使用新工具, 要实际应用价值才学得有意义.
1 楼 yangzhanchun 2014-10-12 12:13
最后的结论就是go吗

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Web 开发在 2015 年及未来的发展趋势

    Web 开发在 2015 年及未来的发展趋势 2014/10/07 | 分类: WEB前端, 开发 | 3 条评论 | 标签: GO, NODE.JS, RESTFUL, SPA, WEB开发 分享到: 74 本文由 伯乐在线 - Jaward华仔 翻译自 shijuvar。未经许可,禁止...

  • 低代码是开发的未来吗?浅谈低代码开发平台的发展现状及未来趋势

    这篇主要来谈谈低代码是怎么一步步影响着我们的生活,...要知道,即使非常专业的开发者,在的趋势下(前端/后端/算法/运维)企业也很难做到。而低代码可以通过统一语言来减少业务和技术人员的沟通成本,使得这才是。...

  • 分析 BAT 互联网巨头在大数据方向布局及大数据未来发展趋势

    而我们作为大数据的践行者,在这个“多智时代”如何才能跟上大数据的潮流,把握住大数据的发展方向。 前言 大数据起源于2000年左右,也就是互联网高速发展阶段。经过几年的发展,到2008年 Hadoop 成为 Apache 顶级...

  • vs2015 开发软件_2015年重要的软件开发发展

    vs2015 开发软件 这篇文章是我对2015年与软件开发相关的一些... 与前几年的评估一样,此评估对2015年软件开发的主要发展的评估显然是有偏见,有根据的,并且仅限于我的观点。 10.物联网 物联网的概念已经流行了很...

  • 2015年重要的软件开发发展

    这篇文章是一些在2015年我前几年的评估与软件开发有关的最显著开发商可用于我个人的,自以为是的评估2014 , 2013 , 2012 , 2011 , 2010 , 2009年 , 2008年和2007年 。 与前几年的评估一样,此评估对2015年软件...

  • Web前端HTML5未来发展和学习内容方法

    接触互联网很多年,现在是做在线教育的讲师,学习JAVA,学习前端都要将近十年的时间,到了2015年的时候互联网成为了“国家战略”而到了2017年互联网进入了“超速发展期”现在很多行业的工作人员向转行做HTMT5工程师...

  • 全面解读 Java 现状及未来发展趋势

    很多同学都是看到互联网行业的高薪,脑子一热就转行报班参加培训等等,建议大家不仅要全面了解自己的学习情况,还应该多看看互联网行业的前景和发展趋势。 毫不惭愧的说,这份中国区的 Java 发展趋势报告无论是参与...

  • Web开发会不会退出历史舞台?

    早在 PC 崛起之际,Web 从蹒跚学步一路走到了主导市场的...如果我们暂时将浮华耀眼的黑科技搁置一边,过滤掉不可企及的未来主义想法,比如太空旅行、自动驾驶汽车等,那么你会发现,最受关注的技术将与Web开发有关。...

  • 2015年软件开发的4大重要发展趋势

    在过去,软件和硬件开发是两个独立的项目,使用不同的技能系列。但是今天,硬件开发通常也需要某种类型的软件功能,例如远程接口。 在CEA2014创新讨论大会上软件和硬件的结合成为了舞台的焦点。在“The Keys to ...

  • 2015年web前端7个发展趋势

    摘要: 2015 年 7 个重要的 Web 设计趋势:Web 设计趋势每一年都会有所变化。但设计师的创意天赋是推动改变网页设计标准的法则。设计师负责将创意转化为趋势、趋势转变为标准。 ... ... ...

  • Web3 游戏发展趋势的 5 个预测

    Web3 游戏发展趋势的 5 个预测

  • 2015年7个重要的Web设计趋势

    如果在2015年,网页缺少以下7个设计元素,必定被淘汰~ 1、排版更灵活 这部分的主要焦点在于,字体展现会受到新兴排版原则影响。事实上,网页字体和打印字体还是有很大不同的,在2015,我们会摆脱过去将文本挤...

  • 2018年中国互联网婚恋交友行业发展现状分析及未来发展趋势预测【转】

    2018年中国互联网婚恋交友行业发展现状分析及未来发展趋势预测【图】 (一)行业概况 1、互联网婚恋交友服务分类 互联网婚恋交友指交友双方在互联网上以交友或达成婚姻关系为目的而进行的一系列查看个人资料、...

  • “重构训练”模型的未来发展趋势和挑战

    20世纪90年代末期,在加速发展经济的同时,大量的创新活动产生了巨大的社会影响。然而,创新活动面临着诸多不利因素,其中一个最大的问题就是创新者对自己所处的环境缺乏适应性。随着时间的推移,由于知识的不断积累...

  • 前端的发展和未来趋势

    前端技术的发展日新月异,过一段时间就会出现新的框架、工具、插件,伴随着十几年的发展,前端领域已经告别了野蛮生长的时期,越发表现出成熟和现代化,引领了整个技术行业的潮流,那么让我们在文中过一遍前端发展中...

  • 2015年web开发的预测。。go语言

    本文中,我们将一同看看当今 Web 开发的发展趋势,给大家分享我对 2015 年及未来的一些看法、观察和预测。我从 2000 年就开始做 Web 技术方面的工作,而近几年主要是做云架构解决方案。作为一名 Web 开发者,我曾在 ...

  • Web开发技术十年发展历程

    回顾web开发技术这十年发展历程: Ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时...

  • php 移动开发 优势,2019年的web五大开发优势总结

    2019年的web五大开发优势总结发布时间:2019-11-01 15:13来源:互联网当前栏目:web技术类如今,随着各种新趋势的层出不穷,Web和移动领域的创新不仅改变了人们、乃至整个社会的日常行为习惯、以及业务处理方式,...

  • YOLO算法-数据集数据集-330张图像带标签-椅子-书桌.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

  • java毕设项目之ssm蜀都天香酒楼的网站设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

Global site tag (gtag.js) - Google Analytics