揭秘Angular 2
  • 推荐3
  • 收藏6
  • 浏览3.5K

揭秘Angular 2

广发证券互联网金融技术团队 (作者) 

  • 书  号:978-7-121-30650-1
  • 出版日期:2017-01-11
  • 页  数:504
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:张春雨
AngularJS诞生于Google,已用于开发多款Google产品。它是一套JavaScript前端框架,用于开发当下流行的数据驱动的单页面Web应用。其核心特性是:MVC、模块化、自动双向数据绑定、语义化标签、依赖注入等。《揭秘 Angular 2》讲解了Angular 2的开发概念和原理,并通过丰富的开发实例向读者展示了构建复杂应用的完整过程,包括学习使用Angular 2特有的基于DOM的模板系统,实现复杂的后端通信,创建漂亮的表单,制作导航,使用依赖注入系统,提高Web应用的安全性,等等。
谷歌官方指定参考 彻底拥抱新版 案例|源码|特性全部基于2.0 原理扎实|讲解深入|实战丰富
推荐序 1
========

让时间倒推至 2013 年初。

这一年,笔者从科技外企、互联网界投入到本土金融机构,在所谓“互联网金融”的喧嚣中,开始招募与建设一个金融科技的研发组织。此刻正面临着一个个此前职业生涯所未遇的、因行业文化与组织管理差异而需重新学习适应的小“冲击”。其中印象最深的一个,无疑是在招聘过程中感受到来自互联网大企业的工程师对传统金融业 IT 的一定程度上的“蔑视” —— 通常面试过程中面试者最正面的反应莫过于“嗬,没想到券商还有这样的技术”,更多的面试者则是把金融机构的前端技术想象停留在 Visual Basic、JQuery 阶段。传统金融机构,对于年轻的互联网技术人,很可能是恐龙般的存在。想想现在有多少年轻人从来不去银行营业部办业务、甚至从来不去商场购物的?大部分人对于金融机构的印象,深受该机构的网站、手机 App 影响。有很多面试者在面试中吐槽金融行业整体软件服务糟糕的用户体验,把面试变成一个尴尬的“用户反馈”渠道。这就是个人在转换行业后遭遇的难忘经历。

当然,这种经历也和我们“不自量力”,自找不痛快有关 —— 作为“传统” IT 组织非得去“忽悠”顶级互联网企业的骄傲的牛人们加盟……可是,事实上很多传统行业的前端技术(以及很多其他技术)都是没有与时俱进的,我们如果不想办法建立起强悍的技术团队、采用更前沿更领先的技术弯道超车,就永远无法解决用户体验糟的问题,永远难以改变在技术界留下的“技术落后”的负面印象,这些负分会让招募技术牛人更加困难,因为有追求的工程师,都希望和一流的团队合作,开发有个人成就感的一流的技术应用。这是一个恶性循环,如果不打破它,我们既做不出好的产品,也招募不到好的工程师。

我们的办法,是采用“激进”的技术“破冰”。在 2013 年,类似 Angular、Node.js、MongoDB、Docker 等等这些技术,恐怕在大部分互联网公司里依然属于较为少用的技术,更遑论以稳定可靠为导向的、技术路线保守的金融界。采用这些技术开发交易额动辄以“亿元”为单位的金融应用,可以称得上“激进”。可是我们有一个论调,就是:对于新兴技术有高度热情甚至“疯狂”的工程师,往往是技术比较强悍的工程师,他们驾驭故障、问题的能力,往往又是比较强的;相比之下,技术套路保守、比较求稳的团队,则不一定以技术见长。这两者权衡之下,我们决定冒一点风险,通过更前沿的技术吸引有技术热情的互联网人加盟,给他们玩新技术的自由的同时也考验他们填技术“坑”的能力。当然,这些技术在硅谷诞生已有时日,已经形成庞大的海外社区,我们并不是一拍脑袋为了“前沿”而“前沿”,该做的论证依然需要严谨地做。最重要一点是,我们首先应该纠正“盲目”的态度 —— 对于任何新鲜技术,避免因为自己的不熟悉、缺乏调研就一概而论地斥之为“不成熟”,事实上,“没有调查研究就没有发言权”,抱着开放的心态深入了解新技术,会发现它们中有很多是从根本上经得起“思想实验”、符合逻辑、符合未来发展方向的。但我们可以看到,很多企业尤其是非科技行业的机构,往往对于任何新兴技术没有深入的、逻辑的、严谨科学的分析,而是简单粗暴地以技术存在的时间“年龄”作为采用与否的判断标准,这是令人遗憾的。

从 2013 年起,类似CoffeeScript、TypeScript、ES6/7、Promise、Meteor.js、Yeoman、Ember.js、Babel、Ionic、RxJS、Vows/BDD 等就出现在我们的前端技术雷达屏幕里,Web Component/Polymer 甚至是我们招聘的试题。我们既是 Isomorphic(全栈同构)App 的践行者,也很可能是金融界最早最彻底大规模使用 MEAN(MongoDB、Express、Angular、Node.js)架构的团队。我们的股票交易终端证明了 HTML5/React/Electron 技术可以成就 “dead-serious” 的严肃金融应用,我们的电商平台则以数百亿级理财产品销售量,最有说服力地充当了Angular/Node.js 在金融业的所谓“成功案例”……

时间回到四年后的今天。

我们终于建立起一个新型金融科技研发组织,崇尚 Reactive 的架构风格与技术工具,时刻紧盯技术前沿,吸收大量跨界工程师,向传统 IT 注入了互联网技术基因与文化。本书的作者们,正是这个组织里有代表性的一群,他们和试验性的新技术一起成长,经受金融业对技术尝试带来的不确定性的零容忍,承担巨额交易量下技术创新的高风险,持续学习并学以致用……这不仅需要勇气,也需要情怀,我以他们为荣。

现实中,垂直行业里具备勇气与情怀的 IT 恐怕是不多的,原因之一是因为 IT 作为企业内的“乙方”和成本中心,永远被业务线驱动而疲于奔命,无暇顾及新技术新文化; 原因二是因为以行业业务为主导的企业往往并不懂技术,也不理解技术的重要性,一位工程师选择用 JQuery 还是 Angular 开发前端,并没有人关心,而且为了“安全稳妥”起见,往往做出“保守”选择。情怀和勇气,是垂直行业IT的稀罕物。

但是在一个高度同质化的行业如证券业,技术就是一个差异化竞争的决定因素,新的函数语言、新的框架、新的开发工具……差异化和技术领先,体现在这些技术细节的追求里。

本书的作者们,是这些技术细节的追求者。这一次,他们利用自己每天“正常加班”之外少得可怜的个人业余时间,凭着极大的耐心、坚持、团队协作,把其中一个细节 —— 也就是对 Angular2 的经验与理解,完全原创性地分享给读者。编写这本书,既是历时七八个月的凝聚团队的工程项目,也是年轻队员们职业生涯里一次难忘的体验,they make a difference —— 首要是为了他们自己,但希望也能为你们,前端技术的爱好者们!

谢谢。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
梁启鸿
董事总经理@金融科技研发
广发证券 信息技术部
2016年12月1日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

推荐序 2
========

Angular's developer community in China is active and thriving. This comprehensive new book is the first originally authored book on Angular written in Chinese for a Chinese audience. The author and his team is well known in the local Angular community for his contributions. We thank him and his team for their work towards making Angular even more friendly to developers in China and hope this book will be helpful.
在中国,Angular?开发者社区非常活跃并且正在蓬勃发展。本书作者和他所在的广发证券互联网金融技术团队编写的这本新书内容全面,并且是面向中国读者的第一本中文原创书籍。本书作者所在团队所做出的贡献在当地的?Angular?社区广为人知。广发证券互联网金融技术团队的工作让?Angular?对中国开发者更加友好,我们非常感谢他们所作出的贡献,并真诚希望他们的这本书能给大家带来帮助。

——Naomi?Black,?Technical?Program?Manager?and?Lead,?Angular
推荐序 3
========

?

作为谷歌所支持和投资推广的一个跨平台的开源技术,Angular在中国开发者中获得了越来越多的关注和采用。根据我们统计到的数据,Angular 第一版已经在大量的中国企业中获得了应用,其中有很多大型企业,也有小型的创业团队。

本书作者所在的广发证券互联网金融技术团队就是一个将Angular付诸实践的先行者。不仅如此,广发证券互联网金融技术团队还快速升级到了Angular 2,创造了中国企业中采纳 Angular 2 最早的实践先例之一。

我特别高兴看到本书作者和他所在的团队能联合撰写这本书,他们把使用 Angular 2 的开发经验向业界进行了分享,同时也详细介绍了 Angular 2 的各项特性。他们的实战经验一定能帮助更多开发者快速理解使用 Angular进行开发的价值,看到最新版Angular的优势。

我相信广发证券互联网金融技术团队在本书中的介绍,能帮助你更方便地学习Angular。他们丰富的经验和最佳实践,能鼓舞你在你的企业中使用Angular的信心。

我推荐这本体现了开源和分享精神的书!
预祝你有个愉快的学习经历,并且能尽快上手Angular!

——栾跃 (Bill Luan) 谷歌 开发技术推广部 大中华区主管
前言
====

2016 年 9 月 15 日,Angular 2 横空出世。鉴于 Angular 1.x 的巨大成功,加上 Angular 2 自身超前而颠覆式的设计,使其市场关注度水涨船高。本书是一本帮助读者对 Angular 2 (后文如无特殊区分,也称为 Angular) 进行快速了解、深入熟悉并用其进行实战开发的书籍。

本书概述
--------

本书主要分为入门篇、深入篇和实战篇三大部分,共 18 个章节。

第一部分:从第 1 章到第 4 章,主要讲述整个前端发展史的演进,Angular 的发展历程、核心概念以及周边工具的简单介绍,快速熟悉 Angular 官方推荐的开发语言 TypeScript,最后以一个通讯录示例介绍如何搭建开发环境并快速上手 Angular。

第二部分:从第 5 章到第 12 章,主要围绕通讯录示例深入讲解 Angular 的相关知识点,包括 Angular 的运行机理与整体架构介绍、组件与变化监测相关内容、模板与管道、指令的总体介绍、服务与响应式编程 RxJS、强大的依赖注入、灵活高可用的路由机制等,最后介绍了项目开发中测试相关的内容。

第三部分:从第 13 章到第 18 章,主要以实现一个问卷调查系统为目标,阐述如何使用 Angular 进行项目的实战。主要内容包括项目背景介绍、开发环境的搭建、整体技术架构分析、用户管理以及问卷编辑等页面的实现细节等,最后讲解了项目的构建流程以及优秀实践。

谁适合这本书
------------

本书的主要目标读者是有一定 JavaScript 开发能力的新人,有 Angular 1.x 相关经验的开发者,有 Java、C\# 等后端语言编程经验的人,或者想通过本书快速了解 Angular 2 掌握更多新鲜理念的资深工程师等。

如何阅读此书
------------

本书基于 Angular 2.0 版本进行讲解。

本书按照由低到高的难度变化思路进行撰写。第一部分适合刚接触 Angular 的读者进行细致的阅读,如已有相关基础或比较熟悉 Angular 的同学可以跳过第一部分,直接学习第二部分深入理解或者第三部分项目实战。

全书的插图采用统一的绘图风格,以手绘风格的形式表现出来,力求简洁,如遇部分难懂之处可配合上下文进行解读。

本书包含诸多代码段,这些代码段可分为两类,一类是比较完整独立的,跟着编写并能看到运行效果的示例代码;另一类是辅助学习的代码段,以介绍概念知识点为主,力求减少不相关代码的干扰,通常只截取最核心的片段,并以伴有省略号的形式出现。本书涉及到的三个主要示例的源码我们也已通过GitHub开源,网址如下所示,感兴趣的读者可以下载运行,辅助对本书相关知识的学习理解。

- Hello World 例子:`https://github.com/angular-programming/hello-world`

- 通讯录例子:`https://github.com/angular-programming/angular2-contacts-demo`

- 问卷调查系统:`https://github.com/angular-programming/angular2-questionnaire`

为了加强对相关知识点的理解,本书也加入了一些旁注,对内容进行相关补充。部分较为深入但不常用的知识点,将以扩展阅读或者批注的形式展现。

勘误和支持
----------

由于笔者水平有限,又是团体作战,且 Angular 更新迭代比较快,加上书籍撰写的时间比较仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。读者可以把书中发现的问题或建议通过在 GitHub 上提 Issue 的方式反馈给我们,网址如下所示,我们会尽快回复大家的疑问,并依据收集的信息整理修正。

`https://github.com/angular-programming/issues/issues`

读者也可登录博文视点官网 `http:// www.broadview.com.cn/30650` 下载本书代码或提交勘误信息。一旦勘误信息被作者或编辑确认,即可获得博文视点奖励积分,可用于兑换电子书。读者可以随时浏览图书页面,查看已发布的勘误信息。

致谢
----

首先,感谢电子工业出版社的张春雨、刘佳禾等编辑以及排版白涛老师,自始至终给予我们强有力的帮助和支持。如果当时没有春雨老师的邀请,我们可能就不会有写书的冲动,也就不会有本书的诞生了。

其次,要感谢广发证券互联网金融技术团队的全体小伙伴们。本书是整个团队(参与写作的人数多达21人)在繁忙工作之余利用琐碎的业余时间完成的,其难度不亚于一次大项目的协作,如果没有大家的紧密协作和坚持不懈,这本书也是不可能完成的,所以非常感谢以下作者的辛苦付出。
章节 作者

整体内容审校 吴炳杰、张淼、高海浪、汤桂川、李仲辉、闫学凯、唐明、梁景湛
第一章 前端风云 汤桂川
第二章 Angular 简介 高海浪
第三章 TypeScript 入门 张淼、姚云萍、郭力恒
第四章 快速入门 钱骞、吴炳杰
第五章 Angular 架构总览 李仲辉
第六章 组件 梁景湛、唐明
第七章 模板 黄晓婷、袁野
第八章 指令 龚麒
第九章 服务 与 RxJS 邓玉龙、吴冠鹏
第十章 依赖注入 张淼、姚云萍
第十一章 路由 李远、郭伟
第十二章 测试 李泽扬
第十三章 问卷调查系统简介 闫学凯、王扬
第十四章 项目起步 闫学凯
第十五章 问卷编辑模块 闫学凯
第十六章 我的问卷模块 闫学凯
第十七章 用户管理模块 杨宾生
第十八章 项目构建和最佳实践 王扬

目录

目录 阅读
第1部分入门篇
第1章 前端风云
第2章 Angular简介
第3章 TypeScript 入门
第4章 快速入门
第2部分 深入篇
第5章 Angular 架构总览
第6章 组件
第7章 模板
第8章 指令
第9章 服务与RxJS
第10章 依赖注入
第11章 路由
第12章 测试.
第3部分 实战篇
第13章 问卷调查系统简介
第14章 项目起步
第15章 问卷编辑模块
第16章 我的问卷模块
第17章 用户管理模块
第18章 项目构建和最佳实践

本书勘误

印次
  • 页码:52  •  印次: 5

    此处代码有误,正确的顺序为:
    selector: person
    template: person.html
    component init
    directive init
    directive call
    component call

    不会游泳的鱼 提交于 2017/10/24 14:33:31
    张春雨 确认于 2017/11/13 14:20:06
  • 页码:345  •  行数:最后一行  •  印次: 3

    npm install karma-webkpack —save-dev
    应为
    npm install karma-webpack —save-dev
    多了个k

    Story5 提交于 2018/9/27 15:01:24
    张春雨 确认于 2019/4/12 14:02:10
  • 页码:474  •  行数:19  •  印次: 3  •  修订印次: 5

    集中存放在问卷创建模板文件夹下的 share文件夹中
    应为
    shared

    zhojie 提交于 2017/10/26 14:28:15
    张春雨 确认于 2017/11/13 14:19:03

读者评论

  • 163页:

    <table border=1>
    <tr><td [attr.colspan]="{{1+2}}">合并单元格</td></tr>
    </table>
    代码运行报错

    leeftag发表于 2017/10/8 15:29:31
  • 你好,我公司打算局域网使用Angular2 开发项目,想知道不联网如何使用Angular2开发

    死灰书生发表于 2017/9/25 17:54:49
    • 不联网的话,在其他地方把已经下好的@angular的一系列npm包复制过来就可以使用。

      张春雨发表于 2017/9/26 16:00:28
  • 书中最后一个实例npm install报错,怎么解决,是那个sass下载不了

    还没想好发表于 2017/8/17 11:15:43
    • sass安装的失败的问题,可以参考这里:https://github.com/lmk123/blog/issues/28
      已经有重写的Demo版本了:
      问卷调查:https://github.com/angular-programming/angular-questionnaire
      通讯录:https://github.com/angular-programming/angular-contacts-demo

      张春雨发表于 2017/9/26 16:00:48
    • 如果还是有问题,最好把报错的信息贴一下……

      张春雨发表于 2017/9/26 16:01:25
  • 希望尽快出电子版。这本书的内容看起来挺不错的。

    FuerJH发表于 2017/7/23 23:25:51
  • 什么时候出电子版?

    orzz发表于 2017/7/3 15:33:42

相关图书

代替VBA!用Pyhton轻松实现Excel编程

苏金明 (作者)

在数据分析方面,Python实际上已经远远超越VBA,因为使用Pyhton提供的数据处理函数和模块就可以实现很多功能,既快速、可靠又简便。<br>本书结合Ope...

¥89.90

DAX权威指南:运用Power BI、SQL Server Analysis Services和Excel实现商业智能分析(第2版)

Alberto Ferrari (作者) 高飞 (译者)

本书是微软DAX语言在商业智能分析、数据建模和数据分析方面的指南。通过对本书的学习,你将了解如何使用DAX语言进行商业智能分析、数据建模和数据分析;你将掌握从基...

¥188.00

从Excel到Python:用Python轻松处理Excel数据

曾贤志 (作者)

本书是写给非IT领域职场办公人员的Python数据处理指南。因为本书面对的不是专业的程序员,所以在叙述上通俗易懂。为了让读者在学习时对Python的知识点有更深...

¥79.00

Power BI企业级分析与应用

雷元 (作者)

本书立足于企业应用场景,从赋能商业价值、培养员工数据分析能力和引领企业数字变革这三大角度勾勒出一套敏捷BI实践指南。<br>除提供丰富的理论指南和Power B...

¥69.80

跟储君老师学Excel极简思维

储君 (作者)

很多人认为,Excel无非就是一个电子表格软件。其实Excel更深层次的意思是Excellent(卓越)。如果你仅仅把Excel当作一个电子表格软件来使用,那么...

¥79.90

Keynote 完全手册

陈天舒(SkyChen ) (作者)

这是一本关于如何思考、设计、制作Keynote(演示文稿)的完整书籍。让读者对设计、制作 Keynote 有全新自我认识后再加以实践操作。无论读者是学生需要制作...

¥79.00