猜你喜欢
精通Go语言(第2版)

精通Go语言(第2版)

书籍作者:米哈里斯·托卡洛斯 ISBN:9787302594857
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:6907
创建日期:2022-11-05 发布日期:2022-11-05
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《精通Go语言(第2版)》详细阐述了与Go语言相关的基本解决方案,主要包括Go语言和操作系统,理解Go语言的内部机制,处理Go语言中的基本数据类型,组合类型的使用,利用数据结构改进Go代码,Go包和函数,反射和接口,UNIX系统编程,Go语言中的并发编程—协程、通道和管道,Go语言的并发性—高级话题,代码测试、优化和分析,网络编程基础知识,网络编程—构建自己的服务器和客户端,Go语言中的机器学习等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。


前言

前 言

  本书旨在帮助读者成为一名更加优秀的Go语言开发者。

  本书涵盖了许多令人激动的主题,包括与Go语言机器学习相关的新增章节,以及与Viper和Cobra Go包、gRPC、Docker镜像协同操作、YAML文件协同操作、go/scanner和go/token包协同操作、从Go语言中生成WebAssembly代码相关的信息和示例。

适用读者

  本书适用于希望进一步提升编程水平的中级Go程序员和Go语言编程爱好者;此外,本书也适用于具有一定编程经验的使用其他语言的开发人员,他们希望了解Go语言,但并不打算从for循环开始从头学起。

本书内容

  第1章首先将介绍Go语言的历史和优点,随后将描述godoc应用程序并解释如何编译和执行Go程序。接下来,本章将考查如何显示输出结果、获取用户输入内容、与程序的命令行参数协调工作、使用日志文件。最后,本章还将讨论错误处理机制,该机制在Go语言中饰演了重要的角色。

  第2章首先将讨论Go垃圾收集及其操作方式,随后将介绍不安全的代码、unsafe包、如何在Go语言程序中调用C语言代码、如何从C语言程序中调用Go代码。随后,本章将依次展示defer关键字的用法、strace(1)和dtrace(1)实用程序。在本章其余部分中,我们还将学习如何获取与Go环境相关的信息、Go汇编器的使用以及如何从Go语言中生成WebAssembly。

  第3章将讨论Go语言提供的数据类型,其中包括数组、切片、映射、Go指针、常量、循环,以及与日期和时间的协同工作方式。读者不应错过本章中的精彩内容。

  第4章在介绍元组、字符串、rune、字节切片和字符串字面值之前首先将考查Go语言结构和关键字struct。本章其余内容则将阐述正则表达式和模式匹配、switch语句、strings包、math/big包、Go语言中的键-值开发、XML协同工作方式以及JSON文件。

  第5章将讨论当Go语言提供的结构不适用于特定问题时,如何开发自己的数据结构,包括二叉树、哈希表、链表、队列、栈及其优点。除此之外,本章还将讲解container标准Go语言包中结构的应用,以及如何使用Go语言破解Sudoku谜语以及生成随机数。

  第6章将讨论包和函数,包括init()函数、syscall标准Go包、text/template包和html/template包。另外,本章还将进一步展示go/scanner、go/parser和go/token高级包的使用。不难发现,本章将极大地提升Go语言开发人员的编程技能。

  第7章将讨论Go语言中3个高级概念,即反射、接口和类型方法。除此之外,本章还将介绍Go语言的面向对象功能,以及如何利用Delve调试Go程序。

  第8章将讨论Go语言中的系统编程,其中涉及与命令行参数协同工作的flag包、处理UNIX信号、文件输入和输出、bytes包、io.Reader和io.Writer接口,以及Viper和Cobra Go包的使用。

  第9章将讨论协程、通道和管道,这也是实现并发的Go语言方式。此外,本章还将学习进程、线程和协程之间的差别、sync包和Go调度器的操作方式。

  第10章将在第9章的基础上继续探讨协程和通道。读者将学习更多关于Go调度器、共享内存、互斥体、sync.Mutex类型和sync.RWMutex类型方面的知识。本章最后一部分内容将阐述工作池,以及如何监测竞争条件。

  第11章将介绍代码测试机制、代码优化和代码分析、交叉编译、生成文档Go代码基准测试、创建示例函数、查找不可访问的Go代码。

  第12章将介绍net/http包,以及如何在Go语言中开发Web客户端和Web服务,此外还包括http.Response、http.Request、http.Transport结构的使用和http.NewServeMux类型。读者甚至还将学习如何在Go语言中开发一个完整的站点。进一步讲,本章将学习如何读取网络接口的配置信息,以及如何在Go语言中执行DNS查找。除此之外,我们还将学习如何在Go语言的基础上使用gRPC。

  第13章将讨论如何与HTTPS流量协同工作、利用net包提供的各项功能在Go语言中创建UDP和TCP服务器和客户端。本章其他主题还包括创建RPC客户端和服务器、在Go语言中开发TCP并发服务器和读取原始网络包。

  第14章将介绍Go语言中的机器学习,包括分类、聚类、异常检测、异常值、神经网络、TensorFlow,以及Go语言中与Apache Kafka的协同工作方式。

  本书可被划分为3个逻辑部分。其中,第1部分内容深入考查某些重要的Go语言概念,包括用户输入和输出、下载外部Go语言包、编译Go代码、从Go语言程序中调用C代码、从Go语言中创建WebAssembly、使用Go语言的基本类型和Go语言的复合类型。

  第2部分内容包括第5~7章,主要处理包和模块中的Go语言代码组织问题、Go语言的项目设计以及Go语言中的某些高级特性。

  第3部分内容包括第8~14章,主要处理Go语言中的一些可操作问题。其中,第8~11章将讨论Go语言中的系统编程、Go语言中的并发编程、代码测试、优化和分析;第12~14章将介绍网络编程和Go语言中的机器学习。

  本书内容涉及Go和WebAssembly、基于Go语言的Docker、利用Viper和Cobra包创建专业的命令行工具、解析JSON和YAML记录、矩阵计算、与Sudoku协调工作、go/scanner和go/token包、处理git(1)和GitHub、atomic包、gRPC和Go语言以及HTTPS。

  本书示例程序短小而完整,旨在阐述相关概念。这包含两方面的优点:首先,读者在学习某种技术时无须查看冗长的代码列表;其次,当创建自己的应用程序和实用程序时,读者可使用这些代码作为起始点。

?提示:

  我们已经了解到容器和Docker的重要性,因而本书中包括的各种Go执行文件示例均在Docker镜像中加以使用—Docker镜像可方便地部署服务器应用程序。

技术需求

  当运行本书示例程序时,我们需要一台基于UNIX环境的计算机,同时安装较新版本的Go语言,其中包括运行Mac OS X、macOS或Linux的机器。另外,本书提供的大多数代码也将在Microsoft Windows机器上运行。

  为了从本书中获得更多开发技能,建议读者尽可能地在自己的程序中实现每章中的知识点,并查看相应的操作结果。除此之外,读者还应完成每章结尾的练习题,或者找出自己的编程问题。

下载示例代码文件

  读者可访问www.packt.com并通过个人账户下载本书的示例代码文件。无论读者在何处购买了本书,均可访问www.packt.com/support,经注册后我们会直接将相关文件通过电子邮件的方式发送给您。

  下载代码文件的具体操作步骤如下。

  (1)访问www.packt.com并注册。

  (2)选择SUPPORT选项卡。

  (3)单击Code Downloads & Errata。

  (4)在Search搜索框中输入书名,然后按照屏幕上的说明操作。

  当文件下载完毕后,可利用下列软件的最新版本解压或析取文件夹中的内容。

* WinRAR/7-Zip(Windows环境)。

* Zipeg/iZip/UnRarX(Mac环境)。

* 7-Zip/PeaZip(Linux环境)。

  另外,本书的代码包也托管于GitHub上,对应网址为https://github.com/PacktPublishing/ Mastering-Go-Second-Edition。若代码被更新,现有的GitHub库也会保持同步更新。

  读者还可访问https://github.com/PacktPublishing/并从对应分类中查看其他代码包和视频内容。

下载彩色图像

  我们还提供了与本书相关的PDF文件,其中包含书中所用截图/图表的彩色图像,读者可访问https://static.packt-cdn.com/downloads/9781838559335.pdf进行下载。

  图标表示提示信息和操作技巧。

读者反馈和客户支持

  欢迎读者对本书提出建议或意见并予以反馈。

  对此,读者可向[email protected]发送邮件,并以书名作为邮件标题。

勘误表

  尽管我们希望做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问http://www.packtpub.com/ submit-errata,选取对应书籍,单击Errata Submission超链接,输入并提交相关问题的详细内容。

版权须知

  一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知我们网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至[email protected]

  若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问authors.packtpub.com。

问题解答

  若读者对本书有任何疑问,均可发送邮件至[email protected],我们将竭诚为您服务。

  

  

  

  

  

·IV·

精通Go语言(第2版)

  

·VII·

前 言

  

  

  

  

  

  

  

  

  


短评

到货快,印刷质量好,是正品

2022-01-15 12:30:30

本人有c和python的项目基础,学过一点点go基础。 买了半个多月,快看完了,也跟着书中敲完代码,现在才来评论。 不建议购买。 不适合初学者,也不适合有基础的同学来进阶。这本书基础没讲,进阶又没进阶到位。

2022-01-15 23:40:41

好书需细读,过节读好书。

2022-01-13 17:57:57

比想象中厚,一直想买这本书,终于在节前拿到了,好好学习下。

2022-01-28 11:50:35

质量好,送货快,十分满意。

2022-01-16 00:05:50

很好的编程书籍,趁打折购买,有时间就学习。

2022-01-14 08:09:49

产品特色