N-ZOO / issue-record

组内技术点沉淀区
4 stars 0 forks source link

[概念]同构JavaScript应用 #4

Open coxo opened 8 years ago

coxo commented 8 years ago

前言:

在之前的几次组织内部讨论中,会偶尔提到同构直出的概念,上次地瓜小V,还在聊他们鹅厂内部,目前项目应用的方式,同构+直出,这里我们先聊一下,同构的概念,以便大家参阅。 这篇小记,只是一篇小小记哦。

概念:

Javascript现在是一个同构的语言,同构的意义就在于任何一段代码(当然有些特殊代码例外)都能同时跑在客户端与服务器端。

你可否想到,一个应用可以在客户端或者服务端快乐的运行。是不是很玄。 理论上,应用可以根据设备的速度和带宽能力来实现不同等级的客户端/服务器处理。 但是,太复杂。很少项目能够在实现共享视图基础之上更进一步,而且标准渐进增强不起作用的情况也不多。 后期我们会谈一些目前存在的一些模式,看看他们是怎样实现的,另外也谈谈它们为什么对于真正同构的Javascript而言还不够好。

总结下几点

Meteor是一个开源 JavaScript 框架,专注于实时 web 应用,基于 Node.js 编写。

现在越来越多的公司将 Node.js 应用到他们的产品中。客户端和服务端的代码共享成为一个更加普通而自然的选择。 这也就不可避免会有更多的应用开始在前后端共享代码。 最重要的是要记住 “同构JavaScript”是一个范围 — 它开始只能共享模板,之后管理整个项目的视图层,再到大多数应用的业务逻辑层。事实上JavaScript代码共享在前后端是要取决于你的程序设计,以及它的独特约束。

web开发的未来

有些类库通过共享模板又增强了这一趋势,比如 React

介绍了同构JavaScript应用的概念,它是应用开发的一种全新方式,可以最大限度地结合服务端和客户端应用程序。

个人感想:

考虑到客户端和服务器上不同类型的逻辑,我不确定完全的同构应用是否具有实用性或者可行。但是,环境无关的库可以消除对相同功能编写两份代码的痛苦。

参考: http://www.sitepoint.com/isomorphic-javascript-applications/