-
内容大纲
Go语言是一门日益流行的编程语言,能够制作Web应用程序与分布式网络服务等各种软件产品。Go语言相对比较简单,拥有C语言或Java语言基础的开发者,应该能够很快熟悉这门语言,然而它与C或Java之间,毕竟有着许多区别,于是开发者就会产生疑问:某项功能在Go语言里面,究竟应该如何实现?
本书是一本实用指南,其中的各个技巧能够帮助读者认清常见的问题,并拿出有效的Go语言解法。每个技巧都包含自成一体的范例代码,你可以根据自身需求加以运用,另外,作者还讨论了这些解决方案的运作原理。刚接触Go语言的人,能够在学习这些解法的过程中,迅速积累知识,有经验的Go语言开发者,则可以将这些行之有效的代码,直接复制到自己的程序里面,以节省时间。
书中的各个技巧涵盖以下内容:
如何建立模块。
如何调用另一个模块中的代码。
如何返回出错情况,如何处理错误。
如何将字符串转换成数字(或是将数字转换成字符串)。
如何修改字符串中的多个字符。
如何用字符串中的部分内容建立子串。
如何捕获用户输入的字符串。
其他的许多话题。 -
作者介绍
郑兆雄是一位拥有28年经验的软件开发者,在各个领域使用多项技术制作软件产品。他是各种Java、Ruby与Go语言软件开发社群的活跃成员。作者还组织过meetup,并在各种会议上面做过演讲。 -
目录
前言
第1章 入门级的技巧
1.0 引言
1.1 安装Go语言的开发环境
1.2 试用Go语言
1.3 编写Hello World程序
1.4 使用外部包
1.5 处理错误
1.6 记录事件
1.7 测试代码
第2章 与模块有关的技巧
2.0 引言
2.1 创建Go模块
2.2 在模块中引入它所依赖的软件包
2.3 从模块中移除不再依赖的软件包
2.4 寻找第三方软件包的可用版本
2.5 引入模块所依赖的某个软件包的特定版本
2.6 保留某个依赖包的本地版本
2.7 依赖同一个包的多个版本
第3章 与错误处理有关的技巧
3.0 引言
3.1 处理错误
3.2 简化重复的错误处理代码
3.3 创建自定义的错误
3.4 把原始的错误包装成另一种错误
3.5 检视错误值
3.6 用panic函数处理错误
3.7 从panic之中恢复
3.8 处理中断信号
第4章 与日志记录有关的技巧
4.0 引言
4.1 将事件记入日志
4.2 对打印至标准logger的日志内容做出修改
4.3 把日志内容写到文件里面
4.4 将各种级别的日志分别记入相应的logger
4.5 通过操作系统的日志服务来记录事件
第5章 与函数有关的技巧
5.0 引言
5.1 定义函数
5.2 让同一个函数能够接受多种类型的数据
5.3 让函数接受数量可变的参数
5.4 让函数接受任意类型的参数
5.5 创建匿名函数
5.6 创建一种在调用完之后能够保留状态的函数
第6章 与字符串有关的技巧
6.0 引言
6.1 创建字符串
6.2 在字符串与字节数组之间互相转换
6.3 把多个字符串或其他类型的数据连成一个字符串
6.4 把字符串转换成数值
6.5 把数值转换成字符串
6.6 替换某个字符串中的多个字符
6.7 从字符串中提取子串
6.8 判断某个字符串之中是否有另一个字符串
6.9 把字符串拆分成小字符串数组,或者把数组中的小字符串合成一个大字符串
6.10 删除字符串首尾的多余字符
6.11 把用户在命令行界面中输入的字符串捕获下来
6.12 对字符串做HTML转义与HTML反转义操作
6.13 使用正则表达式
第7章 与通用I/O有关的技巧
7.0 引言
7.1 从输入端读取数据
7.2 向输出端写入数据
7.3 将数据从Reader复制到Writer
7.4 从文本文件中读取数据
7.5 向文本文件中写入数据
7.6 使用临时文件
第8章 与CSV有关的技巧
8.0 引言
8.1 读取整份CSV文件
8.2 每次只从CSV文件里面读取一行数据
8.3 把CSV文件中的数据拆解成结构体
8.4 移除标题行
8.5 处理不用逗号做分隔符的CSV文件
8.6 忽略CSV文件中的某些行
8.7 向CSV文件中写入数据
8.8 每次只向文件中写入一行数据
第9章 与JSON有关的技巧
9.0 引言
9.1 把JSON数据解析成结构体
9.2 解析非结构化的JSON数据
9.3 把JSON数据流解析成结构体
9.4 根据结构体创建字节数组型的JSON数据
9.5 根据结构体建立JSON数据流
9.6 忽略结构体中的某些字段
第10章 与二进制数据有关的技巧
10.0 引言
10.1 将数据编码为gob格式
10.2 将gob格式的数据解码为结构体
10.3 把数据编码成自定义的二进制格式
10.4 从自定义的二进制格式中解码数据
第11章 与日期和时间有关的技巧
11.0 引言
11.1 查询当前时间
11.2 用时间值做运算
11.3 表示日期
11.4 表示时区
11.5 表示时间段
11.6 让程序暂停一段时间
11.7 测量经过的时间
11.8 调整时间的显示格式
11.9 把时间字符串解析成Time结构体
第12章 与结构体有关的技巧
12.0 引言
12.1 定义结构体
12.2 为结构体创建方法
12.3 创建并使用接口
12.4 创建结构体实例
12.5 创建只用一次的结构体
12.6 把其他结构体组合进来
12.7 给结构体字段定义元数据
第13章 与基本数据结构有关的技巧
13.0 引言
13.1 创建数组或切片
13.2 访问数组或切片
13.3 修改数组或切片
13.4 在并发环境下正确地使用数组或切片
13.5 给数组或切片中的元素排序
13.6 创建map
13.7 访问map
13.8 修改map
13.9 给map排序
第14章 与其他数据结构有关的技巧
14.0 引言
14.1 创建队列
14.2 创建栈
14.3 创建集
14.4 创建链表
14.5 创建堆
14.6 创建图
14.7 寻找图中的最短路径
第15章 与图像处理有关的技巧
15.0 引言
15.1 从文件中加载图像
15.2 将图像保存至文件
15.3 创建图像
15.4 将图像上下反转
15.5 对图像做灰阶处理
15.6 缩放图像
第16章 与网络有关的技巧
16.0 引言
16.1 创建TCP服务器
16.2 创建TCP客户端
16.3 创建UDP服务器
16.4 创建UDP客户端
第17章 与Web开发有关的技巧
17.0 引言
17.1 建立一款简单的Web应用程序
17.2 处理HTTP请求
17.3 处理HTML表单
17.4 向Web应用程序上传文件
17.5 向客户端提供静态文件
17.6 建立提供JSON数据的Web Service API
17.7 通过HTTPS协议提供服务
17.8 使用Go语言的模板引擎开发Web应用程序
17.9 发出HTTP客户端请求
第18章 与功能测试有关的技巧
18.0 引言
18.1 让功能测试得以自动化
18.2 在同一个测试函数里面运行多个测试用例
18.3 在开始测试前与结束测试后分别执行setup与teardown逻辑
18.4 建立子测试,以求更为精细地控制某一组测试用例
18.5 并行地运行测试
18.6 生成随机的输入数据,以便用这些数据做测试
18.7 计算测试覆盖率
18.8 测试Web应用程序或Web服务
第19章 与性能测试有关的技巧
19.0 引言
19.1 让性能测试得以自动化
19.2 让功能测试不要随着性能测试一起执行
19.3 把设置Test Fixture所耗费的时间,从性能测试的结果中排除掉
19.4 修改性能测试的运行时长或轮数
19.5 在同一个benchmark函数里面运行多个性能测试用例
19.6 在性能测试的结果之间对比
19.7 给程序做Profiling(性能分析)
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
