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

Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-12
版次: 1
ISBN: 9787111698227
定价: 119.00
装帧: 其他
开本: 16开
纸张: 胶版纸
字数: 193千字
10人买过
  • 内容简介
      Go入门容易,精进难,如何才能像Go开发团队那样写出符合Go思维和语言惯例的高质量代码呢?
      本书将从编程思维和实践技巧2个维度给出答案,帮助你在Go进阶的路上事半功倍。
      编程思维层面
      只有真正领悟了一门语言的设计哲学和编程思维,并能将之用于实践,才算精通了这门语言。本书从Go语言设计者的视角对Go背后的设计哲学和编程思想进行了梳理和分析,指引读者体会那些看似随意实则经过深思熟虑的设计背后的秘密。
       实践技巧层面
      实践技巧源于对Go开发团队和Go社区开发的高质量代码的阅读、挖掘和归纳,从项目结构、代码风格、语法及其实现、接口、并发、同步、错误与异常处理、测试与调试、性能优化、标准库、第三方库、工具链、Z佳实践、工程实践等多个方面给出了改善Go代码质量、写出符合 Go 思维和惯例的代码的有效实践。
       全书的内容覆盖如下10个大类,共66个主题,字字珠玑,句句箴言。
      (1)Go语言的一切
      (2)项目结构、代码风格与标识符命名
      (3)声明、类型、语句与控制结构
      (4)函数与方法
      (5)接口
      (6)并发编程
      (7)错误处理
      (8)测试、性能剖析与调试
      (9)标准库、反射与cgo
      (10)工具链与工程实践
      学完这本书,你将拥有和 Go专家一样的编程思维,写出符合Go惯例和风格的高质量代码,从众多 Go 初学者中脱颖而出,快速实现从Go新手到专家的转变! 作者简介

    白明(Tony Bai) 

    资深Go技术专家和架构师,有超过10年的服务端架构设计和开发经验,擅长服务器后端编程。曾任东软集团开发部技术总监和东网科技高级架构师,现为东软睿驰智能网联汽车业务线精通车联网平台的高级架构师。精通Go、C、Python、Shell、Linux、Rancher、Docker、OpenStack、Kubernetes等技术栈。

    《七周七语言》译者之一,GopherChina大会、开源中国源创会讲师,麦思博客座培训师,tonybai.com技术博客博主。 推荐序

    前言

    部分 熟知Go语言的一切

    第1条 了解Go语言的诞生与演进

    1.1 Go语言的诞生

    1.2 Go语言的早期团队和演进历程

    1.3 Go语言正式发布并开源

    第2条 选择适当的Go语言版本

    2.1 Go语言的先祖

    2.2 Go语言的版本发布历史

    2.3 Go语言的版本选择建议

    第3条 理解Go语言的设计哲学

    3.1 追求简单,少即是多

    3.2 偏好组合,正交解耦

    3.3 原生并发,轻量高效

    3.4 面向工程,“自带电池”

    第4条 使用Go语言原生编程思维来写Go代码

    4.1 语言与思维—来自大师的观点

    4.2 现实中的“投影”

    4.3 Go语言原生编程思维

    第二部分 项目结构、代码风格与标识符命名

    第5条 使用得到公认且广泛使用的项目结构

    5.1 Go项目的项目结构

    5.2 Go语言典型项目结构

    第6条 提交前使用gofmt格式化源码

    6.1 gofmt:Go语言在解决规模化问题上的实践

    6.2 使用gofmt

    6.3 使用goimports

    6.4 将gofmt/goimports与IDE或编辑器工具集成

    第7条 使用Go命名惯例对标识符进行命名

    7.1 简单且一致

    7.2 利用上下文环境,让短的名字

       携带足够多的信息

    第三部分 声明、类型、语句与

    控制结构

    第8条 使用一致的变量声明形式

    8.1 包级变量的声明形式

    8.2 局部变量的声明形式

    第9条 使用无类型常量简化代码

    9.1 Go常量溯源

    9.2 有类型常量带来的烦恼

    9.3 无类型常量消除烦恼,简化代码

    第10条 使用iota实现枚举常量

    第11条 尽量定义零值可用的类型

    11.1 Go类型的零值

    11.2 零值可用

    第12条 使用复合字面值作为初值构造器

    12.1 结构体复合字面值

    12.2 数组/切片复合字面值

    12.3 map复合字面值

    第13条 了解切片实现原理并高效使用

    13.1 切片究竟是什么

    13.2 切片的高级特性:动态扩容

    13.3 尽量使用cap参数创建切片

    第14条 了解map实现原理并高效使用

    14.1 什么是map

    14.2 map的基本操作

    14.3 map的内部实现

    14.4 尽量使用cap参数创建map

    第15条 了解string实现原理并高效使用

    15.1 Go语言的字符串类型

    15.2 字符串的内部表示

    15.3 字符串的高效构造

    15.4 字符串相关的高效转换

    第16条 理解Go语言的包导入

    16.1 Go程序构建过程

    16.2 究竟是路径名还是包名

    16.3 包名冲突问题

    第17条 理解Go语言表达式的求值顺序

    17.1 包级别变量声明语句中的表达式求值顺序

    17.2 普通求值顺序

    17.3 赋值语句的求值

    17.4 switch/select语句中的表达式求值

    第18条 理解Go语言代码块与作用域

    18.1 Go代码块与作用域简介

    18.2 if条件控制语句的代码块

    18.3 其他控制语句的代码块规则简介

    第19条 了解Go语言控制语句惯用法及使用注意事项

    19.1 使用if控制语句时应遵循“快乐路径”原则

    19.2 for range的避“坑”指南

    19.3 break跳到哪里去了

    19.4 尽量用case表达式列表替代fallthrough

    第四部分 函数与方法

    第20条 在init函数中检查包级变量的初始状态

    20.1 认识init函数

    20.2 程序初始化顺序

    20.3 使用init函数检查包级变量的初始状态

    第21条 让自己习惯于函数是“一等公民”

    21.1 什么是“一等公民”

    21.2 函数作为“一等公民”的特殊运用

    第22条 使用defer让函数更简洁、更健壮

    22.1 defer的运作机制

    22.2 defer的常见用法

    22.3 关于defer的几个关键问题

    第23条 理解方法的本质以选择正确的receiver类型

    23.1 方法的本质

    23.2 选择正确的receiver类型

    23.3 基于对Go方法本质的理解巧解难题

    第24条 方法集合决定接口实现

    24.1 方法集合

    24.2 类型嵌入与方法集合

    24.3 defined类型的方法集合

    24.4 类型别名的方法集合

    第25条 了解变长参数函数的妙用

    25.1 什么是变长参数函数

    25.2 模拟函数重载

    25.3 模拟实现函数的可选参数与默认参数

    25.4 实现功能选项模式

    第五部分 接口

    第26条 了解接口类型变量的内部表示

    26.1 nil error值 != nil

    26.2 接口类型变量的内部表示

    26.3 输出接口类型变量内部表示的详细信息

    26.4 接口类型的装箱原理

    第27条 尽量定义小接口

    27.1 Go推荐定义小接口

    27.2 小接口的优势

    27.3 定义小接口可以遵循的一些点

    第28条 尽量避免使用空接口作为函数参数类型

    第29条 使用接口作为程序水平组合的连接点

    29.1 一切皆组合

    29.2 垂直组合回顾

    29.3 以接口为连接点的水平组合

    第30条 使用接口提高代码的可测试性

    30.1 实现一个附加免责声明的电子邮件发送函数

    30.2 使用接口来降低耦合

    第六部分 并发编程

    第31条 优先考虑并发设计

    31.1 并发与并行

    31.2 Go
  • 内容简介:
    内容简介
      Go入门容易,精进难,如何才能像Go开发团队那样写出符合Go思维和语言惯例的高质量代码呢?
      本书将从编程思维和实践技巧2个维度给出答案,帮助你在Go进阶的路上事半功倍。
      编程思维层面
      只有真正领悟了一门语言的设计哲学和编程思维,并能将之用于实践,才算精通了这门语言。本书从Go语言设计者的视角对Go背后的设计哲学和编程思想进行了梳理和分析,指引读者体会那些看似随意实则经过深思熟虑的设计背后的秘密。
       实践技巧层面
      实践技巧源于对Go开发团队和Go社区开发的高质量代码的阅读、挖掘和归纳,从项目结构、代码风格、语法及其实现、接口、并发、同步、错误与异常处理、测试与调试、性能优化、标准库、第三方库、工具链、Z佳实践、工程实践等多个方面给出了改善Go代码质量、写出符合 Go 思维和惯例的代码的有效实践。
       全书的内容覆盖如下10个大类,共66个主题,字字珠玑,句句箴言。
      (1)Go语言的一切
      (2)项目结构、代码风格与标识符命名
      (3)声明、类型、语句与控制结构
      (4)函数与方法
      (5)接口
      (6)并发编程
      (7)错误处理
      (8)测试、性能剖析与调试
      (9)标准库、反射与cgo
      (10)工具链与工程实践
      学完这本书,你将拥有和 Go专家一样的编程思维,写出符合Go惯例和风格的高质量代码,从众多 Go 初学者中脱颖而出,快速实现从Go新手到专家的转变!
  • 作者简介:
    作者简介

    白明(Tony Bai) 

    资深Go技术专家和架构师,有超过10年的服务端架构设计和开发经验,擅长服务器后端编程。曾任东软集团开发部技术总监和东网科技高级架构师,现为东软睿驰智能网联汽车业务线精通车联网平台的高级架构师。精通Go、C、Python、Shell、Linux、Rancher、Docker、OpenStack、Kubernetes等技术栈。

    《七周七语言》译者之一,GopherChina大会、开源中国源创会讲师,麦思博客座培训师,tonybai.com技术博客博主。
  • 目录:
    推荐序

    前言

    部分 熟知Go语言的一切

    第1条 了解Go语言的诞生与演进

    1.1 Go语言的诞生

    1.2 Go语言的早期团队和演进历程

    1.3 Go语言正式发布并开源

    第2条 选择适当的Go语言版本

    2.1 Go语言的先祖

    2.2 Go语言的版本发布历史

    2.3 Go语言的版本选择建议

    第3条 理解Go语言的设计哲学

    3.1 追求简单,少即是多

    3.2 偏好组合,正交解耦

    3.3 原生并发,轻量高效

    3.4 面向工程,“自带电池”

    第4条 使用Go语言原生编程思维来写Go代码

    4.1 语言与思维—来自大师的观点

    4.2 现实中的“投影”

    4.3 Go语言原生编程思维

    第二部分 项目结构、代码风格与标识符命名

    第5条 使用得到公认且广泛使用的项目结构

    5.1 Go项目的项目结构

    5.2 Go语言典型项目结构

    第6条 提交前使用gofmt格式化源码

    6.1 gofmt:Go语言在解决规模化问题上的实践

    6.2 使用gofmt

    6.3 使用goimports

    6.4 将gofmt/goimports与IDE或编辑器工具集成

    第7条 使用Go命名惯例对标识符进行命名

    7.1 简单且一致

    7.2 利用上下文环境,让短的名字

       携带足够多的信息

    第三部分 声明、类型、语句与

    控制结构

    第8条 使用一致的变量声明形式

    8.1 包级变量的声明形式

    8.2 局部变量的声明形式

    第9条 使用无类型常量简化代码

    9.1 Go常量溯源

    9.2 有类型常量带来的烦恼

    9.3 无类型常量消除烦恼,简化代码

    第10条 使用iota实现枚举常量

    第11条 尽量定义零值可用的类型

    11.1 Go类型的零值

    11.2 零值可用

    第12条 使用复合字面值作为初值构造器

    12.1 结构体复合字面值

    12.2 数组/切片复合字面值

    12.3 map复合字面值

    第13条 了解切片实现原理并高效使用

    13.1 切片究竟是什么

    13.2 切片的高级特性:动态扩容

    13.3 尽量使用cap参数创建切片

    第14条 了解map实现原理并高效使用

    14.1 什么是map

    14.2 map的基本操作

    14.3 map的内部实现

    14.4 尽量使用cap参数创建map

    第15条 了解string实现原理并高效使用

    15.1 Go语言的字符串类型

    15.2 字符串的内部表示

    15.3 字符串的高效构造

    15.4 字符串相关的高效转换

    第16条 理解Go语言的包导入

    16.1 Go程序构建过程

    16.2 究竟是路径名还是包名

    16.3 包名冲突问题

    第17条 理解Go语言表达式的求值顺序

    17.1 包级别变量声明语句中的表达式求值顺序

    17.2 普通求值顺序

    17.3 赋值语句的求值

    17.4 switch/select语句中的表达式求值

    第18条 理解Go语言代码块与作用域

    18.1 Go代码块与作用域简介

    18.2 if条件控制语句的代码块

    18.3 其他控制语句的代码块规则简介

    第19条 了解Go语言控制语句惯用法及使用注意事项

    19.1 使用if控制语句时应遵循“快乐路径”原则

    19.2 for range的避“坑”指南

    19.3 break跳到哪里去了

    19.4 尽量用case表达式列表替代fallthrough

    第四部分 函数与方法

    第20条 在init函数中检查包级变量的初始状态

    20.1 认识init函数

    20.2 程序初始化顺序

    20.3 使用init函数检查包级变量的初始状态

    第21条 让自己习惯于函数是“一等公民”

    21.1 什么是“一等公民”

    21.2 函数作为“一等公民”的特殊运用

    第22条 使用defer让函数更简洁、更健壮

    22.1 defer的运作机制

    22.2 defer的常见用法

    22.3 关于defer的几个关键问题

    第23条 理解方法的本质以选择正确的receiver类型

    23.1 方法的本质

    23.2 选择正确的receiver类型

    23.3 基于对Go方法本质的理解巧解难题

    第24条 方法集合决定接口实现

    24.1 方法集合

    24.2 类型嵌入与方法集合

    24.3 defined类型的方法集合

    24.4 类型别名的方法集合

    第25条 了解变长参数函数的妙用

    25.1 什么是变长参数函数

    25.2 模拟函数重载

    25.3 模拟实现函数的可选参数与默认参数

    25.4 实现功能选项模式

    第五部分 接口

    第26条 了解接口类型变量的内部表示

    26.1 nil error值 != nil

    26.2 接口类型变量的内部表示

    26.3 输出接口类型变量内部表示的详细信息

    26.4 接口类型的装箱原理

    第27条 尽量定义小接口

    27.1 Go推荐定义小接口

    27.2 小接口的优势

    27.3 定义小接口可以遵循的一些点

    第28条 尽量避免使用空接口作为函数参数类型

    第29条 使用接口作为程序水平组合的连接点

    29.1 一切皆组合

    29.2 垂直组合回顾

    29.3 以接口为连接点的水平组合

    第30条 使用接口提高代码的可测试性

    30.1 实现一个附加免责声明的电子邮件发送函数

    30.2 使用接口来降低耦合

    第六部分 并发编程

    第31条 优先考虑并发设计

    31.1 并发与并行

    31.2 Go
查看详情
12
相关图书 / 更多
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go专家编程(第2版)
任洪彩
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go编程进阶实战:开发命令行应用、HTTP应用和gRPC应用
[澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译;上海碳泽信息科技有限公司 审校
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言从入门到项目实战(视频版)
刘瑜 萧文翰 董树南 著
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言从入门到项目实践(超值版)
余建熙
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言学习指南:惯例模式与编程实践
乔恩·博德纳(Jon Bodner)
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言程序设计-微课视频版
肖建良;赵文丽
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go程序员面试笔试宝典
饶全成 欧长坤 楚秦等编著 猿媛之家 组编
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言程序设计项目化教程(微课版)
谭旭;史律;钟祥永
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go程序开发实战宝典
穆旭东 谭庆丰 楚秦 编著;猿媛之家 组编
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言与区块链开发(计算机类普通高等教育双一流课程系列教材)
冯柳平、陈澜祯、袁贵春、卢婷婷 编
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言Hyperledger区块链开发实战
李晓黎
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言设计模式(双色版)
廖显东
您可能感兴趣 / 更多
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
企业环保合规与律师服务
白明旭;轩梓翰;邹东来
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
金鱼(家养观赏鱼系列)
白明 著;刘雅丹
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
鸿雁
白明正
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
龙鱼(家养观赏鱼系列)
白明 著;刘雅丹
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
海水观赏鱼
白明 著
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
漫画儿童心理学 全套5册 小学生三四年级上册至六年级课外阅读漫画书儿童心理健康教育书籍情绪管理与性格培养绘本故事书
白明艳
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
Go语言精进之路:从新手到高手的编程思想、方法和技巧 1
白明
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
被唤醒的条款(反倾销特殊市场情形规则理论与实务)
白明 著
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
高速铁路环境保护
白明洲;宋雷鸣
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
武夷山金龟志
白明 著
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
交通建设岩溶灾害防治
白明洲、雷军、许兆义、师海 著
Go语言精进之路:从新手到高手的编程思想、方法和技巧 2
醍昂:白明的国度
白明 著