百度JavaScript库的设计与应用
百度自99年成立到现在,前端产品有很多遗留的代码。一方面是为了解决这些遗留代码,另一方面是为了更好的设计产品,让工程师快速开发出好的可持续维护的前端产品。百度前端通用技术组设计了他们的JS库——Tangram
百度的JS代码可以分为四层:
● 第一层:Base基础库,职能单一的基础方法。为其他层提供基本的操作支持。● 第二层:Component,跨产品线级别的通用组件。
● 第三层:Widget,不包含任何业务代码,是一种能够让所有产品线方便开发的机制。
● 第四层:App,业务逻辑,前面三层都是为这一层服务的。接下来,雷志兴开始介绍Tangram库的设计特点。
● 提供容易封装的静态方法。● 按需装载,保证从中调出的代码都是最小的。
● 增加兼容性,实现与现有的系统零冲突。
● 尽量拆分控件功能特性,让所有特性实现可插拔
● 提供多种初始化方式,让用户根据自己的需要选择。最后,雷志兴又对他们的UI系统结构做了简单介绍。通过建立这样一个适合百度所有产品的库,不仅能让产品线高效开发JavaScript,而且也让前端项目变的持续可维护。Xoom推出Android的平板冲击开始为苹果把手套关闭
Qunar的JavaScript模块化之路
胡金埔是去哪儿网的前端架构师、前端组负责人,他在本期沙龙跟大家分享的是去哪儿网建设JavaScript库的实践经验。在分享的开始,胡金埔先给大家看了一段糟糕的代码,引出这次分享的话题。
用LabJs实现更好的加载,采用Ant、Rake、Nginx等实现文件的压缩和合并。如果做到这些,对前端开发来说是不是就足够了呢?这样的话,对一个简单页面来说是足够的,但是对于现在的富客户端只能说是可能足够。女装品牌排行榜在去哪儿网产品发展的过程中,他们也采用过许多优秀的JavaScript开源框架,但因为缺乏具体的针对性,一些老代码的维护工作变的非常繁重。在产品开发的实践过程中,去哪儿网开发出了自己的JavaScript库Module.js和Qtest。胡金埔在沙龙现场向大家分享和演示了Module.js和Qtest,并特别介绍了Qtest。
Qtest是一个基于本地浏览器的JavaScript测试工具,具有以下优点:人人
● 基于Qunit● 真实浏览器环境(可测试多个浏览器)
● 可方便的添加插件(Jshint、Keywords)
● 支持Rake(使用Ruby语法)