搜索架构之道
①全新正版,现货速发,7天无理由退换货②天津、成都、无锡、广东等多仓就近发货,订单最迟48小时内发出③无法指定快递④可开电子发票,不清楚的请咨询客服。
¥
70.5
7.1折
¥
99
全新
库存3件
作者刘俊启|
出版社机械工业
ISBN9787111764595
出版时间2024-11
装帧其他
开本其他
定价99元
货号32242853
上书时间2024-12-08
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
刘俊启百度前资深研发工程师、百度前App架构师、百度前OC&Swift编码委员会主席、腾讯研发工程师,国内App研发先行者。
2005年入职盛大·数位红,参与了Game-V(中国第一个无线游戏娱乐运营平台)的研发(NOKIAS60平台)。之后作为初创团队成员,负责多款S60平台的App研发。2009年开始转战iOS平台,负责推进公司产品技术栈向iOS平台迁移。
2010年入职百度,先后负责构建百度搜索App、百度语音SDK、百度语音助手App、百度浏览器App、百度AppWatch版等多个重量级产品的技术架构。多次负责掌上百度(百度App)技术架构的实现及升级工作,涉及App基础技术架构、浏览内核、搜索框架、内容扩展、网络、安全、仿真测试、移动AI、App级复用等方向。
在文本搜索、语音搜索、视觉搜索、技术架构、研发提效等相关领域拥有30余个专利。在百度工作期间,获得3次百度骄傲奖,以及多次事业部及团队级别奖项。
目录
目 录 Contents
前言
基础篇
第1章 搜索客户端的发展与价值2
1.1 从我在百度的工作经历看搜索客户端架构演进2
1.1.1 从零构建搜索客户端App2
1.1.2 Ding:优化移动端搜索的高频搜索需求4
1.1.3 搜索+浏览双框架:优化移动端搜索过程的体验4
1.1.4 搜索结果NA化:优化移动端搜索结果浏览体验5
1.1.5 搜索异步化:优化搜索核心指标7
1.1.6 多容器管理:突破单浏览内核的限制8
1.1.7 变体发布:多App复用搜索能力9
1.1.8 小结10
1.2 移动操作系统级的搜索能力支持12
1.2.1 iOS系统搜索能力12
1.2.2 Android系统搜索能力13
1.2.3 小结14
1.3 App中的搜索功能建设15
1.3.1 京东App中的搜索功能15
1.3.2 微信App中的搜索功能16
1.3.3 快手App中的搜索功能17
1.3.4 有道词典App中的搜索功能17
1.3.5 招商银行App中的搜索功能18
1.3.6 夸克浏览器App中的搜索功能19
1.3.7 小结20
第2章 搜索客户端基础技术21
2.1 搜索全流程的3个核心场景21
2.2 需求输入场景及技术实现23
2.2.1 多线程技术24
2.2.2 网络请求24
2.2.3 搜索建议的数据处理25
2.3 结果页场景及技术实现28
2.3.1 数据持久化存取29
2.3.2 URL携带搜索关键字30
2.3.3 结果页的分类及加载31
2.4 落地页场景及技术实现32
2.4.1 落地页功能扩展32
2.4.2 落地页与结果页的切换管理33
2.5 移动客户端研发注意事项34
2.5.1 移动客户端与PC应用研发的区别34
2.5.2 移动客户端与云端服务研发的区别35
2.6 设计一份可落地的技术方案36
2.6.1 技术方案的辅助决策点评估37
2.6.2 技术方案优先处理原则38
第3章 搜索客户端基础服务40
3.1 搜索客户端协同的服务分类40
3.1.1 客户端运行时对接的服务40
3.1.2 搜索业务对接的服务42
3.2 从客户端的角度看搜索服务端架构43
3.2.1 内容的产生44
3.2.2 内容的去重46
3.2.3 内容的存储48
3.2.4 内容的检索53
3.2.5 搜索结果的产品化封装56
3.2.6 搜索过程客户端与服务端协作流程57
3.3 自有搜索客户端对搜索服务优化的支持58
高级篇
第4章 搜索客户端中并行化响应输入的实现62
4.1 并行化响应用户输入的意义62
4.1.1 搜索是强依赖输入的业务62
4.1.2 App可并行化响应用户输入的价值64
4.2 输入过程并行化任务的分类65
4.3 文本输入搜索过程的并行化任务与支持65
4.3.1 接收用户的文本输入65
4.3.2 处理用户的文本输入66
4.3.3 响应用户的文本输入68
4.3.4 文本输入过程并行化模型69
4.4 语音输入搜索过程的并行化任务与支持70
4.4.1 接收用户的语音输入70
4.4.2 处理用户的语音输入72
4.4.3 响应用户的语音输入73
4.4.4 语音输入过程并行化模型73
4.5 图像输入搜索过程的并行化任务与支持75
4.5.1 接收用户的图像输入75
4.5.2 处理用户的图像输入76
4.5.3 响应用户的图像输入78
4.5.4 图像输入的业务流程支持80
4.5.5 图像输入的服务依赖保障80
4.5.6 图像输入过程并行化模型81
4.6 网页浏览过程的多进程模型85
4.6.1 Networking进程86
4.6.2 WebContent进程86
4.6.3 UI进程简介87
4.7 并行化实现的3个条件87
第5章 设计可扩展网页能力的搜索客户端架构89
5.1 搜索客户端实现网页能力扩展的意义89
5.1.1 基本概念及互通模型90
5.1.2 搜索客户端支持网页扩展及互通的价值91
5.2 使用基础API支持网页浏览91
5.2.1 请求加载新页面91
5.2.2 同步网页加载状态93
5.2.3 管理网页加载状态97
5.2.4 切换页面浏览历史98
5.2.5 响应页面浏览滑动事件99
5.2.6 定制手势响应快捷指令100
5.2.7 关联规则过滤网页内容100
5.3 定义数据通路标准扩展网页能力101
5.3.1 关联Custom URL scheme实现URL调用101
5.3.2 通过JS实现NA功能与网页对话104
5.3.3 接管网络请求实现数据互通105
5.3.4 同步Cookie变化实现状态统一106
5.4 NA与网页互通的能力总览108
5.4.1 网页加载过程互通108
5.4.2 网页浏览交互互通109
5.4.3 网页数据通信互通110
5.5 管理多种浏览内核共存110
5.5.1 针对多种浏览内核的约束111
5.5.2 以系统浏览内核为基点进行扩展113
5.6 以插件的形式扩展网页功能114
5.6.1 网页场景插件化模型115
5.6.2 功能插件管理、调用及事件响应117
5.6.3 网页场景使用插件管理框架120
第6章 设计场景容器化的搜索客户端架构122
6.1 构建多容器管理机制的意义122
6.1.1 单浏览内核管理框架面临的挑战122
6.1.2 构建多容器管理机制的必要性123
6.2 多容器管理框架的核心能力及收益124
6.2.1 多容器管理框架核心能力对齐124
6.2.2 多容器管理框架核心能力模型126
6.2.3 多容器管理框架的收益预估126
6.3 框架升级潜在风险及解决128
6.3.1 并行研发的影响128
6.3.2 Web生态标准的兼容130
6.3.3 页面加载速度指标劣化134
6.4 容器生命周期管理能力建设134
6.4.1 抽象容器的基本生命周期事件134
6.4.2 统一容器生成入口和数据结构135
6.4.3 资源消耗和收益的平衡135
6.4.4 小结138
6.5 容器的展现及事件管理能力建设139
6.5.1 容器的视图展现管理139
6.5.2 容器的视图生命周期事件管理140
6.5.3 容器及框架的手势事件管理142
6.5.4 小结143
6.6 容器的浏览历史管理能力建设143
6.6.1 容器浏览历史的操作144
6.6.2 容器浏览历史条目的存储146
6.6.3 小结147
6.7 多容器管理框架的应用148
6.7.1 容器接入多容器管理框架148
6.7.2 打开新页面时的框架处理逻辑149
6.7.3 页面历史切换及优先级处理逻辑150
6.7.4 容器的销毁与恢复逻辑151
6.8 网页加载性能指标优化152
6.8.1 通过预创建容器优化容器创建的耗时152
6.8.2 通过预加载优化静态资源加载耗时153
6.8.3 通过实现预渲染优化页面整体耗时154
6.8.4 小结155
第7章 设计可定制安全策略的搜索客户端架构156
7.1 搜索客户端可定制安全策略的意义156
7.1.1 移动生态和法律法规中的安全相关标准157
7.1.2 客户端是产品提供服务的第一层158
7.1.3 客户端具备实时发现及干预安全问题的条件159
7.2 网络通信安全保障160
7.2.1 域名解析安全问题及解决方法160
7.2.2 数据传输安全问题及解决方法160
7.2.3 网络安全的技术架构支持162
7.3 网页浏览安全防护162
7.3.1 网页内容安全问题及解决方法163
7.3.2 网页互通安全问题及解决方法165
7.3.3 网页浏览安全的技术架构支持166
7.4 自有服务安全共建166
7.4.1 识别自有客户端并实现差异化服务166
7.4.2 关键请求不可重放167
7.4.3 安全策略要尽早推进168
7.5 用户信息安全保护168
7.5.1 历史数据的读取与技术实现建议169
7.5.2 实时数据的读取与技术实现建议170
7.5.3 用户信息安全的技术实现原则171
7.6 技术复用安全管理171
7.6.1 第三方技术引进安全评估172
7.6.2 自研技术输出安全定制174
第8章 设计可持续优化指标的搜索客户端架构176
8.1 客户端指标可持续优化的意义176
8.2 客户端常见指标简介177
8.2.1 安装包体积指标及优化177
8.2.2 启动速度指标及优化177
8.2.3 加载速度指标及优化178
8.2.4 白屏率指标及优化178
8.2.5 卡顿率指标及优化179
8.2.6 崩溃率指标及优化179
8.2.7 磁盘空间指标及优化179
8.2.8 通用业务指标及优化180
8.3 客户端指标优化基础能力构建180
8.3.1 分组样本设定能力的构建180
8.3.2 数据收集能力的构建184
8.4 客户端指标优化方法及应用187
8.4.1 制定标准188
8.4.2 指标建设189
8.4.3 数据收集192
8.4.4 数据分析193
8.4.5 指标优化196
8.4.6 指标评估199
8.4.7 指标监控200
第9章 设计可统一管理网络通信的搜索客户端架构201
9.1 网络通信可统一管理的意义201
9.2 网络通信优化的实际应用价值203
9.2.1 语音搜索的网络通信管理203
9.2.2 网页场景功能的网络通信管理209
9.3 浏览内核的网络通路实现与功能扩展管理211
9.3.1 浏览内核的网络请求拦截212
9.3.2 网络通路的工作流程213
9.3.3 网络通路中的功能扩展管理214
9.4 统一管理网络通信及分层设计221
9.4.1 系统层的职责与边界221
9.4.2 桥接层的职责与边界222
9.4.3 支持层的职责与边界222
9.4.4 调度层的职责与边界225
9.4.5 接口层的职责与边界227
9.5 业务实现层的网络能力隔离227
9.5.1 依赖浏览内核构建的业务实现分层228
9.5.2 不依赖浏览内核构建的业务实现分层228
第10章 设计可支持移动端AI预测的搜索客户端架构230
10.1 客户端可支持移动端AI预测的意义230
10.1.1 基本概念及关系231
10.1.2 编程方式的演进:从传统编程到人工智能233
10.1.3 客户端使用移动端AI预测与服务端AI预测的对比234
10.2 客户端支持移动端AI预测的挑战235
10.3 模型管理框架实现237
10.3.1 模型管理服务端支持237
10.3.2 模型管理框架客户端实现239
10.3.3 模型管理框架的应用示例243
10.4 特征管理框架实现244
10.4.1 特征分类及框架依赖245
10.4.2 特征复用及框架支持245
10.4.3 特征缓存及框架支持247
10.4.4 特征收集及框架支持248
10.4.5 特征管理框架应用示例249
10.5 移动端AI预测技术支持框架的应用250
10.5.1 构建新业务时的支持250
10.5.2 优化已有业务的支持251
第11章 设计可变体发布的搜索客户端架构253
11.1 App支持可变体发布的意义253
11.1.1 初识矩阵App254
11.1.2 App支持变体发布的价值255
11.2 App支持变体发布的前置依赖256
11.2.1 基础概念及关系256
11.2.2 模块级复用与App级复用258
11.2.3 矩阵App复用主线App的方式260
11.3 变体发布的核心技术问题及解决264
11.3.1 控制反转服务264
11.3.2 组件的裁剪支持266
11.3.3 组件的修改支持266
11.4 搜索业务可变体发布的技术框架支持268
11.4.1 典型搜索业务特征和技术架构268
11.4.2 服务动态化269
11.4.3 场景容器化272
11.4.4 功能插件化273
11.4.5 端云一体化输出275
11.4.6 小结276
11.5 模块拆分与变体发布支持277
11.5.1 模块的分级及约束277
11.5.2 模块拆分的决策依据279
11.5.3 组件标准化输出280
11.6 主线App支持变体发布要遵循的原则281
11.6.1 接口稳定原则282
11.6.2 最小接口公开原则282
11.6.3 有序依赖原则283
11.6.4 无无用依赖原则283
11.6.5 无隐式依赖原则284
11.6.6 无传递依赖原则285
11.6.7 无循环依赖原则287
11.6.8 命名唯一原则289
11.6.9 配置项归属唯一原则290
11.6.10 资源归属唯一原则290
第12章 设计可支持质效提升的搜索客户端架构291
12.1 架构与研发质效的关系291
12.1.1 我对研发质效的理解292
12.1.2 我对架构目标的理解292
12.1.3 我看到的架构对质效的影响292
12.2 提升研发过程的效率294
12.2.1 子系统独立迭代294
12.2.2 业务可脱机调试297
12.2.3 任务自动化执行支持299
12.2.4 流程自动化工具建设302
12.3 降低异常产生的概率304
12.3.1 降低内部因素产生的异常304
12.3.2 降低外部因素产生的异常306
12.4 降低异常产生的影响309
12.4.1 发现异常的能力的构建309
12.4.2 解决异常的能力的构建311
12.4.3 降低异常概率/影响的设计思路312
个人成长篇
第13章 设计自己的架构优化之路314
13.1 快速融入团队的7个因素314
13.2 实现有效交付的7个节点317
13.3 持续优化技术架构的7个思维方式321
内容摘要
这是一本以搜索业务为主线,深度解读超级App构建与优化的策略、流程、方法、技巧和作者近20年心得精华的著作。本书覆盖了App从诞生到成为超级App的过程中技术架构层面所面临的所有核心挑战及其解决思路。
本书作者是我国App研发领域的先行者(2005年正式进入App开发领域)。曾在百度负责多个App的技术架构构建,全程参与了百度App从诞生到发展至拥有上亿规模用户的全过程。本书是作者将近20年App研发经验和10余年百度搜索App开发经验的精华,是一本真正的干货集。
基础篇(第1~3章),从作者进入百度讲起,带领读者一步步走进搜索App的世界。这一篇通过简洁的语言和生动的案例,以“润物细无声”的方式读者帮建立起对搜索App的基础认知,包括百度App发展历程、典型App中搜索功能构建、搜索结果页和落地页技术实现、搜索服务端架构、搜索服务优化等特色内容,为读者学习后续内容打下坚实的基础。
高级篇(第4~12章),围绕搜索全流程业务展开,包括搜索客户端中并行化响应输入的实现,以及可扩展网页(即功能插件化)、场景容器化、可定制安全策略、可持续优化指标、可统一管理网络通信、移动端AI预测、可变体发布及支持质效提的搜索客户端架构的设计与实现思路。通过本篇,读者可更深入理解搜索App的业务流程,掌握技术架构的工作原理,并学会如何将这些思想应用于相关的产品中。
个人成长篇(第13章),从团队协作、产品交付及技术架构优化这三个方面介绍个人的架构优化之路。这部分是作者10余年的工作经验和思考。
— 没有更多了 —
以下为对购买帮助不大的评价