JavaScript 2016 年后 Web 开发趋势是什么

lyfi2003 · 2016年05月03日 · 最后由 sec 回复于 2016年08月16日 · 30316 次阅读
本帖已被管理员设置为精华贴

Rewriting your Frontend Framework every six week !!!

写给 Rails 圈子的话

大家都在关心前端是否对 Rails 产生冲突,甚至有人说 Rails 在前端已经走入死胡同,到底前端是怎么样?会怎么发展?以 Rails 工程师的角度来看看。

近二年的进展

前端发展日新月异,甚至有一句戏言:"每六星期重写一个前端框架", 行业是像火箭一样,但我们前端工程师该何去何从呢?

我们来谈谈这个问题。

先来看看最流行的几项技术栈:

  • 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 开发的痛点而生。

分析了众多目前最流行的前端框架,大家可能越来越胡涂了:

到底谁才是最值得我们去投入的技术呢?

接下来,我们去掉一堆术语,来从前端的定义本质来看它的发展。

近二年本质的演进是什么

前端就是面向用户这一端的技术,然而,随着时代的发展:

  • 用户体验要求越来越高 ( 加载速度快,响应快,无闪烁 )
  • 前端需求越来越多
  • 前端代码越来越庞大
  • 移动端快速发展对 h5 前端的需求

而 jQuery, ProtoypeJS 等只解决了 Javascript 工具库的问题,但工程化需求无好的解决方案。

前端工程化迫在眉捷。而且有以下要求:

  1. 最好是纯 Javascript 方案
  2. 支持模块化
  3. 业务代码与框架代码分离
  4. 可测性

于是,产生了几种不同的演进方案。

后端渲染技术:

ajax -> pjax -> sjr ( 需要服务端提供支持 )

后端渲染技术很快就发展到顶了。但技术理解还是足够简单的。我们还是回到前端框架上。

NodeJS, AMD(CMD), ES6 的出现,使得组织起一个前端框架成为现实。于是乎,百团大战,出现了上面众多框架混战的画面。

无论是 AngularJS, EmberJS, ReactJS, VueJS 都是围绕着这几点进行的不同的尝试。

但结果如何,我们站在一个更高的高度重新思考 web 开发。

真正的用户市场需要什么

对用户

  • 更快的响应速度
  • 更好的体验

对开发者

  • 更快的开发速度
  • 更好的可维护性

再次思考,我们要不要前后端分离?哪些前端框架更满足我们以上的条件?

作为 Rails 工程师,我也一直在思考一个问题:Rails 是否在前端上走上了绝路?

对于不熟悉 Rails 的朋友,我还是简单回顾下 Rails 的前端是什么:

  • jQuery
  • UJS
  • Assets pipeline
  • SJR( 服务端 JS 生成技术 )
  • Turoblinks( 一种极小成本实现的单页效果的技术 )

相比 php, java, python 等语言下的传统 web 框架来说,Rails 的前端技术还是非常丰富的。

关于各个框架我列了一个分数比较,10 分为满分,每个列会加在一起算成一个总分。

从上表可以看出:

Rails 这类的全栈框架特点有

优势:

  • 开发效率极高
  • 通过 Turoblinks 技术,体验也不错。
  • 也能支持混合应用开发

缺点:

  • 前端代码可维护差

ReactJS 学习成本较低,通过 webpack 与 npm 的配合,能够达到不错的可维护性,但开发成本偏高,这也是组件化的缺点之一。

而 EmberJS 学习门槛过高,而且 EmberJS 发展也比较迅速,不利于学习掌握,相对而言,总分也不会太高。

MeteorJS 也被我列在这里,总分最低,所以仍然不推荐学习,除非你的应用属于实时应用。

我们再重新思考组件化,组件化优势在于接口清晰,可维护性高,但开发成本是比较高的,前端属于工程而不是科学,所以,我觉得组件化是对的,但不要过于极端把所有的 dom 都组件化。

而且,组件化也对现有的基础技术栈进行了破坏。

通过以上的分析,我们基本上了解了现有技术栈的情况。那我们该继续学什么?这才是本文的重点。

所有的一切,都是围绕着组件化,可维护,高效开发,移动支持而生,而它们的核心都是还是最基础的东西:

  • Javascript ( ES6, NodeJS )
  • HTML
  • CSS
  • API

一句话,还是应该先把基础打好。

基础技术栈

应当好好掌握的内容:

  • Javascript 语言 ( 直接看 ES6 相关的 )
  • NodeJS 生态 ( npm 与相关的包 )
  • webpack ( 了解如何打包,发布 )
  • HTML ( 尤其是 form 标签,以及 HTML5 的内容 )
  • CSS ( 学习盒模型,最新的 flex 布局,以及 CSS3 )
  • API ( 掌握如何开发 API )

你必须是前端工程师,同时又是后端工程师,才能真正摸清晰当下时代的发展,成为弄潮儿!

预测未来

首先,我在 2014 年分析 web 开发的文中提到的 gulp, grunt 都已经成为过去式了。Bower 也已经有点不合事宜了。

目前前端构建建议使用 webpack 和 npm 足够,不需要更多的工具链,应该越简单,越顺手!

列几个关心的问题尝试预测一下

  • NodeJS 做后台开发怎么样 ?

    NodeJS 已经是前端框架的一部分,是极为成功的,但对于 NodeJS 做后台开发说实在的,它能够占一定的市场,但将会非常少 ( 低于 5% ). 所以做 php 或 java 开发的朋友倒不用担心,但如果只是搬砖写简单 API 的话,就有危险了。

  • Rails 还行不行 ?

    Rails 已经到了一定的顶点,不可能再突破性增长,但仍然是目前最为顺手的 web 开发框架,它的前端解决方案目前仍有不错的体验与开发效率,但可维护性比较差,如果是我的话,我会带领团队采用混合式的开发,但现在不会是引入 AngularJS 而会是 VueJS.

    但 Rails 已经到达它的极限点了,而众多前端框架才刚刚开始.( 虽然拿 Rails 与前端框架比较不够合适 )

  • AngularJS 还是 ReactJS ?

    很简单,建议直接上手 VueJS.

    AnguarJS 第一版是个好的框架,但 Angular2 并不是,所以还不如直接学习 VueJS.

    ReactJS 是个不错的框架,但绝不是终点。VueJS 与 ReactJS 在实现上各有利弊。两者可以择其一学之。

  • MeteorJS 值不值得学习 ?

    我的建议是不值得,因为它一开始就走在错误的道路上,注定后面无路可走。

  • 前端会取代 Native APP 开发么?

    一定会的,未来 3 年后,至少有 70% 左右的 APP 会用前端开发方案,比如使用类似于 Ionic 或 Meteor 这样的框架。

重新思考 web 开发

真正能长远的前端技术一定是简单的,专注的,比如 jQuery. 但目前几个框架都或多或少存在着问题。

ReactJS 不是表面那么简单,而 AngularJS 更加复杂。

是否有更简单有效的解决它们的问题,则能够成为下一代 web 前端框架。

Windy 出品

用 vue1.0 开发过完整项目,容易学,效率也不错,是个不错的选择。

@stephen 嗯,VueJS 就是接了 AngularJS 第一版的手。有点像当年 Ruby 接了 Perl5 的一样。

@lyfi2003 2.0 出来了,新特性也不错,期待未来再出 vue native

@stephen Vue2.0 计划使用 weex 作为类似于 react native 的解决方案

这样看 angular js 就要牺牲了吗。前端发展的速度太快了

深有同感,前段时间团队技术选型,力排众议选择了 vue + rails

#7 楼 @defmacro 😪 WebAssembly 很美很遥远啊!

我的某些看法恰恰相反:

  1. Angular 1 不是一个好的框架,Angular 2 有望成为一个好的框架。
  2. 没了解过 Meteor,不过如果它那么没用,不至于 Vue 的作者跑到 Meteor core team 去。

#8 楼 @lyfi2003 就知道你会这么说所以我故意没提 Opal 以及用 Opal 的 volt

另外 Chrome 51 就会有 WebAssembly 了,一点也不远,2016 也还有大半年

嘿嘿说 webassembly 早的,我现在用的 Chrome 51 上已经有了

@darkbaby123 我觉得你抛出自己的观点是很好的,但缺乏了分析过程。我的角度说明为什么 Angular2 不好:

  1. 采用了 Typescript, 事实上,离 ES6 远的东西都是冒进的,不好的。
  2. 仍然是复杂的,学习成本远比 Angular1 高 ( Angular1 入门是很容易的,也很好上手 )

这样的结果只能使之离开普通开发员。

MeteorJS 不能仅仅看当下的情况,它实际上进入了死胡同,本质上,它不能算是一个前端框架,而是一个后端框架,它只有跟 Angular, React, Vue 整合才能进一步发展,而如果考虑安全性的话,同构 API 并不比原有的 Restful 有优势,所以是一个死胡同。

Vue 的作者去 MeteorJS 是考虑了职业发展啊,跟 MeteorJS 的前途不好并不冲突。

@defmacro volt 就不提了,既然不看好 MeteorJS, 那 volt 就更难了。虽然这么说,咱 Ruby 圈子的兄弟姐妹会不太开心...

WebAssembly 是个好思路,但离生产实践差太多,等两年后再来写它吧。

感觉目前来看 使用前端代替 native app 在一些轻应用上还是可以的

所以 2016 年后 Web 开发趋势是什么?简单有效的解决方案是每个大厂也是每个前端工程师追求的方向,所以会有 ng,react,vue 等一大批框架的探索。文章只是把当前流行的几个前端框架简单说了一下而已,未来前端会怎么样发展大家都不知道,大家都是在探索。 我的观点就是 React 系列技术栈依旧是目前最值得投入学习的。

@gothic 最简单明确的答案是 VueJS, 以及 ReactJS. 但最值得学习的不是 ReactJS, 而是基础啊。

#15 楼 @lyfi2003 基础咱就别说了,那是肯定的。只有技术扎实了,才能快速上手各种框架。 Vue 2.0 的确优化了很多东西,尤小右也确实牛逼这么短时间搞出 2.0 出来,而且还不错,Weex 也即将面世,看起来都非常不错的样子。暂且不说 Weex 出来会比 ReactNative 落后多少,我觉得 Vue 本身并没有什么创新性的东西,更多的是借鉴综合 ng 和 React 自己搞出来一套前端组件化模式。相反我觉得 React 的思想能走的更远,而且还有 ReactNative 这样的当红炸子鸡。当然还是那句话用哪个框架还得看团队情况和业务场景需求。 但是对有的人说我啥都没有需求,就是想学一个前端框架玩玩,那我觉得 React 系列还是首推的,当然也有牛逼的人是自己写框架玩的

17 楼 已删除

安利 vue 吗 233,其实到了 vuex 之后 vue 和 react 几乎没有任何区别,都是单纯的渲染器,唯一好处就是 vue 是真实的 dom,搞动画方便点

不过我觉得这种 V 层框架没什么讨论意义,都是数据直接拿来填了,但是复杂的逻辑要安放在哪里呢?好像 vue-router 那样把取数据安放在 data 函数里,我不认为是好的做法。现在的前端框架更缺少的是 M 层和 C 层吧

看了下对比列表,好像现在讨论 WEB, 就是讨论前端,后端什么的都不是个事儿. 而且讨论前端,就是讨论 JS, 似乎 HTML,CSS 也不是个事儿. 将这些代码的东西抛开,似乎图形设计,SEO 之类的也不是个事儿. 简而言之,讨论 WEB, 就是讨论 JS.

趋势就是全栈,区别是后端想用什么语言。

这里居然没人吐槽 h5 逃~

Vue.js 没有研究过(听你这么一说,打算去研究下),Ember.js 入门成本并不高,深入应该也不难(没深入研究过)。AngularJS 从一开始就没有吸引到我,Meteor 我也不建议大家花太多功夫学,浅尝下可以。 最值得学的我认为是 React-Native。

额~ Backbone 有听说过吗?

由于我们的后端是 PHP,所以我们前端采用了:Vue + ES6 + webpack、npm。通过 nodejs 做视图渲染和路由,实现前后端分离,数据直接调用 API(部分 API 由类似 leadcloud 的万能接口实现)

#19 楼 @suffering 不是不是事,因为后端跟设计都常年稳定,没有大的变化。所以重点自然在前端开发上。

#22 楼 @gazeldx React Native 有点红过头了,angular2 跟 vue2, 包括 meteor 都能整合或实现类似的效果,这也是现在 native app 开发的趋势。更长远一点,H5 的解决方案应该更优.( 现在由于效率问题没法跟 RN 比 )

#24 楼 @hxh1246996371 Nice, 有先见之明:)

#26 楼 @darkbaby123 有没有什么工作只专注于写前端接口和算法的?感觉前端的业务真的是太难写了。不仅要对接后端 API,ajax 还是 fetch,各种异步处理的标准,数据结构处理,还要写组件,之下还有事件、动效,语义化 HTML,CSS 模块,还有 UI。当然还有自动化等等。一直没玩过 emberjS,但是不知道为什么,越来越对它有好感。

@1272729223 我没什么建议。因为我觉得前端就应该懂这些东西,也要求一定的跨界能力。因为涉及的面比较广,所以开发者要做很多选择。全栈框架比较省事就是因为它帮你做了很多选择(而且都是比较优质的)。

其实广义一点说,web 开发者本身不也是要懂很多东西么?就算传统的后端工程师不是也要懂数据库设计,面向对象,数据结构和算法,分层模型,缓存,服务器优化,HTML/CSS/JavaScript 等等嘛。

弱弱的问一句,有没有人在不用 webpack 的情况下进行 React + ES6 + rails 这样子的开发?

31 楼 已删除

一直在用 react + redux 开发效率低点,但是好维护 React Native 也在研究,但是没有用到生产环境,因为有太多坑要踩,希望以后慢慢成熟起来。

一直在关注 vuejs,如果有单页应用场景,这些前端框架就有用武之地。前后端分离带来了额外的开发复杂度,毕竟中间需要 API 来结合。

所以普通的 web 应用以熟悉的后台送页面开始,更容易开发和见效,然后把再它们转化为 Api。

除了 rails,大家也可以关注 padrino,基于 Sinatra, 是 ruby 中最轻最快的 web 框架了

我在国外,前几年一些看起来很慢很落后很 Low 的传统行业的大网站现在都开始转向 JS,一下子变得高大上起来。

vue.js 上手容易,用 webpack + vue.js 做了几个 hybrid app,感觉足够好用了

在用 opal 版的 ReactJS: ClearWater. 对我这个前端新手来说很不错,开发比较顺手 (都是 Ruby 代码),运行效率比 ReatJS 还高. 希望用 Ruby 做前端的人越来越多。真正从前端到后端用 ruby 做全栈开发。

Rewriting your Frontend Framework every six week+s

很久没关注这些啦,看完基本上能补补课👍

#33 楼 @tonyisid 维护怎么个好?

既然 meteor 这类前端框架会在未来代替 native app 的开发,还是有必要学习和了解一下的

从 16 年一月份开始用的是 Rails+Vue.js 的搭配,看来是走对了

目前前端 React+Redux,后端 Rails,维护比较方便,开发效率较高。

@perect 请问如何在 rails 应用里面使用 vue.js?有可用的 gem 吗?对 rails 版本有限制吗?

@qiao2818 目前是这样的,就是用 Vue.js 封装了一些 gem 组件,然后重写了 Rails 鹰架的模板,这个对 Rails 版本的限制貌似没有吧,Vue.js 毕竟只是前端框架

目前 H5 的性能很难和 native 的相提并论,还有很长一段路要走

前端我用 Riot

@xieyu33333 Riot 初看不错,是一个选择。thx!

主要看历史气质,是否有造福 google 卖广告的气质,自己玩的爽,开源的玩意好像没好用的,无论前端后端 facebook 也是卖广告的,屌丝味比 google 重,加分 个人开发者看熬的年数,DHH,Matz 是典型,目前靠得住

个人,小公司搞全栈,还是侧重效率

另外单说 Rails 开发流程,使用手法,也有很多种,同样用 Rails 效率也是有差别 前端还是先跟 DHH,一招鲜胜过鲜招学

太主观了~~

  • 一年期的 ng2 跟现在的几乎不是一个东西,一句“Angular2 并不是(好框架)”就被否定了,这得误导不少人,angular2 社区日新月异,结合 nativescript 的 mobile 方案,universal angular,一大票已经开箱即用的 ui 库,等等等等,不多关注真可惜;

  • vue 是不错,主要体现在对开发者友好方面,但要论起资源、社区、关注度,比起 reac 还差的远更罔论 angular。以 get things done rapidly 为目标的话,vue 还续更多积累。也许 weex 能够如期望的那样发展起来后,会带动 vue 发展得更好。

  • meteorjs, 问题不少,主要还是在于对 reactively 开发方式的适应上,但要是说起 meteor 就用一句“除非你的应用需要实时”来盖棺定论,只能呵呵了。俺也主观一下:论起 RAD,meteor 秒杀以 rapid 著称的 ror,而且是支持多种流行前端框架的 SPA 的,真正 isomorphic 的,默认 realtime 的,根本不用等 Action Cabel 什么的,社区大,发展快,资源多。可能最大问题反而是墙的存在导致初试者等待时间过长,从而产生这“东西国内没法用”进而放弃或一言以蔽之,对多数追求多快好省的 rapid 爱好者来说,meteor 都是一个很好的选择。

  • 至于那个对比列表,只能说一百个人心中有一百个哈姆雷特。开发效率友好程度用户体验之类,本就没有 benchmark,你用熟了啥,自然啥就高效了。正所谓手里拿着锤子,看啥都是钉子。有个小建议,可以到 yeoman.io 上试用流行的项目模板,每种都真正试试,不论 node based 的,还是 python 的,ruby 的,go 的,.net 的,java 的,都有可取之处,不同领域的专家也会给出不同结果的“体验列表”,或者在 todomvc.com 上吧主流前端代码都读一读,或许能列出不同结论的对比列表。

#52 楼 @bbpnb 别先呵呵!

Angular2 是不是好框架,不是我说了算,是社区说了算。我就一个看法,不易入门的框架都不是好框架,Angular2 就是这样。

MeteorJS 我不想呵呵,我感觉你是完全对它没写过大一些东西而产生的感觉:同形很牛,RT 很牛,支持 SPA 很牛。错了,同形的安全问题就够吃一壶了,RT 不是必备需求,SPA 支持的还很不好。那还有什么是本质改变的呢?而且这些特性带来的问题更多,我就不一一说了,总而言之,在我看来,它进入了发展的死胡同而已。就像 Rails 它也没有更多可能的特性发展了,它的上限天花板到了。

对比列表确认是主动感受的多一些,但也是准确的。拿一些貌似权威模糊的结论说我的不好,没有任何可论证的证据,有什么意义呢?

所以,这一通言论貌似有理,但没任何价值给我提供,也对用户造成不好的印象。

在这里,我不得不回复以上几句。

#53 楼 @lyfi2003 呵呵也不是骂人,只是表示些不同看法而已,何必激动,呵呵。

“Angular2 是不是好框架”这种话本身是伪命题,存在即合理,你说不好我还真觉得它很好但我没说说也会加上“我认为”这个限定。即便社区说的算数,也得看社区什么时候说的,我对 ng2 的印象越来越好是基于它这几个月的发展,包括看了 ng conf 2016 后的感受,以及用新它的新旧版本做过两个原型后的体验,至少可以说发展势头很好,正面评价也越来越多,我认为,ng2 及其生态圈可以作为日后主流前端框架来严肃的期待。“不易入门的框架都不是好框架,Angular2 就是这样”,对此观点存疑~~

meteor 这事还真让你说对了,我确实没用它做过大项目(当然什么叫大项目也可以各抒己见),不过我喜欢的和我提到的是它整体呈现出来的 rapid 特性,作为一个日新月异的 fullstack 的东西,拿它来跟 ng,react, vue 来比较不太适合,你说的安全问题,而且是由“同型”带来的安全问题,我不太理解,是不是指默认 inscure,autopublish 这种东西,还是说他的 accouts 那套看起来太简单以至于怀疑他的可靠性?不懂,请指教。至于“RT 不是必备的”,对你的项目而言可能是,对我的不是;“SPA 支持的很不好",你是说自带的 blaze 么?那东西好不好见仁见智,不过 meteor 官方就支持各种主流前端,ng1,ng2,react 等,像 vue 之类支持也可以在社区找到,甚至还有个 angular2-now 用 ng1 来模拟 ng2 来开箱即用,meteor 对前端的的支持可以用激进来形容,这也是该社区的特色所在。所以我也不太理解“SPA 支持很不好”所指何意?即便诚如斯言,meteor 做“大项目”不适合,不过如果顺手拿起来就能做个原型,做个 demo,做个工具,做个内部应用,而且看起来比较专业,前后端完备,即改即发布,实时同型 SPA,有何不可?说来惭愧,对它是否适合”大项目“,没发言权,因为没做过,不过说起一些小里小气的东西还是用它做过五六个,感觉良好身心俱爽,也建议更多同好者尝试它,算是一点个人体会吧。

”对比列表确认是主动感受的多一些,但也是准确的“,其实所有文字里我真正不赞同的只有这一句了,好比说”我妈说我是世界上最帅的,虽然比较主观,但也是准确的“。觉得逻辑上有硬伤。我认为阁下是个知识渊博谦虚谨慎敏而好学的同好者,如果我们对彼此的代码做 review,我肯定不会因为你指出了我代码里存在一个很愚蠢的 bug 而对你心怀嫉恨的,相信阁下也不会,所以你所认为我“拿一些貌似权威模糊的结论说我的不好,没有任何可论证的证据”对我而言实在有点诛心了。只是,年龄越大,对一些把话说的太满太绝对的断言会比较敏感,对你的文字内容表示尊敬的同时,评价了一句“太主观”而已。

还要声明,我没有故作“貌似有理”状的意思,没觉得自己有资格“给你提供任何价值”,更没想“对用户造成不好的印象”,我总觉得不至于呢?如果确实影响不好了,我道歉。不过如果非要针对本文题目“2016 年后 Web 开发趋势是什么”,我想分享的个人体验在前面已经提过了,不妨重复一下:从实践角度看,todomvc.com 是我觉得很好的前端对比和评价的参考,从全面的角度看,yeoman.io 上的流行的项目模板能教会我们很多东西,如果对 node based 的东西感兴趣,nodeframework.com 是一个大而全的列表,star 在 1000 以上的项目都值得去了解。对这些列表里的主流东西有了更多了解和实践,也许大家可以一起更愉快的谈论 2017 年的 web 开发趋势是什么了,呵呵。希望这个有点价值。

55 楼 已删除
56 楼 已删除

整理的不错。 不过最近做的单页应用是 gulp+angular+bootstap+sails。

大家讨论的热火朝天的,我作为一个小菜鸟,看完文章,再继续认真看完大家的每一条回复,竟然还是不知道我们菜鸟在未来应该更应该关注、学习那些技术。

本人之前也觉得 Meteor 以后会是未来的方向,所以下班后的那两个小时一直都在学习 meteor,后来,Meteor 升级到 1.3,全面开始使用 es6,升级完发现原来的学习项目无法运行了,新建一个 demo 以后,查看代码我当场懵 B,语法和风格几乎完全变了,后来放弃学习了。

我没学过 AngularJS 但是,听你们说他升级到 2.0 版本以后语法也变了且向下不兼容了,大家也又懵 B 了。。。。

在我这种菜鸟看来,出现的这些全新技术确实很有亮点,但是由于还在飞快的发展期变化太快,菜鸟根本就跟不上它们发展的步伐。

所以我们菜鸟就是应该学习文中提到的那些基础的技术,夯实基础,等这些新秀有了一个稳定的发展以后再来学习比较好。

不要喷我,但是可以指点,看到大牛们讨论的热火朝天,我一激动也说说了自己的看法。。。

最近 angular2.0 出了一个 angular-cli 基于 ember-cli 做的。想必不会太差。

这几个月做的 web 开发,都是用纯 js。效率比过去用模板+css 写高,能实现的交互也复杂得多。后端就只实现 api 给 js 用。 这是几年前没法想象的,那时候觉得 Gmail、Google Docs 这类 web 应用实现起来挺麻烦,也只会想到用 jQuery 之类直接操作 dom。现在看来却是轻而易举,交互再多再复杂,实现方法都是共通的。

https://www.awesomes.cn/repos/Applications/Frameworks?sort=trend

可以参考一下最近趋势(分析 Github 近期的关注数据)当然这也仅供参考,无所谓哪个好哪个坏,看你自己的爱好了。不过就我个人而已,我就喜欢 vue 的简洁且不失功能强大,勿喷。

为什么好像少有人讨论 extjs,博主对这个框架有什么看法

#63 楼 @ruby_wu 很少提及 extjs 了,原因有很多,主要还是它不够开放,以及它太重。换言之,基本上已经淡出主流前端框架了。

extjs 是成功的:

  1. 从 YUI 时候就产生,一直发展在现在,很好。
  2. 如今,更多被使用在企业内部的工具开发,很好的 UI 组件库,适合富客户端使用。

extjs 是失败的:

  1. 不开放
  2. 太重,加载慢,组件强到过于臃肿了而不利于定制,不适合于互联网产品的研发。所以只被应用在企业应用开发 ( 要求功能强大,但不需要过多的用户体验 )

看了最近它的动作,也增加了 MVVM 的特性,感觉还是针对企业应用准备的。总而言之,除非工作需要,不建议深入。

个人看法,供参考。

作为一名前端小菜,我确实也对于现在的前端发展感觉到很困惑,公司这段时间用的时 react,所以也顺便学了了下,之前我自学的是 vuejs,对于学习,我跟喜欢那些能真正解决问题的 方法和技术,对于那些高大上的名词不太感冒,对于 react 和 vuejs,我更大的感受是 vuejs 写起来更自然,但是也很喜欢 jsx 那些强大的表现力. 我在这里提到真阿当会不会被喷呢?因为我还是很认同他的一些观点的,其实我很想体验一下他所说的"组件化方案,轻框架方案",虽然我想从 yui3 入手看看,但是不懂投入精力学习 yui3 是不是正确的选择,蛋疼死了

@lyfi2003 '一定会的,未来 3 年后,至少有 70% 左右的 APP 会用前端开发方案,比如使用类似于 Ionic 或 Meteor 这样的框架.' 这一点鄙人觉得绝不可能,以一个 5 年安卓,3 年 ios 经验的视角来判断。你不能单纯的从技术角度去考虑这个问题,技术根本不是问题。

另外我还是比较看好 angular js,不因为别的,就因为他的后台是谷歌

backbonejs 怎么说?都不在讨论范围内了吗?

在中国,很多流行的东西不见得是优秀的,比如 ruby 从来就没流行过 /沮丧脸

技术更新太快,公司一直在用 AngularJS 和 ROR

wikimo 简单聊聊 Ruby 提及了此话题。 04月27日 11:45
需要 登录 后方可回复, 如果你还没有账号请 注册新账号