内容简介:《Go语言核心编程》一书9月底上市了,本文是《Go语言核心编程》的前言部分,推荐给大家,希望这本书能帮助到大家更好的学习Go语言。Go语言的核心语言特性包括:类型系统、接口、并发。这三部分是Go语言精华、优美、也是重要的特征,本书紧密围绕这三个主题展开。以“类型系统”为例,Go语言中的类型有:简单类型、复合类型、命名类型、未命名类型、静态类型、动态类型、底层类型、接口类型、具体类型以及类型字面量等诸多概念,这些概念在其他Go类图书里面鲜有介绍,本书试图帮助读者梳理清楚这些类型的含义,建立概念,认清类型本质
《Go语言核心编程》一书9月底上市了,本文是《Go语言核心编程》的前言部分,推荐给大家,希望这本书能帮助到大家更好的学习 Go 语言。
书籍概况
Go语言的核心语言特性包括:类型系统、接口、并发。这三部分是Go语言精华、优美、也是重要的特征,本书紧密围绕这三个主题展开。以“类型系统”为例,Go语言中的类型有:简单类型、复合类型、命名类型、未命名类型、静态类型、动态类型、底层类型、接口类型、具体类型以及类型字面量等诸多概念,这些概念在其他Go类图书里面鲜有介绍,本书试图帮助读者梳理清楚这些类型的含义,建立概念,认清类型本质并学会正确使用;在接口章节,不单介绍了接口概念和用法,还深入分析了接口的机制,使读者对Go语言非侵入式的接口有更深入的理解;在并发编程章节,书中给出了5个并发编程范式,并用图描述并发程序的模型,通俗易懂,这也是本书读特点。此外本书还拿出一整章内容介绍Go语言编程过程中可能遇到的陷阱,不仅告诉读者陷阱是什么,正确使用方式是什么,同时也给出出现这种问题的根本原因,使读者后续能够避免犯同样的错误。本书最后从哲学角度论述下Go语言的编程思想,相信Go语言爱好者一定可以从书中找到自己感兴趣内容。 感兴趣的点击图片链接书籍的详情。
写作背景
2007 年,Go 语言诞生于谷歌公司,2009 年开源,2012 年推出1.0 版本,曾两次获得TIOBE年度语言(2009 年和2016 年)。2012 年起,全球大量的开源项目开始使用Go 语言进行开发,目前Go 语言已经成为云计算领域事实上的标准语言,特别是在容器领域,诞生了一大批优秀的开源软件,如 Docker 、Kubernetes 等。2017 年区块链技术在国内大热,区块链两个大的技术平台以太坊(Ethereum)和超级账本(Hyperledger)子项目Fabric 都是基于Go 语言构建的。Go 语言的应用领域逐步扩大,目前在区块链、云计算、中间件和服务器编程领域显现出明显的优势。Go 语言最先在云计算公司盛行,随后大量的互联网初创企业将Go 语言作为后台主要开发语言。目前,无论互联网公司里的独角兽,还是BAT(百度、阿里巴巴、腾讯),都已将Go语言作为其技术栈的重要组成部分。市场对于Go 语言编程人才的需求量也在持续上升。
目前,Go 语言编程类图书有如下几个类别。
基础全面型
七牛团队写作和翻译的几本书(《Go 语言编程》《Go 程序设计语言》等),系统地介绍了Go 开发的基础知识,为Go 语言在国内的推广做出了很大的贡献。
源码深入型
雨痕的《Go 语言学习笔记》,上半部分是对 Go 语言基础知识的总结,下半部分对源码进行了分析,是学习Go 语言内部原理非常好的参考书。
专业领域型
专注于介绍某个应用领域,比如谢孟军的《Go Web 编程》,这类图书主要是介绍使用Go 语言在某个领域进行开发的相关知识。
市面上Go 语言的图书这么多了,为什么又要写一本,本书和市面上的图书有什么区别呢?这也是我写这本书之前就认真思考过的问题。我发现市面上缺少介绍Go 语言核心特性和使用陷阱的书。Go 语言核心特性包括类型系统、接口、并发,这三部分是Go 语言最精华、最优美、最重要的语言特性。于是我就围绕这三个主题写了本书,书名就叫《Go 语言核心编程》。以类型系统为例,Go 语言中的类型涉及简单类型、复合类型、命名类型、未命名类型、静态类型、动态类型、底层类型、接口类型、具体类型及类型字面量等诸多概念,这些在先前的书籍里没有系统地介绍过,本书试图帮助读者梳理清楚这些类型的含义,建立概念,认清类型本质并学会使用;在并发编程中给出了5 个并发编程范式并系统地介绍了context 标准库,这也是本书特有的。
内容简介
本书共9 章,围绕如下主题展开:基础知识(第1 章)、语言核心(第2 章~第7 章)、工程管理(第8 章)和编程哲学(第9 章)。
基础知识
第1 章介绍Go 语言编程的基础知识。基础知识部分力求从系统性的角度讲述Go 语言简洁的语法知识,试图帮助读者了解Go 语言源程序基本结构,这是本书不同于其他书籍的地方。本章先对Go 的源程序进行整体介绍,然后从词法分析的角度介绍Go 语言的各个token,接着介绍Go 语言的基础语法:变量和常量、数据类型及控制结构,让读者学习Go 语言的语法知识时可以“既见树木,又见森林”。
语言核心
本书的第2~7 章讲解Go 语言核心知识,这部分是本书最核心、最重要的部分,主要围绕如下4 个主题展开。
1.类型系统
本书用3 章的篇幅来讲解Go 语言的类型系统,分别是第2 章函数、第3 章类型系统和第4章接口。类型系统是Go 语言的灵魂,Go 语言小而美的类型系统是其区别于其他语言的显著特征。函数在Go 语言中是“一等公民”,非侵入式的接口设计也很有特点。类型系统是本书的一条主要线索,几乎贯穿本书的所有章节,在反射章节里会对Go 的类型系统做一个总结。掌握类型系统是写好Go 程序的关键。
2.并发编程
第5 章介绍Go 并发编程,并发编程的原生支持是Go 语言显著的语言特征。“不要通过共享内存来通信,而是通过通信来共享内存”,本章首先讲解语言层面对并发的支持,接着讲解context 标准库的知识,最后讲解常用的并发范式和Go 并发模型。
3.反射
第6 章介绍Go 语言反射的相关知识。反射是Go 语言的高级特性,反射是把“双刃剑”,用好了会有强大的威力,但由于其复杂性且易产生运行时panic,因此反射又表现出脆弱性。Go 语言没有提供泛型支持,所以在开发框架和大型系统中反射是必须面对的一个技术点,市面上的图书对这部分的介绍不多,本书分类总结了Go 的反射API,尽可能梳理出条理清晰的API结构;同时以类型系统和接口底层实现为基础来介绍反射;最后介绍著名的Web 框架martini中使用的依赖注入库inject。
4.陷阱和习惯用法
第7 章介绍Go 语言陷阱和一些习惯用法,包括Go 语言使用过程中容易出错和初学者容易困惑的知识点。Go 语言虽然设计简洁,但在某些方面还是有瑕疵的,比如 defer 陷阱、短变量的声明range 临时变量共享等。同时Go 又有其鲜明的书写格式和习惯用法,本章的最后会介绍这些内容。
工程管理
Go 语言是一门面向工程的语言,而不是学术界的产物,第8 章介绍Go 语言工程管理方面的知识,主要介绍Go 的编程环境、命名空间和包管理的相关内容。
编程哲学
第9 章讨论编程哲学,这部分内容不是介绍编程细节知识,读者可以把它当作散文来读。先对Go 语言编程哲学做一个总结:少即是多,世界是并行的,组合优于继承,面向接口编程,等等,试图从哲学的角度来阐述这些设计思想的先进性。最后介绍Go 语言的里程碑事件及未来的发展方向。
相关约定
本书使用Go 代表Go 语言的简写,使用go 表示Go 语言的并发关键字,使用goroutine 代表Go 语言中的并发执行体。通道和chan 都代表Go 语言的通信管道。切片和slice 都表示Go语言内置的可变数组。本书使用实例或者类型实例表示具体类型的变量,而没有使用传统语言对象的概念。标准库和标准包会混用,都是指Go 语言自带的标准库。复制和拷贝具有相同的语义,都表示将数据复制一份并拷贝到另一处内存空间。本书是基于Go 1.10.2 写作的,新版本的变动请读者以官方文档为准。截至本书出版时,Go 1.11 发布,官方推出了新的包管理工具go mod,go mode 兼容dep,dep 仍可放心使用,go mod 是新增的功能需要一段时间成熟。
总结
本书绝大大部分内容是笔者六年来学习和实践Go语言过程中的总结和感悟,成书过程中也参阅了部分网上和官方资料,由于能力有限,错误或者疏忽之处难免发生,欢迎读者指正,以便我们及时修订,我的邮箱是email.tata@qq.com。
以上所述就是小编给大家介绍的《《Go语言核心编程》一书正式上市了》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 一书吃透机器学习!新版《机器学习基础》来了,教材PDF、PPT可下载 | 资源
- CSS核心技术详解-核心概念
- WTC测评:核心团队从业经验,核心代码尚未开源
- AI 产品开发的核心原则:以研究为核心驱动
- Knative 核心概念介绍:Build、Serving 和 Eventing 三大核心组件
- 区块链技术六大核心算法,读懂六大核心算法就变成区块链专家
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Mining
Jiawei Han、Micheline Kamber、Jian Pei / Morgan Kaufmann / 2011-7-6 / USD 74.95
The increasing volume of data in modern business and science calls for more complex and sophisticated tools. Although advances in data mining technology have made extensive data collection much easier......一起来看看 《Data Mining》 这本书的介绍吧!