google前端框架angularjs创始人misko hevery专访 -买球官网平台

2013-10-11  编辑 wangguo 评论(14条) 有67331人浏览
angularjs是一款开源的javascript mv*(mvc、mvw、mvvm)框架,目前由google维护。angularjs弥补了html在构建应用方面的不足,其通过使用标识符(directives)结构,来扩展web应用中的html词汇,使开发者可以使用html来声明动态内容,从而使得web开发和测试工作变得更加容易。

官方网站:



angularjs最初由misko hevery和adam abrons于2009年开发,后来成为了google公司的项目。

本期我们专访了angularjs的创始人之一misko hevery,请他来为我们介绍一下angularjs项目开发背后的故事。



iteye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给或者发邮件到[email protected]即可。

请先介绍一下您的经历!

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

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

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

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

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

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

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

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

angularjs是如何实现这一理念的?

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

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

angularjs的设计目标是什么?

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

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

angularjs项目的开发人员有几名?

最初angularjs项目团队只有adam abrons和我两个人。但自从google公司接管了这个项目后,目前团队人数已经达到了15人。

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

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

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

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

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

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

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

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

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

哪些应用适合使用angularjs?哪些不适合使用?

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

angular的未来会如何发展?

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

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

尝试去开发一些伟大的网站,让web变得更美好。
  • 大小: 62.3 kb
  • 大小: 16.3 kb


评论 共 14 条
14 楼 2016-03-14 16:33
angular实现双向数据绑定实在是太好用了,特别是和ajax一起来用,那叫一个快字!
13 楼 hantsy 2013-11-27 22:16
我写了一些 samples,前端使用 angularjs bootstrap, 不同的后端(zend2, grails, cakephp)输出 rest api。

12 楼 2013-11-08 21:38
感觉angularjs的设计思想很好,效率很高,但是兼容性和网速慢加载问题需要解决。最近学习中 。http://www.mbaike.net
11 楼 2013-11-07 22:30
1927105 写道
我纳闷了,这到底是csdn专访还是iteye专访?

早就合体了,你不知道吗?
10 楼 2013-11-03 09:40
damoqiongqiu 写道
oreilly的《angularjs》已由电子工业出版社出版

好书!!!超赞!!!
9 楼 2013-10-26 12:35
oreilly的《angularjs》已由电子工业出版社出版
8 楼 2013-10-14 18:26
我纳闷了,这到底是csdn专访还是iteye专访?
7 楼 2013-10-12 12:03
tree型结构可以分分钟拖死dirty-checking机制,之前有人发过优化方案,希望开发者能注意到这个问题。
6 楼 2013-10-12 10:38
楼主好人啊
5 楼 2013-10-12 10:25
daquan198163 写道
d442579302 写道
mvw是啥啊,貌似脸搜都难搜到。。。

model view and whatever

哈哈!!!
全称听过,mvw简称第一次见到.
4 楼 2013-10-12 00:19
d442579302 写道
mvw是啥啊,貌似脸搜都难搜到。。。

model view and whatever
3 楼 2013-10-11 21:43
d442579302 写道
mvw是啥啊,貌似脸搜都难搜到。。。

model view whatever
是不是这个https://code.google.com/p/dark-matter-data/wiki/mvwoverview
2 楼 2013-10-11 18:02
mvw是啥啊,貌似脸搜都难搜到。。。
1 楼 2013-10-11 17:41
正在学习。。。。。。  

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • angularjs angularjs 让您编写客户端 web 应用程序,就像您拥有更智能的浏览器一样。 它允许您使用旧的 html(或 haml、jade 和朋友!)作为模板语言,并允许您扩展 html 的语法以清晰简洁地表达应用程序的组件。 ...

  • 专访angularjs框架创始人misko hevery:让web开发更便捷http://www.csdn.net/article/2013-10-08/2817118-angularjs-framework-googleangularjs是一款开源的javascript mv*(mvw、mvvm、mvc)框架,目前由google维护。...

  • angularjs是一款开源的javascript mv*(mvw、mvvm、mvc)框架,目前由google维护。angularjs弥补了html在构建应用方面的不足,其通过使用标识符(directives)结构,来扩展web应用中的html词汇,使开发者可以使用...

  • angularjs 诞生于2009年,由misko hevery 等人创建,后为google所收购。是一款优秀的前端js框架,已经被用于google的多款产品当中。angularjs有着诸多特性,最为核心的是:mvc、模块化、自动化双向数据绑定、依赖...

  • angularjs 诞生于 2009 年,由 misko hevery 等人创建,后为 google 所收购。是一款优秀的前端 js框架,已经被用于 google 的多款产品当中。angularjs 有着诸多特性,最为核心的是:mvc、模块化、自动化双向数据绑定...

  • 1.前端框架angularjs入门1.1 angularjs简介angularjs诞生于2009年,由misko hevery等人创建,后为google所收购。是一款优秀的前端js框架,已经被用于google的多款产品当中。angularjs有着诸多特性,最为核心的是:...

  • angularjs 诞生于2009年,由misko hevery 等人创建,后为google所收购。是一款优秀的前端js框架,已经被用于google的多款产品当中。angularjs有着诸多特性,最为核心的是:mvc、模块化、自动化双向数据绑定、依赖...

  • 最初是由misko hevery和adam abrons于2009年开发,现在是由谷歌维护。特性angularjs是一个功能强大的基于javascript开发框架用于创建富互联网应用(ria)。angularjs为开发者提供的选项(使用javascript)在一个干净的...

  • 它最初是由misko hevery和adam abrons于2009年开发。现在是由谷歌维护。它的最新版本是1.3.14。 angularjs四大特征  ①mvc的模式  angular遵循软件工程的mvc模式,并鼓励展现,数据,和逻辑组件之间的松耦合,通过...

  • angularjs 诞生于2009年,由misko hevery 等人创建,后为google所收购。是一款优秀的前端js框架,已经被用于google的多款产品当中。angularjs有着诸多特性,最为核心的是:mvc、模块化、自动化双向数据绑定、依赖...

  • angularjs 诞生于2009年,由misko hevery 等人创建,后为google所收购。是一款优秀的前端js框架,已经被用于google的多款产品当中。angularjs有着诸多特性,最为核心的是:mvc、模块化、自动化双向数据绑定、依赖...

global site tag (gtag.js) - google analytics