基本信息
- 作者: [美]乔恩·博德纳(Jon Bodner)
- 丛书名: O’Reilly精品图书系列
- 出版社:机械工业出版社
- ISBN:9787111703839
- 上架时间:2022-5-9
- 出版日期:2022 年4月
- 开本:16开
- 页码:334
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 综合 > 高级程序语言设计

内容简介
目录
第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
前言
就一个无趣的主题来写一本书可能看起来有点奇怪,所以我应该再解释一下。Go有小部分功能集与大多数其他现代编程语言格格不入。编写良好的Go程序往往简单明了,有时还有些重复。Go语言没有继承,没有泛型(目前还没有),没有面向切面的编程(aspect-oriented programming),没有函数重载,没有操作符重载,没有模式匹配,没有命名参数,没有异常。让很多人望而生畏的是,Go竟然有指针。Go的并发模型也与其他语言不同,但它基于20世纪70年代的思想,其垃圾收集器使用的算法也是如此。简言之,Go有些复古,而这正是关键所在。
不过,无趣并不意味着平庸。要想正确使用Go,就需要了解它的功能是如何整合在一起的。即使你能够写出看起来像Java或Python的Go代码,也并不会满足于得到的结果,并且想弄清楚所有这些特性背后的底层机制是怎么回事。这正是本书的意义所在。本书清楚地介绍了Go的特性,解释了如何才能最大限度地使用它们来编写可长期维护且符合Go语言惯例的代码。
在需要构建某种可持续发展的事物时,无趣是件好事。如果一座桥是用一项未经测试的技术建造而成的,即使工程师认为这项技术超级酷,也绝没有人愿意成为第一个开车通过的人。许多编程语言在添加特性时并没有考虑它们对代码库可维护性的影响。Go的目标正是让开发者能够更容易、更高效地在几十年的软件生命周期中持续构建规模化的软件。
Go语言确实很无趣,但是也很奇妙。希望本书能够教会你如何用无趣的代码构建令人振奋的项目。
目标读者
本书的目标读者是想要学习Go语言的开发者,尤其是Go语言的初学者。本书的重点不是简单地用Go写程序,而是写出符合Go语言惯例的程序。有经验的Go开发者可以在书中找到关于如何最有效地使用该语言的新特性的建议。最重要的是,读者希望能够学到如何写出像Go一样的Go代码。
读者需要有开发者行业工具的使用经验,比如版本控制(最好是Git)和IDE。读者还应该熟悉基本的计算机科学概念,如并发编程和抽象,因为书中解释了它们如何在Go中工作。其中一些代码示例可以从GitHub上下载,还有几十个示例可以在The Go Playground上在线试用。虽然互联网连接不是必需的,但它在回顾可执行示例时很有帮助。由于Go经常被用来构建和调用HTTP服务端,所以有些示例需要读者熟悉基本的HTTP概念。
虽然Go的大部分特性在其他语言中都能找到,但Go做出了不同的权衡,所以用它编写的程序具有不同的结构。学习Go首先要从设置Go开发环境开始,然后涵盖变量、类型、流程控制和功能。请不要跳过这些细节,正是这些细节让你的代码符合Go的惯例。
排版约定
本书中使用以下排版约定:
斜体(Italic)
表示新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
表示应由用户直接输入的命令或其他文本。
等宽斜体(Constant width italic)
表示应由用户提供的值或由上下文确定的值替换的文本。
该图示表示提示或建议。
媒体评论
无论你的开发经验和水平如何,都将通过本书学会Go开发者的思考模式。作者Jon Bodner精心介绍了经验丰富的Go开发者所采用的设计模式,并说明了使用这些模式的理由。你还将提前了解Go即将发布的泛型特性,以及它是如何从设计到实现,一步步融入Go语言的。
通过本书,你将:
? 学习如何在Go语言中编写惯例代码并设计Go项目。
? 理解Go语言设计中的权衡。
? 学会为独立开发人员或团队构建Go语言的开发环境。
? 了解如何以及何时使用反射、unsafe和cgo。
? 探究如何利用Go语言的特性使代码高效运行。
? 了解哪些Go语言的特性应该少使用,或避免使用。
“ 本书专为开发者学习Go语言而写,达到了一种恰到好处的平衡:既很好地概述了需要了解的知识,又没有对其他语言中易于理解的概念加以重复。”
——Steve Francia
Google的Go语言产品负责人,
Hugo、Cobra和Viper的创作者
“ Go语言非常独特,即使经验丰富的程序员也必须刻意忘掉某些固有思维,以完全不同的方式思考软件。本书很好地阐述了Go语言的特性,同时指出了Go语言的惯例代码、陷阱和设计模式。”
——Aaron Schlesinger
微软高级工程师
Jon Bodner是Capital One公司的一名杰出工程师,拥有20多年的软件工程师、首席开发者和架构师工作经验。他从事过多个领域的软件开发工作,包括教育、金融、商业、医疗保健、法律、政府和互联网基础设施。