• AngularJS 学习


    1.专访AngularJS框架创始人Misko Hevery:让Web开发更便捷

    http://www.csdn.net/article/2013-10-08/2817118-AngularJS-Framework-Google

    AngularJS是一款开源的JavaScript MV*(MVW、MVVM、MVC)框架,目前由Google维护。AngularJS弥补了HTML在构建应用方面的不足,其通过使用标识符(directives)结构,来扩展Web应用中的HTML词汇,使开发者可以使用HTML来声明动态内容,从而使得Web开发和测试工作变得更加容易。

    官方网站:http://angularjs.org/

    AngularJS最初由Miško Hevery和Adam Abrons于2009年开发,后来成为了Google公司的项目。

    CSDN记者采访了AngularJS的创始人之一Misko Hevery,请他来为我们介绍一下AngularJS项目开发背后的故事。

    CSDN:请先介绍一下您的经历!

    Misko加入Google公司之前,我曾在Intel、Xerox(施乐)、Sun和Adobe公司工作过,主要从事数据库/后端方面的工作。加入Google公司后,我开始转向自动化测试,这个工作的主要目的是改进Google的开发者工作效率,从而改善代码库。

    我之前并不太热衷于JavaScript,直到我的老板让我涉足这一领域,并让我研究关于JavaScript的所有知识。

    CSDN:讲讲AngularJS开发背后的故事,当初为什么发起这个项目?

    MiskoAngularJS最初是作为一个编外项目(side project),当时我想去看看是否有可能让Web设计师(非开发者)只使用HTML标签来创建简单的应用程序。随着时间的推移,AngularJS演变成了一个全面的开发框架。

    2010年是一个转折点,当时我正参与Google Feedback的开发。我们使用GWT进行开发,比较郁闷的是,开发速度和项目的进展比较缓慢。我意识到,我的这个编外项目也许可以让这个产品的构建过程快一些。随后,我将17K大小的基于GWT的应用程序使用JavaScript进行了重写,且代码只有1500行。这引起了很多人的重视,公司也开始资助我们全职开发AngularJS。

    CSDNAngularJS的设计理念是什么?灵感来自于什么?

    MiskoAngularJS遵循的设计理念是——构建UI应该是声明式的。

    灵感来自于我之前在Adobe公司所从事的FLEX方面的工作。但是我还想要有大量的声明式UI,这也是AngularJS中标识符(directives)想法的灵感来源。

    CSDN:AngularJS是如何实现这一理念的?

    Misko我发现大多数人开始一个新东西时,往往会从他想到的有可能实现的方面入手,然后围绕它创建一个框架。而我更倾向于从我想要的东西入手,我认为某个想法很棒,就会朝着这个目标不断努力,直到实现它。起初,一些想法看似无法实现,但是随着时间的推移,你的一些技能也许可以让它变成可能。

    例如:我想要实现不那么突兀的数据绑定,也就是说任何对象都可以进行数据绑定。但是当一个对象发生变化时,无法使用JS来获取通知。这样一来,大多数人就会认为这是无法实现的,他们会让你使用getter/setters来代替字段访问。

    CSDN:AngularJS的设计目标是什么?

    Misko首要目标是,使Web应用开发更容易,并在这个过程中使Web变得更强。

    第二个目标是,向人们展示以这种方式来构建Web应用程序也是可能的。此外,还希望向人们传达一些关于测试、声明式UI和依赖注入方面的知识。

    CSDN:AngularJS项目的开发人员有几名?

    Misko最初AngularJS项目团队只有Adam Abrons和我两个人。但自从Google公司接管了这个项目后,目前团队人数已经达到了15人。

    CSDN:你们是如何解决AngularJS开发过程中遇到的困难的?

    Misko考虑你想要实现的东西,然后朝着这个目标努力。你或许不会得到一个非常理想的结果,但是这样会比你一开始就以能够实现作为目标的结果要更好。

    CSDN:AngularJS限定不能超过2000个绑定对象,有人将它视为编写大型应用的限制,对此您怎么看?

    Misko这不是一个硬性限制。要知道,Angular应用程序的性能与对象绑定数量呈线性关系。绑定的对象越多,应用程序的速度会变得越慢。

    对于2000个的限制,我的看法是,这是你能够在一个页面上展示给用户的所有东西的数量限制。通过这个限制,刷新页面的时间可以减少到5ms以下。因此,性能的主要限制因素是人,而不是计算机。

    CSDN:介绍一下AngularJS的dirty-checking机制?其性能如何?

    MiškoDirty-checking是我们用来检测对象的变化的。我们仅在模型可能发生变化时运行它。这是一个事件驱动系统。

    性能方面,如果对象的比较过程相对简单,那么进行1000次比较,在现代浏览器上可能只需要一两毫秒,所以性能真的不是一个问题。正如前面所提到的,性能的限制因素是人。

    此外,这样做的好处是,你能够为你的模型使用纯老式的JavaScript对象。

    CSDN:哪些应用适合使用AngularJS?哪些不适合使用?

    MiskoAngularJS可以很好地用来开发表单/报表类的应用程序,而这类应用程序在Web中所占比例高达90%。而如果你想构建一个照片编辑类的应用,你可能不会想去使用AngularJS。

    CSDN:Angular的未来会如何发展?

    Misko我们希望未来AngularJS能够更好地与Web标准看齐。我们还打算将AngularJS分解成大量的小型库,你可以将这些库集合起来使用,也可以单独使用某些库。

    CSDN:对于前端开发者,你有什么建议?

    Misko尝试去开发一些伟大的网站,让Web变得更美好。

  • 相关阅读:
    mac下给git://协议设置代理Proxy
    安卓手机中wifi密码查看器,查看wifi密码教程
    坑爹啊!gradle 2.1构建android出现错误的解决方案
    php-fpm开启报错-ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock详解
    git rebase 还是 merge的使用场景最通俗的解释
    git rebase 与 git merge 的区别
    zend opcache的最佳设置(仅做参考)
    PHP7.3 报错: A non well formed numeric value encountered
    关于PHP.ini的opcache中opcache.revalidate_freq参数设置测试报告
    微信小程序登录实现,前端+后端PHP代码(前端获得CODE,后端获取微信用户的OPEN ID 和 UNION ID)
  • 原文地址:https://www.cnblogs.com/exmyth/p/4537304.html
Copyright © 2020-2023  润新知