Go语言学习指南:惯例模式与编程实践

Go语言学习指南:惯例模式与编程实践

  • 大小:89.4 MB
  • 类型:Go语言
  • 格式:PDF
  • 出版:机械工业出版社
  • 作者:乔恩·博德纳(Jon、Bodner)
  • 更新:2022-09-05 11:50:22
vip 免费获取(已有123人参与)
关注公众号免费送书
版权投诉 / 资源反馈(本资源由用户 汤元嘉 投稿)

给大家整理了Go语言相关的资料,由机械工业出版社出版,作者是乔恩·博德纳(Jon、Bodner),介绍了关于Go语言、Go语言学习指南、惯例模式、编程实践方面,格式为PDF,资源大小89.4 MB,目前在Go语言类资源综合评分为:8.9分。

Go语言资源推荐

书籍介绍

编辑推荐

Go语言正迅速成为构建Web服务的优选语言。尽管市面上有大量的教程向具有其他编程语言经验的开发者讲授Go语法,但要熟练掌握Go语言,这些教程远远不够,它们并没有介绍Go语言的惯例模式与编程实践。本书将指导读者学习编写清晰且符合Go语言惯例的代码所需的关键知识。

无论你的开发经验和水平如何,都将通过本书学会Go开发者的思考模式。作者Jon Bodner精心介绍了经验丰富的Go开发者所采用的设计模式,并说明了使用这些模式的理由。你还将提前了解Go即将发布的泛型特性,以及它是如何从设计到实现,一步步融入Go语言的。

通过本书,你将:
学习如何在Go语言中编写惯例代码并设计Go项目。
理解Go语言设计中的权衡。
学会为独立开发人员或团队构建Go语言的开发环境。
了解如何以及何时使用反射、unsafe和cgo。
探究如何利用Go语言的特性使代码高效运行。
了解哪些Go语言的特性应该少使用,或避免使用。

内容简介

Go语言正在迅速成为构建Web服务的优选语言。本书很好地阐述了Go语言的特性,同时指出了Go语言的惯例代码、陷阱和设计模式。本书语言生动,表述清晰,将Go语言的基本原理与语言哲学联系在一起,引导读者正确编写Go语言。既介绍基础知识,又涵盖高级主题(如反射和C语言互操作),通过大量例子演示了如何写出符合Go语言惯例的代码,解释了可能影响程序行为的底层概念,比如指针对内存布局和垃圾回收的影响。无论你是Go语言的初学者,还是经验丰富的Go语言从业人员,相信都能从本书中获益良多。

目录

  • 第1章 设置Go语言的开发环境7
  • 1.1 安装Go工具7
  • 1.2 Go的工作空间8
  • 1.3 Go命令集9
  • 1.4 分析与审查13
  • 1.5 选择开发工具15
  • 1.6 Makefile18
  • 1.7 保持更新19
  • 1.8 总结20
  • 第2章 基础类型和变量声明21
  • 2.1 内置类型21
  • 2.2 var与:= 30
  • 2.3 const关键字32
  • 2.4 有类型的常量与无类型的常量33
  • 2.5 未使用的变量34
  • 2.6 常量与变量的命名35
  • 2.7 总结37
  • 第3章 复合类型38
  • 3.1 数组38
  • 3.2 切片40
  • 3.3 字符串、字符和字节49
  • 3.4 映射52
  • 3.5 结构体57
  • 3.6 总结61
  • 第4章 代码块、影子变量和流程控制62
  • 4.1 代码块62
  • 4.2 if语句66
  • 4.3 for语句67
  • 4.4 switch语句78
  • 4.5 默认的switch语句81
  • 4.6 if和switch之间的选择82
  • 4.7 goto语句83
  • 4.8 总结85
  • 第5章 函数86
  • 5.1 函数的声明和调用86
  • 5.2 函数即值92
  • 5.3 闭包95
  • 5.4 defer98
  • 5.5 函数的值调用101
  • 5.6 总结103
  • 第6章 指针104
  • 6.1 指针快速入门104
  • 6.2 不畏惧指针107
  • 6.3 指针即可变的参数109
  • 6.4 指针作为第二选择113
  • 6.5 指针传递可提高性能114
  • 6.6 零值与无值114
  • 6.7 映射与切片的区别115
  • 6.8 切片用作缓冲区118
  • 6.9 优化垃圾回收119
  • 6.10 总结121
  • 第7章 类型、方法与接口122
  • 7.1 Go语言的类型122
  • 7.2 方法123
  • 7.3 使用内嵌进行组合131
  • 7.4 内嵌不是继承132
  • 7.5 接口概览133
  • 7.6 接口是类型安全的鸭子类型134
  • 7.7 内嵌与接口137
  • 7.8 接收接口,返回结构体138
  • 7.9 接口与nil139
  • 7.10 空接口139
  • 7.11 类型断言与type-switch141
  • 7.12 谨慎使用类型断言与type-switch143
  • 7.13 函数类型实现接口145
  • 7.14 隐式接口实现依赖注入146
  • 7.15 Wire150
  • 7.16 Go并非传统意义上的面向对象语言150
  • 7.17 总结150
  • 第8章 错误151
  • 8.1 如何处理错误151
  • 8.2 使用字符串创建简单错误152
  • 8.3 哨兵错误153
  • 8.4 错误是值155
  • 8.5 包装错误157
  • 8.6 Is和As159
  • 8.7 使用defer包装错误162
  • 8.8 panic和recover163
  • 8.9 从错误中获取堆栈跟踪信息165
  • 8.10 总结165
  • 第9章 模块、包和导入166
  • 9.1 仓库、模块和包166
  • 9.2 go.mod166
  • 9.3 创建包167
  • 9.4 模块177
  • 9.5 模块的发布185
  • 9.6模块的版本控制186
  • 9.7 模块代理服务器187
  • 9.8 总结188
  • 第10章 Go的并发编程189
  • 10.1 何时使用并发编程189
  • 10.2 goroutine190
  • 10.3 通道192
  • 10.4 select语句194
  • 10.5 并发实践与模式197
  • 10.6 何时使用互斥锁211
  • 10.7 atomic214
  • 10.8 额外资源214
  • 10.9 总结214
  • 第11章 Go语言标准库215
  • 11.1 标准io库215
  • 11.2 time220
  • 11.3 encoding/json222
  • 11.4 net/http228
  • 11.5 总结234
  • 第12章 上下文235
  • 12.1 什么是上下文235
  • 12.2 取消238
  • 12.3 计时器241
  • 12.4 在上下文中处理取消请求243
  • 12.5 传递值244
  • 12.6 总结249
  • 第13章 测试250
  • 13.1 测试的基本知识250
  • 13.2 表格驱动测试256
  • 13.3 检查代码覆盖率258
  • 13.4 基准测试261
  • 13.5 Go中的测试桩264
  • 13.6 httptest269
  • 13.7 集成测试和编译标签271
  • 13.8 使用竞争检测器检查并发问题272
  • 13.9总结274
  • 第14章 恶龙禁区:反射、unsafe和cgo275
  • 14.1 在运行时使用反射处理类型275
  • 14.2 unsafe意味着不安全289
  • 14.3 cgo用于集成,而不是为了性能294
  • 14.4 总结297
  • 第15章 展望未来:Go中的泛型298
  • 15.1 泛型减少冗余代码,提高类型安全性298
  • 15.2 Go中的泛型300
  • 15.3 类型列表可指定操作符305
  • 15.4 泛型函数抽象算法306
  • 15.5 类型列表限制常量和实现307
  • 15.6 暂不考虑的问题310
  • 15.7 惯例模式与泛型312
  • 15.8 未来更多可能312
  • 15.9 总结313

以上就是本次关于书籍资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

Go语言相关资源

  • Go语言定制指南

    Go语言定制指南

    Go语言程序设计与实现教程,Go语言编程实战自学,剖析Go语言底层运行机制,学习编译器原理,提升编程技艺,提高编写效率,附赠源代码 编辑推荐 1.深入浅出,接触核心 理解Go语言语法树的工作原理,提升编程技艺,学习编译器的原理与实现,编写更效率的代码;通过理解简单的凹语言,深刻理解Go语言特性,获得自制一门编程语言的启发。 2.内容针对性与专业性强 本书面向已经熟练掌握Go语言并在进行项目开发的程序员,也适合想深入了解Go语言底

    大小:40.5 MBGo语言

  • Go语言核心编程

    Go语言核心编程

    本书主要分三个方面介绍Go语言:Go语言精华——并发和小而美的类型系统;Go语言缺陷;Go语言的哲学。本书重点介绍Go语言的实践和并发编程范式,力求让读者不但清楚并发的基本语法和原理

    大小:173.7 MBGo语言电子书

  • Go语言Web编程

    Go语言性能好、语法简单、开发效率高!一起来探索Go 语言吧! 本教程特别适合从事PHP/Python/Ruby/Node.js等Web开发的读者,通过本书可以了解编译型语言怎么写Web应用开发,系统底层怎么进行网络通信。 还适合从事C/C++/Java等系统级别开发的读者,通过本书可以了解到Web开发的一些知识,例如,如何处理表单,如何进行用户认证以及Session/Cookie等各方面的Web应用。 内容涵盖文本处理、表单处理、Session管理、数据库交互、加/解密、国际化和标准化,以及程序

    大小:4.6 MBWeb编程

  • Go语言标准库

    Go语言标准库

    Golang标准库。对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案。以示例驱动的方式讲解Golang的标准库。 标准库基于最新版本Go。注

    大小:19.8 MBGo语言电子书

  • Go语言并发之道

    Go语言并发之道

    本书作者带你一步一步深入这些方法。你将理解 Go语言为何选定这些并发模型,这些模型又会带来什么问题,以及你如何组合利用这些模型中的原语去解决问题。学习那些让你在独立且自信的编

    大小:140.4 MBGo语言电子书

  • Go语言精进之路:从新手到高手的编程思想、方法和技巧

    Go语言精进之路:从新手到高手的编程思想、方法和技巧

    内容简介 Go入门容易,精进难,如何才能像Go开发团队那样写出符合Go思维和语言惯例的高质量代码呢? 本书将从编程思维和实践技巧2个维度给出答案,帮助你在Go进阶的路上事半功倍。 编程思维层面 只有真正领悟了一门语言的设计哲学和编程思维,并能将之用于实践,才算精通了这门语言。本书从Go语言设计者的视角对Go背后的设计哲学和编程思想进行了梳理和分析,指引读者体会那些看似随意实则经过深思熟虑的设计背后的秘密。 实践技巧层面 实践

    大小:51.2 MBGo语言

  • 《分布式缓存—原理、架构及Go语言实现》配套资源

    《分布式缓存—原理、架构及Go语言实现》配套资源

    内容简介 随着互联网的飞速发展,各行各业对互联网服务的要求也越来越高,互联网系统很多常见的存储类场景都面临着容量和稳定性风险。此时,本地缓存已无法满足需要,分布式缓存由于其高性能、高可用性等优点迅速被广大互联网公司接受并使用。 本书共分3个部分,每个部分都有3章。部分为基本功能的实现,主要介绍基于HTTP的in memory缓存服务、HTTP/REST协议、TCP等。第2部分介绍性能相关的内容,我们将集中全力讲解从各方面提升缓存服务性能的

    大小:58.24 KB分布式缓存配套资源

参与送书

学习笔记

14小时33分钟前回答

Go语言对比 C++引用传参

这篇文章主要介绍了Go 到底有没有引用传参(对比 C++ ),需要的朋友可以参考下 C++ 中三种参数传递方式 值传递: 最常见的一种传参方式,函数的形参是实参的拷贝,函数中改变形参不会影响到函数外部的形参。一般是函数内部修改参数而又不希望影响到调用者的时候会采用值传递。 指针传递 形参是指向实参地址的一个指针,顾名思义,在函数中对形参指向的内容操作,实参本……

20小时32分钟前回答

放弃 Python 转向 Go语言有人给出了 9 大理由

转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时。今年 Stream 团队的主要编程语言从 Python 转向了 Go。本文解释了其背后的九大原因以及如何做好这一转换。 一、为什么使用 Go 原因 1:性能 Go 极其地快。其性能与 Java 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍。以下是 Go 与 Java 之间的基准比较: 原因 2:语言性能很重要 对很多应用来……