译者序
简介
以笔者之所见,《Angular权威教程》大概是目前除了Angular官方文档之外最全面的学习资料了,这从其英文版多达600多页的篇幅就可见一斑。相应地,它面对的对象涵盖了从入门级到中高级的读者,是一本可以陪伴你成长的好书。
在内容安排上,本书具有大量的例子以保障其足够浅显,但也穿插着一些原理分析以保障其足够深入。除此之外,本书还给出了很多外部参考资料,让富有探险精神的你可以向专家级进发。
翻译说明
未来的版本号及发布计划
Angular就要出4.0了!是的,过一阵子还有Angular 5/6/7/8……这本书会很快过时吗?答案是“不会”。Angular开发组对于未来的版本号及发布计划有一个正式的说明,大意是:
我们要兼顾向后兼容和向前演进,因此以后我们将严格遵循SemVer语义化版本规范,并力求让版本升级变得可预测,以便使用者可以提前安排。在大版本号之间会出现少量破坏性变更,但是不用担心,相邻的大版本号之间只会把一些API标记为废弃的。也就是说,理想情况下,4的程序是可以直接迁移到5的,只是会收到一些API废弃提示,到6中才会彻底移除。同时,官方会在文档中给出详细的升级指南,帮助开发者升级。
因此,尽请放心,Angular以后绝不会出现像从1升级到2这么大的变化。事实上,NodeJS现在采用的就是类似的版本策略,提高发布的可预测性对于工程化开发是很有价值的。
另外,这里为什么没有3?简单点说就是因为路由模块比其他模块多发布过一次,因此当你使用core模块的2.0时,和它配套的router模块却是3.0的,这容易让开发人员困惑,跳过3,可以让所有模块的编号重新对齐。
对框架名称的说明
Angular开发组正式确定了新的命名策略:用AngularJS来代表1.x版本,而Angular代表2.x、4.x、5.x等很多后续版本,因为Angular 2+将支持TypeScript/JavaScript/Dart,而不再是JavaScript。这些变化已经在官方文档中体现出来了,而本书也将同样遵循这样的命名策略。
名词:装饰器与注解
@Component等语法元素在TypeScript中被称为装饰器(decorator),但在本书中,作者统一称其为注解(annotation)。这两种提法都是正确的。在语法层面,@Component确实是装饰器,这是TypeScript的标准叫法;但是在语义层面,Angular中是把它作为注解使用的。两者的区别是,装饰器直接改变被装饰者的行为,而注解则提供元数据,供框架去根据这些元数据做不同的处理。在Angular目前的版本中,@Component确实只是提供了元数据。
我们在跟原作者讨论之后,决定还是跟随作者的提法来翻译。不过在日常工作中,还是建议你遵循TypeScript的提法,将其称为装饰器。
支持与勘误
如果对本书中的一些概念不太理解,请参阅Angular官方中文站angular.cn。这里有来自官方开发组的权威资料。
如果对本书有任何疑问或发现问题,请到https://github.com/nice-angular/ng-book-2提交issue。
同时,对于一些经过确认的issue,我们也会更新在勘误区。
关于我们
参与本次翻译的一共有7位成员,都是AngularJS领域的专家和Angular领域的先行者。稍后会有我们的简短介绍。
本书各章的译者和校对者如下:


除此之外,雪狼还承担了项目管理和中文统稿工作;破狼负责全书的技术准确性把关;叶志敏负责与作者沟通,并在英文理解方面进行把关。
我们的感恩
本书得以发行,首先要感谢Angular开发组及其项目经理Naomi Black。正是由于她的支持和牵线搭桥,才有了我们和图灵的这次合作。
我们还要感谢Google开发技术推广部及其大中华区主管栾跃和项目经理程路,正是由于他们的努力,让Angular在中国的推广普及工作有了正规军的加入,而本书的出版正是推广计划中的一小部分。
我们还要感谢图灵的编辑朱巍和杨琳,在整个翻译过程中,她们给了我们许多专业的指导和帮助。本书得以在迅速出版的同时保证高质量,她们的经验和把关居功甚伟。
最后,要感谢Angular中文社区。我所指的并不是由我们几个创建并管理的这些QQ群、微信群等,而是指广义的中文社区。无论你在北京还是上海,也无论你在国内还是海外;无论你是高手还是新兵,也无论你是否像我们一样是Angular的忠实粉丝,你们都是广义Angular中文社区中的一员。在我们的心中,只有一个Angular中文社区,她不被任何人拥有,也被每一个人拥有,因为她就是我们每个人。
固然,我们这几位译者都是推广Angular的志愿者与先行者,但我们真正希望看到的是一个繁荣、开放、互通的中文社区,是全球Angular社区的一部分,我们希望看到Angular的技术社区遍地开花。因此,如果你有自己的组织或影响力,请联系我们,我们愿与你携手共进,分享各种知识、渠道与资源,共同制定与推进社区发展计划。要知道,无论你将来是求职还是创业,一个繁荣的社区都会给你带来强力的支持。
一旦有了共同的愿景和开放、包容的文化,我们就能无视时空的阻隔,在天南海北守望相助,共同面对新技术的挑战与机遇。纷繁的世界、冰冷的技术与温暖的社区,共同构成了本书的出版背景。
雪狼的感恩
汪志成,网名雪狼。ThoughtWorker & Google开发者专家(GDE),拥有18年软件开发经验,崇尚简单、专业、分享,“好为人师,好为人师”;合著有《AngularJS深度剖析与最佳实践》。
首先,我要感谢我的家人,特别是我的妻子春娜。为了翻译官方文档和这本书,我失去了很多陪伴他们的时间,没有他们的支持,故事将无从开始。
其次,我要感谢ThoughtWorks,没有这样一个平台,我就无法安心钻研技术,更没有大量把新技术应用于工程实践中的机会。
最后,要特别感谢我刚刚出生的女儿,你是激励我前进的动力。闺女,看到了吗?这是老爹给你的迎新礼物。
破狼的感恩
格茸扎西,网名破狼。ThoughtWorks一线码农、架构师、咨询师;爱好读书和旅游,也常涂鸦一些技术博文;合著有《AngularJS深度剖析与最佳实践》;国内Angular最早布道者,Nice Angular社区“狼主”。
首先,要感谢我的妻子和父亲。因为他们的鼓励,我才能顺利完成本书相应章节的翻译。
其次,要感谢ThoughtWorks这个大家庭。因为在这个自组织和黑客文化环境的熏陶下,我才能潜心钻研这些技术。
最后,要感谢图灵出版社的朱巍编辑、本书的作者以及其他译者们。
叶志敏的感恩
叶志敏,虽留英多年、远漂他乡、四处奔波,一颗热爱软件开发的心却依旧如初。多年前曾与雪狼共事,合作愉快,因此成为好朋友。由雪狼推荐进入Angular世界,使用Angular和.NET平台开发软件多年。从Alpha阶段开始使用Angular。与雪狼合作,翻译Angular官方文档站,并经过Angular团队的推荐,承接翻译本书的重任。
首先感谢我的妻子。从怀孕到照顾女儿健康成长,她一直对我的工作非常理解和支持,从无怨言。其次,感谢我母亲和岳母的慈爱与帮助。最后,希望女儿能健康成长,平安一生。
Hantsy的感恩
Hantsy,拥有15年软件工程经验。2012年曾受JBoss(RedHat子公司)邀请前往波士顿参加JBoss用户和开发人员年度大会,并获得JBoss Community Recognition Awards。现为自由职业者,远程工作多年。
感谢Angular中文团队和图灵的支持,非常荣幸参与本书中文版的翻译。感谢Angular团队的努力,为我们带来如此优秀的工具框架。
张旋的感恩
张旋,PMP、ACP、NPDP,中科院计算所烟台分所集成应用中心主任。1982年生人,1996年起接触编程。正式从事软件工作行业11年。擅长项目管理、团队管理、技术体系建设。非常喜欢研究和对比各种新技术,生成适合工程使用的技术栈,并灌输到整个团队中去。
十分荣幸能成为Nice Angular社区的一员,感谢雪狼和破狼。感谢本书原作者为我们提供了一本这么好的Angular教程,也感谢本书的所有翻译者,从你们身上我确实学到了很多。感谢我的老婆莉莉,照看乐乐辛苦了,谢谢你给我时间让我做自己喜欢的事。最后感谢图灵出版社的朱巍编辑,本次合作非常愉快,期待下次更好的机会!
郑丰彧的感恩
郑丰彧,网名Z,现就职于大商集团天狗网,Angular爱好者,喜欢函数式编程、WebGL。
首先,我要感谢雪狼,一次很偶然的机会受到雪狼的邀请,让我受宠若惊,也为我开启了这次Angular翻译之旅。
其次,我要感谢我的家人,尤其是有孕在身的老婆和孕育中的宝宝。为了翻译这本书,我牺牲了很多原本用来陪伴你们的时间。
最后,我想对即将出世的女儿柚柚说句话:我们全家人对你的期待正如我们Nice Angular社区对此书的期待。所以,赶快“问世”吧!
王子实的感恩
王子实,现任光辉城市全栈工程师。1992年生,自学生时代便喜好编程,一直以来对各种新技术非常着迷,乐于对其进行研究与探索,并将成果在团队中进行推广,以提升整体效率。
非常感谢雪狼能够给我这次机会参与到本书的翻译中来,能够让我对Angular社区尽一点点自己的绵薄之力。
同时也要感谢其他参与翻译的译者们,让我有了这次非常宝贵的经验。尤其是在翻译过程中遇到一些技术问题以及对原书内容有一些疑惑时,大家探究与实践的精神让我印象深刻。
还要感谢我的妻子默默给予我支持与理解。
最后,就是要感谢Google带给我们Angular这个强大而又好用的框架。希望它也能越来越好,不断进步!