作品简介

Go入门容易,精进难,如何才能像Go开发团队那样写出符合Go思维和语言惯例的高质量代码呢?

本书将从编程思维和实践技巧2个维度给出答案,帮助你在Go进阶的路上事半功倍。

编程思维层面

只有真正领悟了一门语言的设计哲学和编程思维,并能将之用于实践,才算精通了这门语言。本书从Go语言设计者的视角对Go背后的设计哲学和编程思想进行了梳理和分析,指引读者体会那些看似随意实则经过深思熟虑的设计背后的秘密。

实践技巧层面

实践技巧源于对Go开发团队和Go社区开发的高质量代码的阅读、挖掘和归纳,从项目结构、代码风格、语法及其实现、接口、并发、同步、错误与异常处理、测试与调试、性能优化、标准库、第三方库、工具链、Z佳实践、工程实践等多个方面给出了改善Go代码质量、写出符合Go思维和惯例的代码的有效实践。

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

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

作品目录

  • 推荐语
  • 推荐序
  • 前言
  • 第一部分 熟知Go语言的一切
  • 第1条 了解Go语言的诞生与演进
  • 第2条 选择适当的Go语言版本
  • 第3条 理解Go语言的设计哲学
  • 第4条 使用Go语言原生编程思维来写Go代码
  • 第二部分 项目结构、代码风格与标识符命名
  • 第5条 使用得到公认且广泛使用的项目结构
  • 第6条 提交前使用gofmt格式化源码
  • 第7条 使用Go命名惯例对标识符进行命名
  • 第三部分 声明、类型、语句与控制结构
  • 第8条 使用一致的变量声明形式
  • 第9条 使用无类型常量简化代码
  • 第10条 使用iota实现枚举常量
  • 第11条 尽量定义零值可用的类型
  • 第12条 使用复合字面值作为初值构造器
  • 第13条 了解切片实现原理并高效使用
  • 第14条 了解map实现原理并高效使用
  • 第15条 了解string实现原理并高效使用
  • 第16条 理解Go语言的包导入
  • 第17条 理解Go语言表达式的求值顺序
  • 第18条 理解Go语言代码块与作用域
  • 第19条 了解Go语言控制语句惯用法及使用注意事项
  • 第四部分 函数与方法
  • 第20条 在init函数中检查包级变量的初始状态
  • 第21条 让自己习惯于函数是“一等公民”
  • 第22条 使用defer让函数更简洁、更健壮
  • 第23条 理解方法的本质以选择正确的receiver类型
  • 第24条 方法集合决定接口实现
  • 第25条 了解变长参数函数的妙用
  • 第五部分 接口
  • 第26条 了解接口类型变量的内部表示
  • 第27条 尽量定义小接口
  • 第28条 尽量避免使用空接口作为函数参数类型
  • 第29条 使用接口作为程序水平组合的连接点
  • 第30条 使用接口提高代码的可测试性
  • 第六部分 并发编程
  • 第31条 优先考虑并发设计
  • 第32条 了解goroutine的调度原理
  • 第33条 掌握Go并发模型和常见并发模式
  • 第34条 了解channel的妙用
  • 第35条 了解sync包的正确用法
  • 第36条 使用atomic包实现伸缩性更好的并发读取
  • 第七部分 错误处理
  • 第37条 了解错误处理的4种策略
  • 第38条 尽量优化反复出现的if err != nil
  • 第39条 不要使用panic进行正常的错误处理
展开全部