万本电子书0元读

万本电子书0元读

顶部广告

Go语言学习指南:惯例模式与编程实践(原书第2版)电子书

本书由Datadog公司高级工程师Jon Bodner撰写,他不仅介绍了资深Go发者所采用的设计模式,还深探讨了使用这些模式的根本原因。书中通过大量示例,帮助发者编写清晰、地道的Go语言代码,并设计Go语言项目。相较上一版,本书新增了Go语言泛型和工具集的独立章节,涵盖go vet、go fmt等核心工具,并通过实际示例详解每个工具的使用方法和应用场景。每章末尾新增练习题,帮助读者巩固所学知识。无论你是Go语言初学者,还是经验丰富的发者,本书都能让你获益良多。

售       价:¥

纸质售价:¥119.30购买纸书

8人正在读 | 0人评论 6.6

作       者:(美)乔恩·博德纳(Jon Bodner)

出  版  社:机械工业出版社

出版时间:2025-10-11

字       数:25.3万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(条)
  • 读书简介
  • 目录
  • 累计评论(条)
本书是一本系统讲解Go语言发的实用教程,从环境搭建到高级特性,循序渐地引导读者掌握Go编程。首先介绍Go的基础类型、复合类型及流程控制结构,帮助读者建立语言基础;着深函数、指针、口等核心概念,结合实例解析泛型、错误处理等阶内容;还详细阐述模块与包的管理,以及Go工具集的使用,涵盖发全流程。书中示例丰富,注重实践,通过具体代码演示语法要与编程范式,同时强调Go的设计哲学与最佳实践,如口隐式实现、错误显式处理等。本书适合希望系统学习Go语言的发者阅读,尤其是有其他编程语言基础、想掌握Go高效发的人员,能帮助读者从门到精通,构建健壮的Go应用。<br/>【推荐语】<br/>本书由Datadog公司高级工程师Jon Bodner撰写,他不仅介绍了资深Go发者所采用的设计模式,还深探讨了使用这些模式的根本原因。书中通过大量示例,帮助发者编写清晰、地道的Go语言代码,并设计Go语言项目。相较上一版,本书新增了Go语言泛型和工具集的独立章节,涵盖go vet、go fmt等核心工具,并通过实际示例详解每个工具的使用方法和应用场景。每章末尾新增练习题,帮助读者巩固所学知识。无论你是Go语言初学者,还是经验丰富的发者,本书都能让你获益良多。<br/>【作者】<br/>Jon Bodner是Datadog公司的高级工程师,负责牵头推公司应用性能监控(APM)产品的门流程简化工作。他同时也是Proteus数据访问库的创建者。在过去25年间,他先后担任过软件工程师、发负责人及架构师等职务。<br/>
目录展开

书名页

版权

O'Reilly Media, Inc.介绍

本书赞誉

本书赞誉(第1版)

推荐序一

推荐序二

推荐序三

译者序

前言

第1章 设置你的Go环境

1.1 安装Go工具

1.2 你的第一个Go程序

1.3 选择你的工具

1.4 Makefile文件

1.5 Go兼容性承诺

1.6 保持更新

1.7 练习

1.8 总结

第2章 基础类型和变量声明

2.1 基础类型

2.2 var与:=的区别

2.3 使用const

2.4 有类型常量和无类型常量

2.5 未使用的变量

2.6 命名变量和常量

2.7 练习

2.8 总结

第3章 复合类型

3.1 数组类型—因不灵活而较少被使用

3.2 切片类型

3.3 字符串、字符和字节

3.4 映射类型

3.5 结构体类型

3.6 练习

3.7 总结

第4章 代码块、影子变量和控制结构

4.1 代码块

4.2 影子变量

4.3 if语句

4.4 for语句

4.5 switch语句

4.6 goto语句

4.7 练习

4.8 总结

第5章 函数

5.1 声明和调用函数

5.2 函数也是值

5.3 闭包

5.4 defer

5.5 Go语言的值传递

5.6 练习

5.7 总结

第6章 指针

6.1 快速指针入门

6.2 不畏惧指针

6.3 指针表示可变参数

6.4 指针是最后的手段

6.5 指针传递的性能

6.6 零值与无值的区别

6.7 映射与切片的区别

6.8 切片作为缓冲区

6.9 减少垃圾回收的负担

6.10 垃圾回收器调优

6.11 练习

6.12 总结

第7章 类型、方法和接口

7.1 语言中的类型

7.2 方法

7.3 iota有时用于枚举

7.4 使用内嵌进行组合

7.5 内嵌不是继承

7.6 接口概览

7.7 接口是类型安全的鸭子类型

7.8 内嵌与接口

7.9 接收接口,返回结构体

7.10 接口和nil

7.11 接口是可比较的

7.12 空接口

7.13 类型断言和type-switch

7.14 谨慎使用类型断言和type-switch

7.15 函数类型实现接口

7.16 隐式接口实现依赖注入

7.17 Wire

7.18 Go并非传统意义上的面向对象语言

7.19 练习

7.20 总结

第8章 泛型

8.1 泛型减少重复代码并增强类型安全性

8.2 在Go中引入泛型

8.3 泛型函数抽象算法

8.4 泛型和接口

8.5 使用类型术语指定运算符

8.6 类型推断与泛型

8.7 类型元素限制常量

8.8 结合泛型函数与泛型数据结构

8.9 关于可比性的更多信息

8.10 被省略的事物

8.11 习惯性的Go语言和泛型使用

8.12 向标准库添加泛型

8.13 解锁未来特性

8.14 练习

8.15 总结

第9章 错误处理

9.1 如何处理错误:基础知识

9.2 使用字符串创建简单错误

9.3 哨兵错误

9.4 错误也是值

9.5 包装错误

9.6 包装多个错误

9.7 Is和As

9.8 使用defer包装错误

9.9 panic与recover

9.10 从错误中获取栈跟踪

9.11 练习

9.12 总结

第10章 模块、包和导入

10.1 仓库、模块和包

10.2 使用go.mod

10.3 创建包

10.4 使用模块

10.5 发布模块

10.6 对模块进行版本控制

10.7 模块代理服务器

10.8 附加细节

10.9 练习

10.10 总结

第11章 Go工具集

11.1 使用go run构建并执行

11.2 使用go install添加第三方工具

11.3 使用goimports改进导入格式

11.4 使用代码质量静态分析工具

11.5 使用govulncheck扫描存在漏洞的依赖项

11.6 嵌入内容到程序中

11.7 嵌入隐藏文件

11.8 使用go generate

11.9 使用go generate和Makefile

11.10 在Go二进制文件内读取构建信息

11.11 为其他平台构建Go二进制文件

11.12 使用构建标签

11.13 测试Go的版本

11.14 使用go help了解有关Go工具的更多信息

11.15 练习

11.16 总结

第12章 Go中的并发性

12.1 何时使用并发

12.2 协程

12.3 通道

12.4 select

12.5 并发实践和模式

12.6 何时使用互斥锁而不是通道

12.7 原子操作—你可能不需要这些

12.8 关于并发的更多学习资源

12.9 练习

12.10 总结

第13章 标准库

13.1 io家族

13.2 时间

13.3 encoding/json

13.4 net/http

13.5 结构化日志

13.6 练习

13.7 总结

第14章 context

14.1 什么是context

14.2 值

14.3 取消

14.4 带有截止时间的context

14.5 在代码中取消context

14.6 练习

14.7 总结

第15章 编写测试

15.1 测试的基本知识

15.2 表格驱动测试

15.3 并发运行测试

15.4 检查代码覆盖率

15.5 模糊测试

15.6 使用基准测试

15.7 Go中的测试桩

15.8 httptest

15.9 集成测试和构建标签

15.10 使用数据竞争检测器检查并发问题

15.11 练习

15.12 总结

第16章 恶龙禁区:反射、unsafe和cgo

16.1 反射:运行时类型处理

16.2 unsafe意味着不安全

16.3 cgo用于集成而非性能优化

16.4 练习

16.5 总结

关于作者

关于封面

累计评论(条) 个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部