分享轮子: a9engine/a9text

http://a9engine.sf.net
学习和交流,分享个人经验,特将主页的js-driven心得整理到a9engine和a9text
如果希望有更高更多更好的应用,请大家多关注JSI(http://jsintegration.sourceforge.net/)

================================================================
1. a9engine 是什么?

a9engine是一套轻量级的js引擎,为web开发提供便捷的js管理.

a9engine的产生和应用都出于个人目的,这一点从名字上就可以看到:)
我本人很乐意分享自己的心得和成果,但不要试图期望我把a9engine做成产品.

1.1. a9engine 能做什么
  1) 按需载入js
     使用require方法,可以同步载入js,并选择释放的作用域.
  2) 根据配置,自动解决js的依赖关系
     根据包配置文件__info__.js,先于脚本载入所依赖的js
  3) 脚本隔离,解决名词冲突.
     当a.js和b.js都有Func方法时,可以使用a.Func和b.Func来防止方法覆盖
  4) 合并脚本
     可以把依赖的脚本,做为脚本的一部分放在同一个名词空间释放.

1.2. a9engine 不能做什么
  1) 简单的脚本管理以外的事情,比如ui,算法,或复杂逻辑.
  2) 完全跨浏览器问题.

1.3. 同类产品有哪些?
  目前知道的有JSI,他是一个优秀的框架,同时提供了很多产品级的方案.
  但我个人觉得,在我个人应用上有些大材小用了,甚至有些冗余和不灵活.
  而且,在随后的a9text应用上,我更倾向于自己的a9engine.

2. a9engine 主要的目录结构:

|  readme.txt           正在阅读的文本
|  config.js            配置文件
|  a9engine.js          核心脚本
|
+- __testdemo__         各个功能的测试和演示
+- doc                  文档
+- com/trydofor/a9text  **重点内容
+- com/trydofor/a9js
|   +- http
|   |      __info__.js  包描述文件
|   |      xhr.js       XmlHttpRequest类
|   +- code
|   |      __info__.js  包描述文件
|   |      des.js       Des算法类
|   |      md5.js       Md5算法类
|   |      encoder.js   编码转换类
|   +- format
|   |      __info__.js  包描述文件
|   |      date.js      类是java中DateFormat类的功能

3. a9engine 约定和规则

  *) js文件,编码为 UTF8(BOM),避免非ascii字符载入错误.
  *) 使用空格(0x20)缩排,而不是tab(0x09),尽管这样会使文件庞大.
  *) js中成员,需要var声明作用域,最大限度保持名词空间清洁.
  *) 使用python和java的命名规则.
  *) 包名尽量以字母开头,使用小写英数,否则以类路径导入时出错.
  *) '__'开头和结尾的成员或文件,表示私有.

================================================================================
更多内容,请参看
源代码(*.js)
doc/
testdemo/

你可能感兴趣的:(应用服务器,算法,脚本,配置管理,JSI)