AngularJS深度剖析与最佳实践

AngularJS深度剖析与最佳实践 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
雪狼,破狼,彭洪伟 著



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-11-22

类似图书 点击查看全场最低价

图书介绍

出版社: 机械工业出版社
ISBN:9787111520962
版次:1
商品编码:11845736
品牌:机工出版
包装:平装
开本:16开
出版时间:2016-01-01
用纸:胶版纸
页数:318


相关图书





图书描述

内容简介

  在前端开发中,如何弥补语言的先天不足?如何干净漂亮地解耦?如何设计“小而美”的类/代码块?对于一个“极客”来说,总是要用一些漂亮的技术来解决这些问题,而Angular当之无愧是这类技术之一。本书深入讲解AngularJS的基本概念及其背后的原理,包括完整的开发框架与实践,从最初的框架搭建开始,快速迭代,逐步丰富项目的骨肉,并在这个过程中展现AngularJS的诸多特性与技巧,内容由浅入深、讲解细腻、实战性强,是从AngularJS的小工走向专家的必备参考。
  主要内容:
  从实战开始,通过实战演练逐步带领读者体验Angular的开发过程,并随着进度的推进,引入所需的技术和概念。
  介绍一些基本概念是什么,为什么,怎么用,什么时候用,什么时候不用等。
  AngularJS中的MVVM模式、启动过程、脏检查机制、指令生命周期等。
  AngularJS实践,如前后端分离部署、如何设计友好的REST API、移除不必要的$watch、用打包代替动态加载等。
  AngularJS开发技巧与实战中的“坑”,如表单验证错误信息显示、Angular中的AOP机制、在代码中注入Filter、动态绑定HTML等。

作者简介

  雪狼,资深前端架构师,热爱技术,热衷编程,16年来从未中断。涉足的软件开发领域从桌面软件到Web应用,涵盖翻译软件、通讯软件、安全软件、企业级系统等。他还是AngularJS中文社区管理员,在社区分享了大量技术文章,受到读者的好评与称赞。

  破狼,ThoughtWorks一线码农,高级架构师、咨询师国内Angular早布道者之一,ngnice、ngShowCase创建人之一。Angular中文社区“狼主”,全栈攻城狮,同时也运维了一个前端微信公众号“shuang_lang_shuo”。

  彭洪伟,ThoughWorks一线码农,Angular早期使用者,ngnice的早期贡献者之一。除了前端技术,对Java、Scala、Ruby等也均有涉猎,并且翻译了构建工具SBT的文档

目录


前 言
第1章 从实战开始1
1.1 环境准备1
1.2 需求分析与迭代计划3
1.3 创建项目11
1.3.1 Yeoman11
1.3.2 FrontJet13
1.4 实现第一个页面:注册18
1.4.1 约定优于配置18
1.4.2 定义路由19
1.4.3 把后端程序跑起来24
1.4.4 连接后端程序26
1.4.5 添加验证器28
1.4.6 “错误信息提示”指令31
1.4.7 用过滤器生成用户友好的提示
信息33
1.4.8 实现自定义验证规则34
1.4.9 实现图形验证码36
1.5 实现更多功能:主题38
1.5.1 实现主题列表38
1.5.2 实现过滤功能40
1.5.3 实现分页功能42
1.5.4 实现主题树44
1.5.5 实现递归主题树56
1.5.6 实现“查看详情”功能58
1.6 实现AOP功能59
1.6.1 实现登录功能60
1.6.2 实现对话框65
1.6.3 实现错误处理功能67
1.7 实战小结68
第2章 概念介绍70
2.1 什么是UI70
2.2 模块71
2.3 作用域72
2.4 控制器73
2.5 视图74
2.6 指令75
2.6.1 组件型指令76
2.6.2 装饰器型指令79
2.7 过滤器81
2.8 路由82
2.9 服务83
2.9.1 服务85
2.9.2 工厂86
2.10 承诺88
2.11 消息92
2.12 单元测试93
2.12.1 MOCK的使用方式94
2.12.2 测试工具与断言库95
2.13 端到端测试96
第3章 背后的原理98
3.1 Angular中的MVVM模式98
3.2 Angular启动过程102
3.3 依赖注入106
3.3.1 什么是依赖注入106
3.3.2 如何在JavaScript中实现DI107
3.3.3 Angular中的DI108
3.3.4 DI与minify109
3.4 脏检查机制110
3.4.1 浏览器事件循环和Angular的MVW110
3.4.2 Angular中的$watch函数111
3.4.3 Angular中的$digest函数113
3.4.4 Angular中的$apply116
3.5 指令的生命周期117
3.5.1 Injecting118
3.5.2 compile和link过程120
3.6 Angular中的$parse、$eval和$observe、$watch122
3.6.1 $parse和$eval122
3.6.2 $observe和$watch124
3.6.3 使用场景125
3.7 REST127
3.7.1 REST的六大要点128
3.7.2 REST的四个级别130
3.8 跨域131
3.8.1 同源策略与跨域131
3.8.2 如何解决跨域问题132
3.9 前端安全技术133
3.9.1 前端攻击的基本原理和类型133
3.9.2 前端安全与前后端分工136
3.9.3 移动时代的特殊挑战137
3.9.4 安全无止境138
第4章 最佳实践140
4.1 调整开发协作流程140
4.2 前后端分离部署143
4.3 样式中心页144
4.4 CSS的扩展语言与架构145
4.5 HTML的表意性146
4.6 table,天使还是魔鬼148
4.7 测试什么?怎么测?150
4.7.1 准备工作150
4.7.2 如何测试Controller151
4.7.3 如何测试Service151
4.7.4 如何测试Filter152
4.7.5 如何测试组件型指令152
4.7.6 如何测试装饰器型指令153
4.7.7 如何测试网络请求153
4.7.8 如何测试setTimeout类功能153
4.7.9 如何Mock Service154
4.8 如何设计友好的REST API155
4.8.1 URI155
4.8.2 资源拆分155
4.8.3 资源命名155
4.8.4 方法156
4.8.5 返回值157
4.8.6 综合案例:分页API159
4.9 使用controller as vm方式160
4.9.1 源码分析161
4.9.2 推荐用法和优势161
4.9.3 路由中的controller as语法162
4.9.4 指令中的controller as语法163
4.10 移除不必要的$watch163
4.10.1 双向绑定和watchers函数164
4.10.2 其他指令中的watchers函数166
4.10.3 慎用$watch和及时销毁167
4.10.4 one-time绑定168
4.10.5 滚屏加载170
4.10.6 其他171
4.11 总是用ng-model作为输出172
4.12 用打包代替动态加载173
4.13 引入Angular-hint173
4.13.1 通过batarang插件使用angular-hint174
4.13.2 手动集成angular-hint174
4.13.3 Module hints175
4.13.4 Controller hints176
4.13.5 Directive hints176
第5章 Angular开发技巧178
5.1 $timeout的妙用178
5.2 ngTemplate寄宿方式182
5.3 在非独立作用域指令中实现scope绑定185
5.4 表单验证错误信息显示186
5.5 Angular中的AOP机制187
5.5.1 拦截器案例188
5.5.2 拦截器源码分析192
5.5.3 Angular中的装饰器195
5.5.4 Angular装饰器源码分析197
5.6 Ajax请求和响应数据的转换198
5.6.1 兼容老式API198
5.6.2 Ajax请求配置的源码分析201
5.7 在代码中注入Filter205
5.7.1 复用指定Filter205
5.7.2 重用多个Filter案例206
5.7.3 Filter源码分析207
5.8 防止Angular表达式闪烁208
5.8.1 表达式闪烁解决方案208
5.8.2 ngCloak源码分析208
5.8.3 最佳实践209
5.9 实现前端权限控制209
5.9.1 事件方案210
5.9.2 resolve方案211
5.10 依赖注入—$injector214
5.10.1 $injector的创建214
5.10.2 $injector注入方式215
5.10.3 $injector的妙用217
5.11 在指令中让使用者自定义模板219
5.12 跨多个节点的ng-if或ng-repeat223
5.13 阻止事件冒泡和浏览器默认行为224
5.14 动态绑定HTML226
第6章 Angular常见的“坑”229
6.1 module函数的声明和获取重载229
6.2 ngModel绑定值不更改232
6.2.1 验证引起的model值不显示233
6.2.2 原型链继承问题235
6.3 指令不生效239
6.4 Angular中锚点的使用240
6.5 ngRepeat验证失效241
6.5.1 简单的验证显示242
6.5.2 复杂的验证显示242
6.6 有些指令需要唯一的根节点243
6.7 指令优先级-Priority243
6.8 ngRepeat报重复内容错误244
6.9 单元测试中promise不触发245
第7章 编码规范247
7.1 目录结构248
7.1.1 按照类型优先、业务功能其次的组织方式248
7.1.2 按照业务功能优先、类型其次的组织方式249
7.2 模块组织250
7.2.1 命名250
7.2.2 Module声明250
7.2.3 依赖声明251
7.2.4 Module组件声明251
7.3 控制器252
7.3.1 命名252
7.3.2 ControllerAs vm声明252
7.3.3 初始化数据253
7.3.4 DOM操作253
7.3.5 依赖的声明253
7.3.6 精简控制器逻辑254
7.3.7 禁止用$rootScope传递数据255
7.3.8 格式化显示逻辑255
7.3.9 Resolve255
7.4 服务256
7.4.1 命名256
7.4.2 代码复用256
7.4.3 使用场景256
7.4.4 Service返回值257
7.4.5 缓存不变数据257
7.4.6 RESTful257
7.5 过滤器258
7.5.1 命名258
7.5.2 重用已有Filter258
7.5.3 禁止复杂的Filter258
7.6 指令259
7.6.1 命名259
7.6.2 Template声明259
7.6.3 link函数的scope参数命名259
7.6.4 pre-link和post-link260
7.6.5 DOM操作260
7.6.6 Directive分类260
7.6.7 Directive不是封装jQuery代码“天堂”260
7.6.8 自动回收261
7.7 模板261
7.7.1 表达式绑定261
7.7.2 Src、Href问题261
7.7.3 Class优于Style262
7.8 工具262
7.9 其他264
7.9.1 内置$服务替代原生服务264
7.9.2 Promise解决回调地狱264
7.9.3 减少$watch265
7.9.4 TDD265
第8章 工具267
8.1 WebStorm与IntelliJ267
8.2 Chrome269
8.3 Gulp273
8.4 Swagger274
8.4.1 前后端分离274
8.4.2 Swagger275
8.4.3 契约测试277
8.5 TSD277
8.6 Postman280
8.6.1 安装280
8.6.2 功能介绍280
第9章 杂项知识282
9.1 Angular 2.0282
9.2 SEO284
9.3 IE兼容性287
9.3.1 问题概述287
9.3.2 问题分类288
9.4 访问统计292
9.5 响应式布局293
9.6 国际化294
9.7 动画296
9.7.1 CSS动画296
9.7.2 JavaScript动画297
9.8 手机版开发298
9.8.1 Hybrid应用298
9.8.2 Ionic300
附录A 相关资源301
后记 提问的智慧318

前言/序言

  新时代
  新挑战
  时代已经不同了!
  17年前,当我的第一个作品推入市场的时候,互联网才刚刚传入中国。
  那时候的软件不需要联网,每个用户也不需要知道其他用户的存在。
  那时候只需要考虑PC运行环境,而需要考虑的屏幕分辨率也只有区区三种。
  那时候的软件项目组多则十几人,少则一人,而发布周期常常会达到半年之久。
  现在,一切都不同了。
  现在,连一个手机电筒软件都在偷偷联网,不能联网的游戏也已经是老古董的代名词。
  现在,软件不但运行在PC上,还要运行在智能手机上,运行在各种Pad上,屏幕分辨率更是多到让研发和测试工程师发怵的地步。
  现在,外界看到的产品其实只是冰山一角,它背后还有很多子系统紧密协作来提供支持,需求和架构的复杂度也暴增。
  但最大的挑战恐怕还是来自发布周期—一期版本在一个月内上线已是常态,而修复bug的时间限制则往往以小时计,甚至以分钟计。
  没错,这些都是新的挑战!好在,我们也有了新技术!
  新技术
  这17年间,软件业最大的技术革命,当然首推互联网。
  互联网不但拓展了软件业的业务范围,更改变了程序员获取知识和解决问题的方式。
  如今,一个不会Google(以及翻墙),没上过GitHub,不知道Stackoverflow的程序员很难想象会有什么发展空间。
  排在第二位的技术革命,当推移动互联网以及智能终端。这场革命不但把曾经的王者诺基亚打落凡尘,而且让苹果重新登上王位。
  这两场技术革命让开源运动遍地开花,更催生了无数的新技术。
  且不提HTTP/HTML/JavaScript/CSS这些耳熟能详的互联网基石,就连在互联网革命爆发之前已经就已经相当成熟的OO领域也有了很大的进展。
  以MVC为例,它不但衍生出MVP、MVVM等很多变种,而且从后端领域扩展到了前端领域。而现在日益火爆的Angular,正是MVC在前端领域的代表作之一。
  一个“极客”总是痴迷于各种“漂亮”的技术,而Angular当之无愧地是其中之一,它可供借鉴的地方很多:
  如何弥补语言的先天不足。
  如何干净漂亮地解耦。
  如何设计“小而美”的类/代码块。
  所以,即使你还没有下决心把Angular应用到项目中,也可以在学习Angular的过程中获得一些启迪,帮助你重构现有项目。
  面对技术的快速进步,有人会感到恐慌,有人会盲目地追踪一切新技术,而真正的极客会看到“新”技术中那些“不变”的元素,会在“新挑战”中看到“新机遇”,并且把握。
  新机遇
  一方面出现了前所未有的挑战,另一方面出现了前所未有的技术,这样的机遇并不多,“极客”们欢呼雀跃。
  对于公司,它将影响产品形态、开发速度和产品品质,也会对团队的组织架构带来改变。比如,伴随着设备的多样化,网络服务的访问入口变得多样化:不但需要有供电脑访问的网站,还需要供手机访问的网站、供Pad访问的网站,对于一些追求极致用户体验的公司来说,还会提供给安卓设备用的App、给苹果设备用的App。
  作为开发人员,也许你会看到或正在经历一个工作量暴增的时代,但是,不要紧张,事情没那么坏。在新时代,有一项重要且迅速成长的技术革新,那就是“前后端分离架构”,它可以有效遏制工作量的暴增。“前后端分离架构”正是伴随着“前端MVC”的成长而成长的。
  它的原理很简单:虽然多出了很多访问入口,但是其背后的业务逻辑并没有本质性变化,那么,我们是否可以让这一套业务逻辑为多种不同形态的终端服务呢?答案是肯定的,那就是让后端只提供跟业务逻辑紧密相关的那部分API,而用户交互等非核心逻辑则交给前端程序来完成。
  这样,我们的工作量并不会成倍增长,而是可以先着重开发一个版本,让后端API和一种形态的前端应用变得成熟,然后再去开发其他形态的前端应用。而这些其他形态的前端程序的工作量和风险都比较容易得到控制。
  但是,根据康威定律,在新的程序架构下,项目的组织架构甚至整个公司的组织架构都将发生相应的变化,而最显著的变化就是出现了专门的前端工程师。前端工程师往往不是零基础开始的,一小部分来自原来负责切图或写JavaScript特效的工程师,不过大部分是从以前开发Web应用的程序员转型而来的。
  无论对于公司还是个人,“前端MVC”以及相应的“前后端分离架构”都是一个新的机遇。不思进取的王者终会没落,勤奋好学的新星将会崛起,希望本书能有幸成为你的助力。
  致读者
  写给想转职或兼修前端的Web工程师
  本书面向的读者,第一大群体是Web工程师。“前后端分离架构”出现之前,在大多数Web应用中,无论是核心的业务逻辑,还是表现层的交互逻辑,都是完全运行在服务端的。写这类程序的程序员就是这里所说的Web工程师。
  随着“前后端分离架构”的普及,原来的开发方式将主动或被迫转变。本书将通过实例引导你完成到“前后端分离架构”的思维转变,以及与此相关的技术。
  如果你是个Web工程师,在读本书的时候请留意用户交互逻辑是如何完全移交给前端程序的,而后端程序又做了哪些精简,特别要注意体会模块职责的单一化、专业化趋势。
  对于部分转职过来的Web工程师,除了转换思维以外,还有一大挑战是前端庞杂的知识体系:HTML/CSS/JavaScript/前端工具链/浏览器兼容性等,每一个领域都相当庞大。
  在本书中,我们无法对此展开讲解,但这些知识对于做实际项目又是必需的。所以,我们只能在附录中提供一些重要的技术要点和“坑”,并且给出一些在线学习资源和书单。这些大部分都是从我们开展培训时所使用的课件改编而来的,具有很强的实战性、实用性。希望可以为你提供一些第三方资料,作为进一步学习的起点。
  写给想进阶为专业前端的切图师
  在很多开发组中,切图师往往由初级程序员或美工担任,有没有想过自己将来向哪里发展?除了面向对象、项目管理等必学的基础技能之外,还可以学习数据库、后端框架、安全技术等,转职为 AngularJS深度剖析与最佳实践 下载 mobi epub pdf txt 电子书 格式

AngularJS深度剖析与最佳实践 mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

AngularJS深度剖析与最佳实践 下载 mobi pdf epub txt 电子书 格式 2024

AngularJS深度剖析与最佳实践 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

学习无止境,买书为了提供自己,写评价为了豆豆

评分

这本书内容不错,我给同学买的,他说很好很喜欢……

评分

内容稍微有点深入,适合有基础的朋友

评分

京东速度就是快,赞!

评分

书的质量不错,买来学习学习!

评分

非常好。原装正版书。

评分

书不错,还没来的及仔细阅读

评分

不适合入门读者,建议有一定基础的看

评分

不错呀,Angularjs的书籍,内容详细,而且还有例子,真的不错

类似图书 点击查看全场最低价

AngularJS深度剖析与最佳实践 mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.qciss.net All Rights Reserved. 图书大百科 版权所有