2014 年末有哪些比较火的 Web 开发技术?

前端+后端
关注者
3095
被浏览
164673

24 个回答

@徐飞 评论React的观点总结一下就是:React最大的亮点是虚拟DOM,它是上层的,它有多高效对于大规模应用开发宏观上的不是最重要的。

这个我同意,对于一个大规模应用的架构设计来说,解决DOM操作这个窄的问题当然不是最重要的。但是怎么能说“喜欢React的人常常用它的虚拟DOM、精确更新来打击其他框架”就太主观了。虚拟DOM只是React的一个特点,React是声明式的,同时绑定状态,UI更新时自然要设计一套高效的算法。

在谈到Angular时提到的那些优点:UI和业务逻辑的隔离、模块间的依赖关系、易测试、易复用,React同样做的很好(或许更好)那些不是Angular的特别优势,应该说是所有基于组件思维架构的优势。

React和Angular作为新一代的前端开发框架颠覆的是上一代以Backbone为代表的以传统MVC实现开发应用的方式。或许React引入JSX太刺眼了,让人总觉得是在JS里拼HTML模板,这明显是认识上的误区,那些只是组件的组合用法。传统字符串形式的Javascript模板已经过时了,H5标准里的template也不是字符串,这些都是被新事物扬弃的。

在开发中,我觉得React的可预测性的特点对代码维护帮助很大。扩展上也充分体现了组件的灵活性。我最近正在做一套复杂的管理后台,各种复杂表单,需求也改来改去,应对起来还是很从容的。原来分享过一张图,用React很自然的使项目形成一种扁平化的组织形式:report.png_免费高速下载。这是一个好的框架应该有的效果,不是越来越臃肿。

接下来值得探求的是组件之间的通讯、数据流的控制。之前微博上分享过一张图,想表达的是当所有组件产生的数据汇总到最上面的逻辑层时,感觉好极了。再接下来我其实对CSP感兴趣。

最后要说,还是要用一用。开始用React可能有点不顺,慢慢会越来越喜欢它;P
等了一天没人提 Isomorphic JavaScript,好心塞,不算新(imgur, Gmail),也不算老(Airbnb), 只是最近出来很多方案,然后给正式命了个名。
传送门:Isomorphic JavaScript

## Isomorphic 同构

顾名思义,会有一部分 JavaScript 是前后端公用的,从 路由(Route),模版(Template),到数据验证(Validation),甚至是 交互状态( 比如 一个 modal )。

## 带来了什么

### 首屏加载与体验的渐进增强
试着访问这些网站,并且禁用掉 Javascript,然后再比较下禁用 Javascript 前后的交互体验。

算是结合了传统页面应用和 单页应用 的优势,对于「可访问性」有要求的内容产品的,往往是需要被公开的每个 URL 路径能被快(搜)速(索)访(引)问(擎)的。

而单页应用的方案,如 Angular 等,是需要等待 JavaScript 载入完全的,Placeholder 或者 Loading 难以避免,当然加载完成后,交互体验明显好于传统页面应用。

但如果将对应路由的状态,在后端生成完整的 HTML 传送给浏览器以供显示,当 JavaScript 载入后,激活为单页应用,保证用户连续浏览的体验。

### 前后端职责的分离
(via Isomorphic JavaScript: The Future of Web Apps

前端将专注在上图左边的部分,而后端提供健壮稳定的数据 API,前端不用关系这 API 是由什么提供出来的(目测 淘宝的 中途岛 midway | TaoBaoUED 最后也会是类似的方案)

## 挑战与问题

### 同构的度
可以像上面提到的两个网站,只保证基本可用(内容可见),至于不太重要的功能性的交互,可以滞后。也可以 连 Modal 这种交互状态都给存到 URL 上的。需要确定好哪些东西是需要保证可用性的。

### 对代码的能力要求较高
需要把部分后端逻辑暴露到前端去,自然有人会质疑,不过要严格控制好同构的部分,分离不需要同构的部分,对整个的结构的设计要求较高。(如何做, browserify 的 browser 配置选项,这个不细说了)

### 不是万金油
对可访问性没啥需求的 Web App 这么玩成本略高。
为什么?