Angular 2.0 的设计方法和原型

 Angular 2 是一个针对移动应用的框架。它同时也支持桌面环境,但是移动端是难点,我们把它放在第一位。你了解并且喜爱的Angular还在那里,数据绑定,可扩展的HTML,以及专注可测试开发。

Angular 2 所有的设计文档都公开在Google Drive上。而这篇文档概括了我们的方法和设计原则,文中的一些链接指向特定的设计文档。

警告:我们仍然在Angular 2 的设计和原型开发阶段。所以这篇文中的有些东西可能会跟我们的最终产品不一样,甚至完全不存在。

为未来而设计

我们基于未来人们的使用方式而设计Angular 2。尤其,这意味着我们的针对是现代浏览器以及使用ECMAScript 6.

现代浏览器

现代浏览器是指那些“永远绿色”或者总是能自动更新到最新版本的浏览器。针对这些浏览器的开发让我们扔掉了很多深入篡改和变通方案,而这些正是让Angular的使用和开发更加困难的罪魁祸首。

目前这些浏览器包括Chrome、FireFox、Opera、Safari和IE 11。在移动端,我们的支持列表包括Android、IOS6+、Windows Phone 8+上的Chrome,FireFox移动版等。我们在研究对Android老版本的支持,但是还没有决定下来。

是的,现在仍然有很多老的浏览器在被使用,但是当Angular 2准备好的时候,我们现在针对的这些浏览器将会是主流,而且如你一样优秀的开发人员肯定已经在上面开发过一段时间的应用了。

ECMAScript 6+(设计

所有的Angular 2的代码都已经是基于ES6写的。由于现在ES6还没有在浏览器上运行,我们使用 Traceur编译器来生成能够在任何地方良好运行的ES5代码。我们正在和 Traceur 团队一起工作,实现对一些扩展的支持,比如标注(annotation)和断言(assertion)

不用担心,尽管Angular会基于ES6,但是如果你不想移植的话,你仍然可以使用ES5来写。编译器会生成可读性很强的JS代码,针对扩展也有可以理解的模拟实现。阅读设计文档来查看更多信息。

更快

更快的更新监测(设计

Angular应用是在DOM和JS对象的数据绑定的基础上构建的。Angular应用的速度很大程度上取决于我们底层使用的更新监测机制。当Object.observe()在Chrome M35上能用的时候,我们已经反复地说过我们多么希望能够使用它来加速我们的更新监测机制。当然我们会这么做!

然而,经过了非常细致的分析(细节见文档),我们还发现即使在浏览器还未支持原生更新监测的情况下,我们已经能够很大程度上提高Angular速度和内存使用效率。所以,极度平滑顺畅的应用指日可待。

仪表化(设计

性能杠杆的另一半就是你写的代码。为了这,我们会提供高精细度的计时细节来还显示你的应用中的时间花销。你可以把这个看成更新监测设计的一个目标,但是我们会通过一个名叫diary.js的新的Angular日志服务的来为计时提供直接的支持。

模块化

当我们发布 Angular 1.0 的时候,所有的功能是在一个“要么接受要么放弃的”单独包里。不管你用不用它,你都得承担每个部分的下载开销。尽管整个Angular对于桌面应用来说是非常小的,但是在移动设备上却是完全不同的情景。

我们注意到一件很有意思的事情是,当我们吧$resource分离成一个单独的库的时候,冒出了好几个非常有创意的替代品。

为了性能和提倡创新,我们的目标是将Angular几乎所有的部分都做成可选的,可替代的,甚至是可以在其他的非Angular框架中使用。你可以挑选和使用你喜欢的部分,另外的部分你可以自己实现或者使用其他你更喜欢的方案。

MASTUDIO 案例、典型应用
基于我们的优势,众多客户信任并使用MASTUDIO移动中间件,部署他们的移动应用: