2.1.2 Closure Library
Closure Library 是一个 JavaScript 库,它提供了丰富的工具函数,尤其 提供了大量操作 DOM 的函数,使 JavaScript 对页面进行操作变得更加方便。不 过,本平台使用它的真正的原因在于 Closure 将 JavaScript 改造成了一门面向 对象的编程语言,并且给它提供了命名空间。这样使 JavaScript 的开发更加规 范,方便平台进行模块化设计,提高了代码可维护性,也提高了开发效率。
还有一个目前比较流行的 JavaScript 开发库叫做 jQuery,在本平台中没有 使用它的原因就在于它没有提供面向对象的编程模式,随着代码量的增加整个 工程将维护难度将逐渐上升。
2.1.3 Closure Templates
Closure Templates 是提供 HTML 模板的工具,它把 HTML 布局的部分写成
*.soy,然后通过该工具编译为用于生成 HTML 片段的 JavaScript 代码。本例使 用 Closure Templates 来创建部分网页组件,以简化 JavaScript 生产 HTML 片 段的操作。
2.2 Git
Git 是一个版本管理工具,github 就是一个 git 应用的优秀案例。本例使 用它进行源代码管理,以方便的进行代码备份,恢复等等,并且还有提交日志 记录开发的流程。
本次开发使用了 oschina 作为远程代码仓库,及时将代码提交到远端服务 器,防止本地文件遭到破坏带来损失。本次开发中就有过文件被误修改的情况, 利用 git 迅速修正了这个错误,减少了不必要的损失。
2.3 Grunt
Grunt 是一个前端自动化工具,可以方便地处理前端相关任务,比如将 less 编译成 CSS,编译压缩 JavaScript 文件,拷贝文件,生成 soy 模板等等。只需 编写好配置文件,然后执行单条命令就可以完成。本次开发中 grunt 使用到了 以下几个方面:
(1)自动化编译生成 less,less 是一种由 Alexis Sellier 设计的动态层叠样 式表语言,添加了一些 CSS 没有的语法,最终将它编译成 CSS 文件进行加载。
(2)自动化创建 soy,及上文提到的 HTML 片段创建模板。
(3)自动化生成 deps,它是属于 closure 的一部分,由于 closure 提供了命名 空间,而 closure 使用 provide 和 require 来实现它,所以它生成了一份 deps 文件,将这些名空间链接起来,形成一个拓补图,在生成这份文件时将检查循 环引用。
(4)自动化编译 JavaScript,它是用 closure 的编译器,但是使用 closure 编 译时需要输入大量参数,为了简化命令,使用 grunt 对其进行配置,这样最终 只要使用命令 grunt deploy 即可完成编译部署。来!自~优尔论-文|网www.youerw.com
配置好之后,只要一句 grunt 命名即可完成操作,这样做便大大减少了重 复工作。
2.4 Trello
Trello 是一个卡片式管理工具,用于项目的进度的监控及管理,所有任务 的计划清单被列为卡片归入待做事项列表,当正在进行一件事情的时候,便把 相应的卡片放到当前在做的列表中,等到该事情做完后便将该卡片归入完成列 表。Trello 就是通过这个基本过程来管理组织整个项目的。