Skip to content

Instantly share code, notes, and snippets.

@yyx990803
Created December 3, 2012 21:52
Show Gist options
  • Save yyx990803/4198441 to your computer and use it in GitHub Desktop.
Save yyx990803/4198441 to your computer and use it in GitHub Desktop.
国内互联网公司的前端框架简介

百度:Tangram

基本上就是个百度版jQuery,2.0版本使用链式API,更像了。
配套的还有UI库Magic和模版引擎BaiduTemplate(和ejs很像)

腾讯:JX

理念在介绍里面写的很详细,代码清晰,注释丰富,可读性很好,但只有文档没有实例。
比较传统的大块头框架,本质上来说还是一堆工具方法和对象的堆积,提供了很基本的模块化的开发方式,但没有模块间的依赖关系支持。

阿里:Arale

基于sea.js,提供基于CMD的较成熟的模块依赖管理和文件加载,同时提供包管理/打包工具spm。
提供基础模块如class, event, widget等等,也有常用工具模块和ui组件。解耦做的较好。比较注重开放和易用性,鼓励使用和开发第三方模块。
阿里以前有一个类YUI的KISSY,Arale则是采用了全新的架构思想。文档正在迅速完善中。
核心人物:@玉伯也叫射雕

豆瓣:OzJS

和Arale有些类似,同样提供一个模块依赖管理的微内核,基于此来构建一套模块化的框架。兼容CMD, AMD和基本的闭包函数模块。
提供预处理/打包工具ozma,以及一系列常用模块,比如语言增强,事件系统,url解析,dom处理,动画等等。
前身是豆瓣开发阿尔法城的时候使用的框架,现在还在加强通用性的过程中,一些模块还在开发,文档也还不是很完整,但在解耦和开放性上做的不错。
核心人物:@dexteryy

网易:NEJ

很大很全,功能很多,也提供打包工具,而且针对不同的浏览器内核进行了适配。 但不得不吐槽的是NEJ是国内这些开源框架里最不友好的一个,因为它太过强调“约定优于配置”,对使用者施加了太多的约束。一旦使用NEJ,你就必须跟着它所规定的一切来。作为一个公司内部的项目,对代码风格规范有严格的要求,无可指摘,但作为一个开源项目,这就成为了一个巨大的劣势,因为学习曲线陡峭,采用成本高昂,一旦使用就被套牢在这个系统里,我很难想象会有其他公司采用NEJ来做项目。用的人少了,社区贡献也就少了,而这开源的意义也就仅限于让人参考而已。从某种程度上来说,NEJ看似开源,却是一个封闭的系统,和Arale形成鲜明反差。

新浪:STK(未开源)

在STK这个namespace下定义了reigister方法用来添加新的模块,但每个模块基本上就是一个闭包函数,没有依赖关系支持。和腾讯的JX相似,但更简单。

人人:XN(未开源)

从源码可知用了Sizzle作为CSS选择器引擎,Mustache作为模版渲染引擎。有一个似乎是自家开发的CMD包依赖管理系统。整体的代码风格略显杂乱。


个人观点,欢迎补充指正。

@lichangwei
Copy link

“约定优于配置”是很好的做法,“优于”,并不是不允许配置,在sea.js等很多框架中都有所体现。特此说明,防止误解。

@numbcoder
Copy link

其实我关注 OzJS 很久了,模块做的很小,分工清晰。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment