返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 聚沙成塔:Go语言构建高性能、分布式爬虫项目
  • 新商品上架
    • 作者: 郑建勋著
    • 出版社: 电子工业出版社
    • 出版时间:1
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    句字图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 郑建勋著
    • 出版社:电子工业出版社
    • 出版时间:1
    • ISBN:9787121460401
    • 版权提供:电子工业出版社

    高效的编码规范与研发工具

    深入 Go 语法背后的底层机制

    高性能与可扩展的程序设计方法

    复杂线上案例的全方位分析

    大规模分布式系统的架构之道

    基本信息
    商品名称: 聚沙成塔:Go语言构建高性能、分布式爬虫项目 开本: 128开
    作者: 郑建勋 定价: 159.00
    ISBN号: 9787121460401 出版时间: 2023-08-01
    出版社: 电子工业出版社 印刷时间: 2023-08-01
    版次: 1 印次: 1

    第1篇 项目准备
    1 基础知识:磨刀不误砍柴工 2
    1.1 Go语言的历史与设计理念 2
    1.1.1 Go语言的“祖先” 3
    1.1.2 Go的特性 4
    1.2 开发环境 5
    1.3 基础语法 6
    1.4 语法特性 12
    1.5 并发编程 18
    1.6 项目组织与依赖管理 20
    1.7 工具与库 22
    1.8 总结 27
    2 大型项目的开发模式与流程 28
    2.1 开发模式 28
    2.1.1 瀑布模式 28
    2.1.2 敏捷开发 29
    2.1.3 其他开发模式 31
    2.2 开发流程 31
    2.2.1 需求阶段 32
    2.2.2 设计阶段 33
    2.2.3 研发实现阶段 34
    2.2.4 联调测试阶段 38
    2.2.5 上线部署阶段 38
    2.2.6 运维阶段 39
    2.2.7 运营阶段 40
    2.3 总结 40
    第2篇 项目设计
    3 冰川之下:深入Go高并发网络模型 42
    3.1 网络的基本概念 42
    3.1.1 阻塞与非阻塞 42
    3.1.2 文件描述符与Socket 43
    3.1.3 I/O模型 44
    3.2 Go语言网络模型 46
    3.2.1 协程调度 46
    3.2.2 同步编程模式 48
    3.2.3 非阻塞I/O 48
    3.2.4 I/O多路复用 49
    3.3 总结 50
    4 高性能设计:自顶向下的高性能Go语言程序设计与优化 51
    4.1 系统级别 52
    4.2 程序设计和组织级别 52
    4.3 代码实施级别 53
    4.3.1 合理的代码 53
    4.3.2 刻意的优化 53
    4.3.3 冒险的尝试 54
    4.4 操作系统级别 54
    4.5 硬件级别 56
    4.6 总结 56
    5 微服务探索:深度解析架构演进与治理实践 57
    5.1 微服务架构演进 57
    5.1.1 单体服务与微服务 57
    5.1.2 微服务的优点 61
    5.1.3 微服务的缺点 62
    5.1.4 微服务的边界 63
    5.1.5 微服务的通信 63
    5.1.6 服务发现与负载均衡 65
    5.2 微服务治理体系与实践 66
    5.2.1 分布式日志与监控 67
    5.2.2 分布式Metric与监控 68
    5.2.3 分布式追踪 68
    5.2.4 微服务测试 69
    5.2.5 微服务降级 71
    5.2.6 微服务总体架构 71
    5.3 总结 72
    6 协调之谜:深入剖析分布式一致性与共识算法 74
    6.1 数据一致性 74
    6.1.1 诞生背景 74
    6.1.2 CAP定理 76
    6.1.3 共识算法 77
    6.2 分布式协调服务 77
    6.2.1 分布式锁 78
    6.2.2 配置管理 78
    6.2.3 服务发现 78
    6.3 无信网络中的共识问题 79
    6.4 共识算法 80
    6.4.1 Paxos算法 80
    6.4.2 Raft算法 81
    6.5 总结 85
    7 谋定而动:爬虫项目分析与设计 86
    7.1 网络爬虫概述 86
    7.1.1 网络爬虫合法吗 86
    7.1.2 网络爬虫的商业价值 87
    7.1.3 网络爬虫的流程与技术栈 88
    7.1.4 常见的反爬虫措施 90
    7.2 爬虫项目需求分析与架构设计 91
    7.2.1 需求调研与分析 91
    7.2.2 功能性模块的设计 92
    7.2.3 非功能性模块的设计 93
    7.2.4 架构设计 94
    7.3 总结 96
    8 众人拾柴:高效团队的Go编码规范 97
    8.1 编码规范的重要性 97
    8.2 Go语言编码规范 97
    8.2.1 整洁一致 98
    8.2.2 高效 103
    8.2.3 健壮性 104
    8.2.4 扩展性 105
    8.2.5 工具 106
    8.3 总结 106
    第3篇 Worker开发
    9 从正则表达式到CSS选择器:4种网页文本处理手段 108
    9.1 项目启动 108
    9.1.1 初始化Git仓库 108
    9.1.2 抓取一个简单的网页 109
    9.2 标准库 110
    9.3 正则表达式 112
    9.4 XPath 115
    9.5 CSS选择器 116
    9.6 总结 116
    10 网络爬虫:HTTP请求的魔幻旅途 117
    10.1 最简单的HTTP服务器与请求 117
    10.2 分层网络模型 118
    10.2.1 应用层 119
    10.2.2 传输层 120
    10.2.3 TLS协议 120
    10.2.4 网络层 121
    10.2.5 网络接入层 123
    10.3 数据传输与路由协议 124
    10.4 操作系统处理数据包流程 125
    10.5 HTTP协议详解 127
    10.6 HTTP的困境 129
    10.7 HTTP标准库底层原理 129
    10.8 总结 133
    11 采集引擎:接口抽象与模拟浏览器访问实战 134
    11.1 接口实战 134
    11.2 模拟浏览器访问 135
    11.3 远程访问浏览器 138
    11.3.1 浏览器驱动协议 138
    11.3.2 谷歌开发者工具协议 139
    11.4 总结 142
    12 面向组合:接口的使用场景与底层原理 143
    12.1 Go接口及其优势 143
    12.2 Go接口的设计理念 143
    12.3 接口的实践 144
    12.3.1 模块解耦 144
    12.3.2 依赖注入 146
    12.4 接口原理 147
    12.5 总结 147
    13 依赖管理:Go Modules用法与原理 149
    13.1 GOPATH 149
    13.1.1 什么是GOPATH 149
    13.1.2 GOPATH的落幕与依赖管理的历史 151
    13.2 Go Modules 151
    13.2.1 Go Modules概述 151
    13.2.2 Go Modules实践 153
    13.2.3 Go Modules最小版本选择原理 157
    13.2.4 验证最小版本选择原理 159
    13.3 语义版本 161
    13.3.1 v2版本 161
    13.3.2 伪版本 162
    13.4 总结 163
    14 优雅离场:Context超时控制与原理 164
    14.1 为什么需要Context 164
    14.2 context.Value 166
    14.3 Context实践 169
    14.4 Context底层原理 172
    14.5 总结 173
    15 移花接木:为爬虫安上代理的翅膀 174
    15.1 代理的分类和实现机制 174
    15.1.1 正向代理 174
    15.1.2 HTTP隧道代理 175
    15.1.3 MITM代理 177
    15.1.4 透明代理 177
    15.1.5 反向代理 178
    15.2 如何在实际项目中实现代理 179
    15.2.1 如何访问代理服务器 180
    15.2.2 如何选择代理地址 180
    15.3 总结 182
    16 日志处理:日志规范与实践 183
    16.1 标准库的log包 183
    16.2 Zap 185
    16.3 日志切割 186
    16.4 日志分级 187
    16.5 日志格式规范 187
    16.6 构建项目日志组件 188
    16.7 总结 189
    17 运筹帷幄:协程的运行机制与并发模型 190
    17.1 进程与线程 190
    17.2 线程与协程 190
    17.2.1 调度方式 191
    17.2.2 上下文切换速度 191
    17.2.3 调度策略 191
    17.2.4 栈的大小 192
    17.3 从GM到GMP 192
    17.4 协程的数据争用 193
    17.4.1 原子锁 193
    17.4.2 互斥锁 195
    17.4.3 读写锁 195
    17.5 Go并发控制库 196
    17.5.1 sync.WaitGroup 196
    17.5.2 sync.Once 197
    17.5.3 sync.Map 197
    17.5.4 sync.Cond 198
    17.6 Go并发模式 200
    17.6.1 ping-pong模式 201
    17.6.2 fan-in模式 202
    17.6.3 fan-out模式 203
    17.6.4 pipeline模式 205
    17.7 总结 208
    18 掘地三尺:实战深度与广度优先搜索算法 209
    18.1 深度优先搜索算法与实战 209
    18.2 广度优先搜索算法与实战 211
    18.3 用Cookie突破反爬封锁 214
    18.4 总结 215
    19 调度引擎:负载均衡与调度器实战 216
    19.1 调度引擎实战 216
    19.2 函数式选项模式 219
    19.3 总结 222
    20 细节决定成败:切片与哈希表的陷阱与原理 223
    20.1 切片的底层原理 223
    20.1.1 切片的截取 224
    20.1.2 切片的扩容 225
    20.2 哈希表原理 226
    20.3 总结 228
    21 辅助任务管理:任务优先级、去重与失败处理 229
    21.1 设置爬虫深度 229
    21.2 避免请求重复 230
    21.3 设置优先队列 233
    21.4 设置随机User-Agent 234
    21.5 进行失败处理 235
    21.6 总结 235
    22 规则引擎:自定义爬虫处理规则 236
    22.1 静态规则引擎 237
    22.2 动态规则引擎 240
    22.3 总结 245
    23 存储引擎:数据清洗与存储 246
    23.1 爬取结构化数据 246
    23.2 数据存储 250
    23.2.1 数据抽象 250
    23.2.2 数据底层存储 251
    23.2.3 存储引擎实现 254
    23.3 存储引擎验证 256
    23.4 总结 258
    24 固若金汤:限速器与错误处理 259
    24.1 限速器 259
    24.2 随机休眠 262
    24.3 错误处理 263
    24.3.1 基本的错误处理方式 264
    24.3.2 错误链处理方式 266
    24.3.3 减少错误处理的实践 267
    24.4 panic 268
    24.5 总结 270
    25 服务注册与监听:Worker节点与etcd交互 271
    25.1 GRPC与Protocol Buffers 271
    25.2 go-micro与grpc-gateway 273
    25.3 注册中心与etcd 276
    25.4 micro中间件 279
    25.5 总结 280
    第4篇 测试与分析
    26 未雨绸缪:通过静态扫描与动态扫描保证代码质量 282
    26.1 静态扫描 282
    26.2 动态扫描 284
    26.3 配置文件 285
    26.4 Makefile 287
    26.5 总结 288
    27 测试的艺术:从单元测试到集成测试 289
    27.1 单元测试 289
    27.1.1 表格驱动测试 291
    27.1.2 子测试 293
    27.1.3 依赖注入 296
    27.1.4 猴子补丁 298
    27.2 压力测试 299
    27.3 基准测试 299
    27.4 代码覆盖率测试 300
    27.4.1 cover的基本用法 301
    27.4.2 测试环境下的代码覆盖率 302
    27.4.3 cover工具的工作原理 302
    27.5 模糊测试 303
    27.6 集成测试 306
    27.7 总结 307
    28 调试程序:从日志打印到Delve调试器 308
    28.1 常见的调试方法和技术 308
    28.2 Delve的内部架构 309
    28.3 Delve实战 309
    28.4 使用Goland Delve进行本地调试 316
    28.5 使用Goland Delve进行远程调试 317
    28.6 总结 318
    29 性能分析利器:深入pprof与trace工具 319
    29.1 pprof及其使用方法 319
    29.1.1 pprof堆内存分析 321
    29.1.2 pprof协程栈分析 325
    29.1.3 pprof CPU占用分析 326
    29.2 trace及其使用方法 327
    29.3

    ......

    本书是颇具创新性的 Go 语言实战指南,巧妙地将理论知识与实践案例串联起来,为读者搭建了一套完整的知识体系和方法论。本书以爬虫项目为基础,全面阐述了 Go 语言在网络服务开发中的卓越性能,并深入探讨了如何利用 Go 语言打造高并发的爬虫系统、高性能的分布式系统,以及可扩展的领域驱动的微服务系统。本书有助于 Go 语言开发者根据编码规范,编写出简洁、高效、健壮且易于扩展的代码。同时,本书可以作为高等院校计算机和软件工程等相关专业师生的参考资料。

    成都慧眸科技创始人

    《Go语言底层原理剖析》作者

    极客时间专栏作家

    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购