深入浅出Go语言编程:从原理解析到实战进阶

深入浅出Go语言编程:从原理解析到实战进阶

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

详尽讲解Go语言的基本语法和核心概念。

内容简介

本书首先介绍Go语言的基本概念,并通过“hello world”程序引导读者熟悉Go的工具链。接下来逐步深入,介绍面向包的设计、测试框架、错误与异常处理等内容。第8章开始探讨指针和内存逃逸分析,这对于理解Go语言的内存模型至关重要。随后的章节涉及数据结构、面向对象和接口编程等核心知识。

从第15章开始,重点转向并发编程,从基本的并发模式到复杂的并发原理,再到内存管理和垃圾回收等高级主题。最后几章关注实际开发中的问题,如使用标准库和第三方库、性能问题分析与追踪,以及重构“hello world”示例代码。

作者简介

作者阮正平,高级工程师,拥有十多年软件开发设计经验。擅长Golang、Docker、Kubernetes、数据库等技术,主要研究方向为云原生、数据库、区块链。目前任某公司架构师,负责公司的Serverless PaaS平台设计和开发,助力企业从传统应用迁移至云原生应用。

章节目录

版权信息

内容提要

前言

资源与支持

第1章 Go语言初探

1.1 Go语言的发展里程碑

1.2 云时代Go语言的发展趋势

1.3 Go语言优秀的语言特性

1.4 强大的生态圈和成功案例

1.5 Go程序是如何运行的

1.6 plan9与Go语言

第2章 “hello world”与工具链

2.1 Go语言的安装和配置

2.2 第一个程序“hello world”

2.3 Go语言的工具链命令

第3章 Go语言的基础知识

3.1 Go语言的常用规范

3.2 数据类型

3.3 变量的本质

3.4 常量

3.5 运算符

3.6 结构化语法

3.7 类型转换

3.8 Go语言的语法糖

第4章 面向包的设计与依赖管理

4.1 包的使用

4.2 面向包的设计

4.3 包管理工具Go Module

第5章 测试框架

5.1 Go语言中的测试框架

5.2 单元测试

5.3 测试代码的覆盖率

5.4 断言

5.5 基准测试

5.6 与网络有关的模拟测试

5.7 与测试有关的第三方工具

第6章 错误与异常处理

6.1 error的引入

6.2 异常处理

6.3 面向错误和恢复的设计

6.4 带堆栈信息的error

6.5 标准库errors的改进

6.6 errGroup对象

6.7 日志系统的引入

第7章 编码与字符串

7.1 字符编码

7.2 字符串

7.3 字符串与基本类型互转

第8章 指针与内存逃逸分析

8.1 活动帧的作用

8.2 值语义的本质

8.3 指针

8.4 内存逃逸分析

8.5 引用类型与深、浅拷贝

第9章 数据结构

9.1 面向数据的设计

9.2 数组

9.3 切片

9.4 映射

9.5 数据结构中的常见问题

第10章 结构体与内存对齐

10.1 结构体

10.2 序列化与反序列化

10.3 unsafe包

10.4 内存对齐

第11章 函数

11.1 认识函数

11.2 defer函数

11.3 作为数据类型的函数

11.4 函数类型的使用场景

11.5 函数的别名

第12章 面向“对象”编程

12.1 封装

12.2 继承

12.3 多态

第13章 面向接口编程

13.1 接口编程哲学

13.2 接口与组合

13.3 接口的剖析

13.4 接口的设计原则

13.5 检查接口的实现

13.6 空接口与类型断言

13.7 接口值的比较

13.8 检查运行阶段的接口类型

第14章 反射

14.1 反射的概念

14.2 接口与反射

14.3 反射包介绍

14.4 反射包的使用示例

14.5 反射的三个定律

14.6 反射的应用场景

14.7 反射的性能

第15章 并发编程

15.1 感受并发的魅力

15.2 sync.WaitGroup

15.3 数据竞争问题

15.4 传统的锁

15.5 原子操作介绍

第16章 并发与通道

16.1 通道的行为

16.2 创建通道

16.3 通道的特性

16.4 通道的其他特性

16.5 通道的使用建议

16.6 select机制

16.7 通道的模式

第17章 其他并发技术

17.1 context包

17.2 sync.Cond

17.3 sync.Once

17.4 sync.Map

17.5 sync.Pool

17.6 实现对象池

17.7 常用连接池

17.8 并发技术选型

第18章 并发原理

18.1 怎样让程序跑得更快

18.2 Go语言中的协程

18.3 GPM调度流程

18.4 监控线程sysmon

18.5 main函数与协程的执行顺序

18.6 可视化分析GPM调度

18.7 深入探索通道

第19章 内存管理

19.1 runtime

19.2 内存分配模型

19.3 内存管理单元

19.4 对象分类及分配策略

19.5 堆内存分配总结

第20章 垃圾回收

20.1 垃圾回收算法

20.2 Go语言的垃圾回收算法

20.3 触发垃圾回收的时机

20.4 查看运行时的垃圾回收信息

20.5 垃圾回收优化示例

第21章 使用标准库和第三方库

21.1 I/O操作

21.2 网络操作

21.3 与时间有关的标准库

21.4 随机数

21.5 正则表达式

21.6 flag包的使用

21.7 os包的使用

21.8 crypto包

21.9 base64编码

21.10 fmt包

21.11 使用第三方库

第22章 性能问题分析与追踪

22.1 性能优化概述

22.2 性能优化的步骤

22.3 硬件与软件的性能指标

22.4 优化工具概述

22.5 性能优化总结

22.6 使用go tool pprof工具进行性能分析的示例

22.7 pprof包结合HTTP服务使用的示例

22.8 pprof包和fgprof包的使用对比

22.9 go tool trace工具的使用示例

22.10 持续性能分析

22.11 性能问题的定位及处理建议

第23章 重构“hello world”

23.1 搭建业务处理框架

23.2 设计解耦的读写接口

23.3 业务实现

23.4 构建HTTP服务发布数据

23.5 整合Prometheus发布数据

23.6 代码细节的提升

23.7 总结

深入浅出Go语言编程:从原理解析到实战进阶是2024年由人民邮电出版社出版,作者杜军。

得书感谢您对《深入浅出Go语言编程:从原理解析到实战进阶》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
C编程从入门到实践 电子书
更适合95后的C语言编程入门书。
Go语言趣学指南 电子书
Go是谷歌公司为了解决重大问题而设计的一种小型编程语言。完成大型项目需要大型团队,而大型团队中团队成员的经验水平往往各不相同。Go是一种小巧却功能强大的语言,它能够被任何人理解和使用,无论其经验如何。 快速、现代的编程语言能让业余爱好者、初学者和专业人员都受益。你需要的正是这样的语言。本书针对Go语言基础知识提供了实操性的指导,使你能够掌握Go语法,使用类型和函数,探索状态和并发等更重要的概念,并通过大量练习来巩固学到的知识。 本书包括以下内容: ●切片、接口、指针和并发等重要语言概念; ●地鼠太空航行、火星探测器、文本加密以及人类繁衍模拟等7个单元实验; ●无须安装即可在Go Playground中运行的示例。 本书面向所有熟悉计算机编程以及渴望获得这一技能的人。
数据分析从入门到进阶 电子书
透彻讲解Excel、SQL、Tableau、Python四项数据分析必会工具。
从0到1:CSS进阶之旅 电子书
1.源自阅读量600万的人气教程; 2.一本书快速进阶 CSS 高级技术; 3.几十个前端“黑科技”,附赠上百道前端面试题,让你的技术比别人更高一筹; 4.众多前端工程师、高校老师、学生一致推荐。 5.提供习题答案、源代码、教学PPT等资源,可在图书前言部分获取下载方法。 “从0到1”系列图书是根据线上付费视频培训课程和绿叶学习网超人气教程编写的培训教材。 由于该在线课程有着独特的风格、极高的质量,因而累积获得超过100 000 读者的支持,收到几百封的感谢邮件,大多来自初学者、参加工作不久的小伙伴,甚至不少还是高校老师。这个系列记录了作者当初作为初学者所遇到的各种问题和他多年开发的心血总结。作者很了解初学者的心态,也非常清楚初学者应该怎样才可以快速而无阻碍地学习。他站在初学者的角度而不是站在已经学会的人的角度来编写这个教程,让初学者学习起来恰到好处。
分布式对象存储——原理、架构及Go语言实现 电子书
适读人群 :本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。   赠送价值249元的云存储专家视频课程   掌握云存储理论,动手搭建分布式对象存储架构   云存储已经是大家司空见惯的一种网络服务了,比如大家常用的百度云盘、美亚S3、微软的OneDrive、苹果公司的iCloud和谷歌的Google Cloud等。云存储背后的原理是怎样的,又是如何实现的呢?   本书完全从云存储的需求出发讲述对象存储的原理,并且带领读者使用Go语言编程,循序渐进、从无到有地建立起一个分布式对象存储的架构。也就是说,本书首先介绍为什么要这么做,然后解释怎么做。   本书适合云存储方面的研究者、工程师或架构师阅读,也可以供对云存储技术感兴趣的读者参考。在读完本书之后,你将较为深入地理解对象存储服务,甚至能够实现自己的对象存储服务。   本书包括以下内容:    对象存储简介;    分布式系统原理;    元数据以及元数据服务;    数据校验和去重;    数据冗余和即时修复;    断点续传;    数据压缩;    数据维护。