JS的package/import机制的考察提纲 (The Survey Plan of the package/import mechanism for JS)
0
0.1 考察对象 (Object)
0.1.1 JS2 的 package 机制(仅作对照) (JS2/ES4 Package, for reference)
0.1.2 jspkg
0.1.3 JSAN
0.1.4 Ajile
0.1.5 jsolait
0.1.6 Qomo
0.1.7 JSVM2
0.1.8 PIES
0.2 考察内容、方式和准则 (Criteria & Method)
0.3 特性对比表 (Matrix of the Features)
0.4 主观评价 (Subjective Estimation)
0.4.1 简洁性、一致性和完整性 (Simplicity, Consistency and Completeness)
0.4.2 学习曲线 (Study curve)
0.4.3 多个方面的整体平衡 (Balance)
1 基本功能 (Basic Features)
1.1 如何使用一个package (Using a package)
1.1.1 是否解决了全局命名空间污染问题 (Issue of Global namespace)
1.1.2 循环import问题 (Issue of Recusive import)
1.2 如何定义一个package (Defining a package)
1.2.1 是否要求特别的编程习惯 (Requirements of special pattern of source code)
1.2.2 是否要求特别的文件组织结构 (Requirements of special organization of source files)
1.2.3 是否要求配置文件 (Requirments of Configuration)
1.3 目标平台 (Host Environment)
1.3.1 Browser环境:IE, Moz, Opera等 (Browsers)
1.3.2 Browser特殊环境:XML浏览、SVG浏览(ASV)等 (Browsers -- for XML)
1.3.3 非Browser环境:Rhino, WScript, ASP, ActionScript 2 (Others)
1.3.4 ES4(JS2)环境:JScript.NET、ActionScript 3 (ES4 platform)
2 扩展功能 (Advanced Features)
2.1 局域化别名和explicit(js2的explicit) (Local Alias and Explicit)
2.2 部分导入(js2的include,exclude 机制) (Partial Import)
2.3 package的版本机制(js2的namespace机制) (Version)
2.4 通配导入 (Import *)
2.5 导出(js2的export) (Export)
2.6 相对路径的支持 (Resolve Relative Path)
2.7 探测encoding (Determine Character Encoding)
2.8 语法糖衣 (Syntax Sugar)
2.9 其他有关特性(如jsvm的application|module等模式) (Other Special)
3 其他 (Miscellaneous)
3.1 错误处理(assert)、debug和log (Error Handling, debug and log)
3.2 文档 (Documentation)
3.3 具体实现 (Implementation)
3.3.1 需要的基础设施如XMLHttpRequest, eval, new Function (Minimal Reqirements)
3.3.2 是否必须使用同步调用 (Reqires Synchronized?)
3.3.3 预处理和转换 (Preprocess and Transformation)
3.3.4 性能 (Performance)
3.4 单元测试 (Unit Test)
3.5 移植难度 (Portability & Compatibility)
3.5.1 对于传统脚本的可移植性和兼容性
3.5.2 对于其他import机制的兼容性
3.6 成熟度、社区活跃度、许可协议等 (Maturity, Activity of Community, License...)