说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
AngularJS是Google推出的开源JavaScript MV*(MVW、MVVM、MVC)框架,其通过为开发者呈现一个更高层次的抽象来简化应用的开发。CSDN记者采访了AngularJS的创始人Misko Hevery,请他来介绍AngularJS项目背后的故事。

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

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。

CSDN:AngularJS的设计理念是什么?灵感来自于什么?

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变得更美好。


android.appwidget类剖析 Android NDK之JNI使用例子 RemoteViews - Android Widget开发入门 ASP.NET如何用正则表达式得到网站页面中的所有链接 PHP实现图形验证码案例(1) Android Widget开发实例-电量监控 Android自带Widget - Clock指针钟表源代码分析 C#实现文件批量改名工具 PHP利用Google Chart API生成饼图 PHP操作SQLite数据库 PHP利用DomDocument创建XML文件 ASP.NET如何加密/解密URL网址 如何使用C#读取csv文件 三步骤实现ASP.NET(C#)项目中添加谷歌(Google Map)地图 使用C# ASP.NET以FTP客户端方式下载文件 ASP.NET如何用C#代码检测手机浏览器 使用C#读取上传的Excel文件 新版本SQL Helper类 C#使用iTextsharp生成PDF 在.NET里用iTextSharp库生成PDF文档 用itextsharp将ASP.NET页面导出到PDF中 什么是JQuery-JQuery API jQuery入门指南-JQuery API jQuery的核心部分-JQuery API $(elements)-JQuery API $(expr, context)-JQuery API $(fn) -JQuery API $(html) -JQuery API $.extend(prop) -JQuery API $.noConflict() -JQuery API each(fn)-JQuery API 离开 论坛 散分【六】 离开 论坛 散分【七】 求教SQL语句,高手、或刚入门的同道都进来讨论一哈 最初linux使用什么编译开发的? 离开 论坛 散分【八】 关于字符串截取问题 谁有FASTREPORT的注册版本 我急用!在线等待!谢谢! 离开 论坛 散分【九】 Application.messagebox和messagebox有什么区别呢? 水晶报表的两个小问题? 怎样向Foxpro表中添加float型数据? 离开 论坛 散分【十】 问一个和Session有关的问题,达人请进 在宏里把ie关闭。非常感谢 如何让window.showModalDialog的page提交数据到原来的父页面? 合租住房!! 有没有一个命令直接解开iso文件或提取里面的一个文件或文件夹 请给看看程序:AVI视频的读取和重建 如何显示出电脑内已经注册的dll文件列表? 中程浮点数问题! solaris下CC编译器的问题? UML的书籍和软件? 那里有vs.net2003的vss6.0d版本? 有时候exe文件不能运行? 自己准备写一个工资发放和发布的程序,欢迎探讨. 襄儿妹妹还在吗?幸好偶这个马甲还有点分,全给你吧,这个ID密码她不知道呵呵~~~ 关于linux WEB服务器名的问题? 请教ATL中CBindStatusCallback的问题 我的IE不能打开新窗口?用鼠标左键点击超链接没有反应? 我的项目改变目录后打不开,怎么办? 多CPU机器,同时可有几个线程处于运行状态? 高分求高效高斯模糊算法。。 如何判断软件是否过期 是不是运行ASP.Net应用的服务器必须安装.Net FrameWork呢?还是只要有Win2000 Server和IIS就行。 谈情说爱 清除内存中用call调用的脚本文件? 一个很老的问题,如何避免CListCtrl闪烁。 请大家给看看程序:avi视频读取和重建 研究数字图像处理应该那些知识? 图片上传并显示实例(VB+SqlServer2000) SQL语言中 怎样将CHAR型转换成INT型? 級連更新... 怎么实现回车自动跳到下一个位置 如何在光标处插入字符? CSSCLASS高手关注,我想把ListBox、DropDownList样式改为平面,而且颜色边框为1颜色不为灰色,用CssClass具体怎么写呢?越详细越好?多谢 求一招:::怎么对付那些那了代码就不给钱的家伙???? =========发誓:远离csdn!================ phpmyadmin为何安装不成功? 谁有crystal reports的电子书。 这个radio的返回值是什么? 离开csdn,公布密码!!!!!!!!! 谁有哈工大郑宝东线性代数课后答案,第三版的? 大国沙文主义的表现 什么叫"大国沙文主义"?老听说这个名词,希望明白人告诉一下. 散点图怎么做 怎么用word做散点图 关于excel2013的散点图里面有两条线,但是标的点都是原点,怎么弄成别的给区分开? 能量守恒定律(不考虑质能转换)在什么条件下不成立?“相对论里面有提到不成立情况”这是真的么? 史记没有记载的是下面那个?a.汉武帝b.张仲景c.刘邦d.秦始皇 一个图画,图的是一个表,时针、分针、秒针都在12点的位置 若函数f(x)=x2-(2a-1)x+a+2在区间[0,1]上存在反函数,求a的取值范围答案是a≤1/2或a≥3/2 求具体完整的步骤 若函数y= x2-2ax+2a在[1,2]上存在反函数,求a的取值范围怎么算 为什么 加拿大暴风雨30多万人受影响加拿大暴风雨30多万人受影响加拿大少数族裔报纸陷入财政困境洛杉矶机场枪击案嫌犯或因被辞退报复社洛杉矶机场枪击案嫌犯或因被辞退报复社四川公务员上班陪领导游泳溺死续:副局三学童上学时遭绑架遇害 家长质疑校方男子驾车遭陌生人袭击追逐 逃到派出所上海自贸区“满月” 周边房价上涨三到专家:“以房养老”适合中国国情 明年媒体追问3小学生被绑架杀害:校车为何中体产业暴涨背后的真相,80%散户知新雅阁还能找回昔日的辉煌吗?大地艺术家安迪·戈兹沃西:请尊重自然中国购苏35花费上千亿,良苦用心谁懂【住宿攻略】去香港旅游住哪儿好 ?超长的复活节假期 你准备好了吗?怎么割了双眼皮 眼睛还是没有大???安邦海外并购或难过我国监管门槛华域汽车即将迎来一波暴涨,89%散户征兵横幅被撤,原因竟是“影响市容”?中国这家公司居然3D打印人造骨了,并
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘