暂无商品咨询信息 [发表商品咨询]
本书由Datadog公司高级工程师Jon Bodner撰写,他不仅介绍了资深Go开发者所采用的设计模式,还深入探讨了使用这些模式的根本原因。书中通过大量示例,帮助开发者编写清晰、地道的Go语言代码,并设计Go语言项目。相较上一版,本书新增了Go语言泛型和工具集的独立章节,涵盖go vet、go fmt等核心工具,并通过实际示例详解每个工具的使用方法和应用场景。每章末尾新增练习题,帮助读者巩固所学知识。无论你是Go语言初学者,还是经验丰富的开发者,本书都能让你获益良多。
本书是一本系统讲解Go语言开发的实用教程,从环境搭建到高级特性,循序渐进地引导读者掌握Go编程。首先介绍Go的基础类型、复合类型及流程控制结构,帮助读者建立语言基础;接着深入函数、指针、接口等核心概念,结合实例解析泛型、错误处理等进阶内容;还详细阐述模块与包的管理,以及Go工具集的使用,涵盖开发全流程。书中示例丰富,注重实践,通过具体代码演示语法要点与编程范式,同时强调Go的设计哲学与最佳实践,如接口隐式实现、错误显式处理等。本书适合希望系统学习Go语言的开发者阅读,尤其是有其他编程语言基础、想掌握Go高效开发的人员,能帮助读者从入门到精通,构建健壮的Go应用。
目录<br />前言1<br />第1章 设置你的Go环境7<br />1.1 安装Go工具7<br />1.2 你的第一个Go程序9<br />1.3 选择你的工具13<br />1.4 Makefile文件17<br />1.5 Go兼容性承诺18<br />1.6 保持更新18<br />1.7 练习19<br />1.8 总结19<br />第2章 基础类型和变量声明20<br />2.1 基础类型20<br />2.2 var与:=的区别30<br />2.3 使用const32<br />2.4 有类型常量和无类型常量33<br />2.5 未使用的变量34<br />2.6 命名变量和常量35<br />2.7 练习36<br />2.8 总结37<br />第3章 复合类型38<br />3.1 数组类型—因不灵活而较少被使用38<br />3.2 切片类型40<br />3.3 字符串、字符和字节52<br />3.4 映射类型55<br />3.5 结构体类型60<br />3.6 练习64<br />3.7 总结65<br />第4章 代码块、影子变量和控制结构66<br />4.1 代码块66<br />4.2 影子变量67<br />4.3 if语句69<br />4.4 for语句70<br />4.5 switch语句81<br />4.6 goto语句86<br />4.7 练习88<br />4.8 总结89<br />第5章 函数90<br />5.1 声明和调用函数90<br />5.2 函数也是值97<br />5.3 闭包101<br />5.4 defer105<br />5.5 Go语言的值传递109<br />5.6 练习111<br />5.7 总结112<br />第6章 指针113<br />6.1 快速指针入门113<br />6.2 不畏惧指针116<br />6.3 指针表示可变参数118<br />6.4 指针是最后的手段121<br />6.5 指针传递的性能122<br />6.6 零值与无值的区别123<br />6.7 映射与切片的区别123<br />6.8 切片作为缓冲区126<br />6.9 减少垃圾回收的负担127<br />6.10 垃圾回收器调优130<br />6.11 练习131<br />6.12 总结132<br />第7章 类型、方法和接口133<br />7.1 语言中的类型133<br />7.2 方法134<br />7.3 iota有时用于枚举141<br />7.4 使用内嵌进行组合143<br />7.5 内嵌不是继承144<br />7.6 接口概览145<br />7.7 接口是类型安全的鸭子类型146<br />7.8 内嵌与接口150<br />7.9 接收接口,返回结构体150<br />7.10 接口和nil151<br />7.11 接口是可比较的152<br />7.12 空接口154<br />7.13 类型断言和type-switch155<br />7.14 谨慎使用类型断言和type-switch157<br />7.15 函数类型实现接口160<br />7.16 隐式接口实现依赖注入160<br />7.17 Wire164<br />7.18 Go并非传统意义上的面向对象语言164<br />7.19 练习165<br />7.20 总结165<br />第8章 泛型166<br />8.1 泛型减少重复代码并增强类型安全性166<br />8.2 在Go中引入泛型169<br />8.3 泛型函数抽象算法171<br />8.4 泛型和接口172<br />8.5 使用类型术语指定运算符174<br />8.6 类型推断与泛型177<br />8.7 类型元素限制常量177<br />8.8 结合泛型函数与泛型数据结构178<br />8.9 关于可比性的更多信息180<br />8.10 被省略的事物181<br />8.11 习惯性的Go语言和泛型使用183<br />8.12 向标准库添加泛型184<br />8.13 解锁未来特性184<br />8.14 练习185<br />8.15 总结185<br />第9章 错误处理186<br />9.1 如何处理错误:基础知识186<br />9.2 使用字符串创建简单错误188<br />9.3 哨兵错误188<br />9.4 错误也是值190<br />9.5 包装错误193<br />9.6 包装多个错误195<br />9.7 Is和As196<br />9.8 使用defer包装错误199<br />9.9 panic与recover200<br />9.10 从错误中获取栈跟踪202<br />9.11 练习203<br />9.12 总结203<br />第10章 模块、包和导入204<br />10.1 仓库、模块和包204<br />10.2 使用go.mod205<br />10.3 创建包207<br />10.4 使用模块219<br />10.5 发布模块229<br />10.6 对模块进行版本控制229<br />10.7 模块代理服务器235<br />10.8 附加细节236<br />10.9 练习236<br />10.10 总结237<br />第11章 Go工具集238<br />11.1 使用go run构建并执行238<br />11.2 使用go install添加第三方工具239<br />11.3 使用goimports改进导入格式241<br />11.4 使用代码质量静态分析工具241<br />11.5 使用govulncheck扫描存在漏洞的依赖项246<br />11.6 嵌入内容到程序中248<br />11.7 嵌入隐藏文件251<br />11.8 使用go generate252<br />11.9 使用go generate和Makefile254<br />11.10 在Go二进制文件内读取构建信息255<br />11.11 为其他平台构建Go二进制文件256<br />11.12 使用构建标签257<br />11.13 测试Go的版本258<br />11.14 使用go help了解有关Go工具的更多信息259<br />11.15 练习259<br />11.16 总结259<br />第12章 Go中的并发性260<br />12.1 何时使用并发260<br />12.2 协程261<br />12.3 通道263<br />12.4 select266<br />12.5 并发实践和模式269<br />12.6 何时使用互斥锁而不是通道283<br />12.7 原子操作—你可能不需要这些287<br />12.8 关于并发的更多学习资源287<br />12.9 练习287<br />12.10 总结287<br />第13章 标准库288<br />13.1 io家族288<br />13.2 时间293<br />13.3 encoding/json295<br />13.4 net/http303<br />13.5 结构化日志311<br />13.6 练习313<br />13.7 总结314<br />第14章 context315<br />14.1 什么是context315<br />14.2 值318<br />14.3 取消323<br />14.4 带有截止时间的context328<br />14.5 在代码中取消context331<br />14.6 练习332<br />14.7 总结333<br />第15章 编写测试334<br />15.1 测试的基本知识334<br />15.2 表格驱动测试342<br />15.3 并发运行测试344<br />15.4 检查代码覆盖率346<br />15.5 模糊测试348<br />15.6 使用基准测试355<br />15.7 Go中的测试桩358<br />15.8 httptest363<br />15.9 集成测试和构建标签365<br />15.10 使用数据竞争检测器检查并发问题366<br />15.11 练习368<br />15.12 总结368<br />第16章 恶龙禁区:反射、unsafe和cgo369<br />16.1 反射:运行时类型处理369<br />16.2 unsafe意味着不安全384<br />16.3 cgo用于集成而非性能优化391<br />16.4 练习395<br />16.5 总结395<br /><br />
| 基本信息 | |
|---|---|
| 出版社 | 机械工业出版社 |
| ISBN | 9787111791454 |
| 条码 | 9787111791454 |
| 编者 | [美]乔恩·博德纳(Jon Bodner) 著 |
| 译者 | |
| 出版年月 | 2025-10-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 398 |
| 字数 | 532 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]