×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
图文详情
  • ISBN:9787115290366
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:230
  • 出版时间:2012-09-01
  • 条形码:9787115290366 ; 978-7-115-29036-6

本书特色

《Go语言编程》首先概览了Go语言的诞生和发展历程,从面向过程编程特性入手介绍Go语言的基础用法,让有一定C语言基础的读者可以非常迅速地入门并开始上手用Go语言来解决实际问题,之后介绍了Go语言简洁却又无比强大的面向对象编程特性和并发编程能力,至此读者已经可以理解为什么Go语言是为互联网时代而生的语言。 从实用性角度出发,本书还介绍了Go语言标准库和配套工具的用法,包括安全编程、网络编程、工程管理工具等。 对于希望对Go语言有更深入了解的读者,我们也特别组织了一系列进阶话题,包括语言交互性、链接符号、goroutine机理和接口机制等。 Go语言具有简洁有力的语言表达能力、强大的系统开发能力、极高的运行效率、卓越的并发和并行能力、优秀的工程管理支持,以及美好的编程体验。我们曾经在其他语言中花费大量气力才能获得的一些能力,在Go中可以轻松得到。 许式伟在Go语言出现后很快就把它用于大型项目,带领七牛团队积累了大量Go编程经验。这本书除了完整介绍Go语言特性以外,还深入剖析了语言实现机制。作为服务器软件开发者和编程语言爱好者,我强烈推荐此书。 ——李杰,盛大文学首席架构师 我一直认为Go语言是一门愉快的语言,代码简洁,开发高效,无论是slice还是reader、writer,处处都让人舒坦,但是很多coder认为Go只是惊鸿一瞥,无法探其究竟。而《Go语言编程》正是这样一份猛料,能够带领越来越多的人了解Go,学习Go,用Go来实现自己的梦想。 ——何晓杰,国内知名Android研究者,安居客移动事业部高级开发经理 就个人学习Go语言的体会来说,在众多编程语言中,它绝对属于无法让人一见钟情的那类,然而当放下偏见与傲慢,真心地去了解和体会它的时候,Go语言就如同一坛古酒、一饼老茶,总是能在某些地方触动开发者的心弦。 《Go语言编程》这本书应当说是作者多年编程经验的沉淀和反思。通过Go语言构建的“七牛云存储平台”项目,对这些沉淀和反思进行了实践和验证,*终形成文字总结。Go语言作为一个工程化的编程语言,正是需要这样以工程化思想为依托的图书来向世人展示其优雅之处。本书一方面通过展示和分析大量Go语言代码,阐明了Go语言基本的使用方式,另一方面通过和C语言代码进行比较,进一步剖析了语言的内在设计思想,乃至底层实现原理,让各个层次的读者都能从书中汲取到大量的知识,使人读后必有所得。 简单来说:好书,值得读! ——邢星,Go语言社区积极推动者,39健康网技术部副总监

内容简介

《Go语言编程》首先引领读者快速浏览Go 语言的全貌,迅速消除读者对这门语言的陌生感,然后循序渐进地介绍了Go 语言的面向程和面向对象的编程语法,其中穿插了一些与其他主流语言的比较以让读者理解Go 语言的设计动机,接着探讨了Go 语言重要的并行编程方法,之后介绍了网络编程、工程管理、安全编程、开发工具等非语法相关但非常重要的内容,*后为一列关于Go 语言的文章,可以帮助读者更深入了解这门全新的语言。 《Go语言编程》适合所有层次的开发者阅读。

目录

第1章 初识Go语言 1 1.1 语言简史 1 1.2 语言特性 2 1.2.1 自动垃圾回收 3 1.2.2 更丰富的内置类型 4 1.2.3 函数多返回值 5 1.2.4 错误处理 6 1.2.5 匿名函数和闭包 6 1.2.6 类型和接口 7 1.2.7 并发编程 8 1.2.8 反射 9 1.2.9 语言交互性 10 1.3 **个Go程序 11 1.3.1 代码解读 11 1.3.2 编译环境准备 12 1.3.3 编译程序 12 1.4 开发工具选择 13 1.5 工程管理 13 1.6 问题追踪和调试 18 1.6.1 打印日志 18 1.6.2 GDB调试 18 1.7 如何寻求帮助 18 1.7.1 邮件列表 19 1.7.2 网站资源 19 1.8 小结 19 第2章 顺序编程 20 2.1 变量 20 2.1.1 变量声明 20 2.1.2 变量初始化 21 2.1.3 变量赋值 21 2.1.4 匿名变量 22 2.2 常量 22 2.2.1 字面常量 22 2.2.2 常量定义 23 2.2.3 预定义常量 23 2.2.4 枚举 24 2.3 类型 24 2.3.1 布尔类型 25 2.3.2 整型 25 2.3.3 浮点型 27 2.3.4 复数类型 28 2.3.5 字符串 28 2.3.6 字符类型 30 2.3.7 数组 31 2.3.8 数组切片 32 2.3.9 map 36 2.4 流程控制 38 2.4.1 条件语句 38 2.4.2 选择语句 39 2.4.3 循环语句 40 2.4.4 跳转语句 41 2.5 函数 41 2.5.1 函数定义 42 2.5.2 函数调用 42 2.5.3 不定参数 43 2.5.4 多返回值 45 2.5.5 匿名函数与闭包 45 2.6 错误处理 47 2.6.1 error接口 47 2.6.2 defer 48 2.6.3 panic()和recover() 49 2.7 完整示例 50 2.7.1 程序结构 51 2.7.2 主程序 51 2.7.3 算法实现 54 2.7.4 主程序 57 2.7.5 构建与执行 59 2.8 小结 61 第3章 面向对象编程 62 3.1 类型系统 62 3.1.1 为类型添加方法 63 3.1.2 值语义和引用语义 66 3.1.3 结构体 67 3.2 初始化 68 3.3 匿名组合 68 3.4 可见性 71 3.5 接口 71 3.5.1 其他语言的接口 71 3.5.2 非侵入式接口 73 3.5.3 接口赋值 74 3.5.4 接口查询 76 3.5.5 类型查询 78 3.5.6 接口组合 78 3.5.7 Any类型 79 3.6 完整示例 79 3.6.1 音乐库 80 3.6.2 音乐播放 82 3.6.3 主程序 84 3.6.4 构建运行 86 3.6.5 遗留问题 86 3.7 小结 87 第4章 并发编程 88 4.1 并发基础 88 4.2 协程 90 4.3 goroutine 90 4.4 并发通信 91 4.5 channel 94 4.5.1 基本语法 95 4.5.2 select 95 4.5.3 缓冲机制 96 4.5.4 超时机制 97 4.5.5 channel的传递 98 4.5.6 单向channel 98 4.5.7 关闭channel 99 4.6 多核并行化 100 4.7 出让时间片 101 4.8 同步 101 4.8.1 同步锁 101 4.8.2 全局唯一性操作 102 4.9 完整示例 103 4.9.1 简单IPC框架 105 4.9.2 中央服务器 108 4.9.3 主程序 113 4.9.4 运行程序 116 4.10 小结 117 第5章 网络编程 118 5.1 Socket编程 118 5.1.1 Dial()函数 118 5.1.2 ICMP示例程序 119 5.1.3 TCP示例程序 121 5.1.4 更丰富的网络通信 122 5.2 HTTP编程 124 5.2.1 HTTP客户端 124 5.2.2 HTTP服务端 130 5.3 RPC编程 132 5.3.1 Go语言中的RPC支持与处理 132 5.3.2 Gob简介 134 5.3.3 设计优雅的RPC接口 134 5.4 JSON处理 135 5.4.1 编码为JSON格式 136 5.4.2 解码JSON数据 137 5.4.3 解码未知结构的JSON数据 138 5.4.4 JSON的流式读写 140 5.5 网站开发 140 5.5.1 *简单的网站程序 141 5.5.2 net/http包简介 141 5.5.3 开发一个简单的相册网站 142 5.6 小结 157 第6章 安全编程 158 6.1 数据加密 158 6.2 数字签名 158 6.3 数字证书 159 6.4 PKI体系 159 6.5 Go语言的哈希函数 159 6.6 加密通信 160 6.6.1 加密通信流程 161 6.6.2 支持HTTPS的Web服务器 162 6.6.3 支持HTTPS的文件服务器 165 6.6.4 基于SSL/TLS的ECHO程序 166 6.7 小结 169 第7章 工程管理 170 7.1 Go命令行工具 170 7.2 代码风格 172 7.2.1 强制性编码规范 172 7.2.2 非强制性编码风格建议 173 7.3 远程import支持 175 7.4 工程组织 175 7.4.1 GOPATH 176 7.4.2 目录结构 176 7.5 文档管理 177 7.6 工程构建 180 7.7 跨平台开发 180 7.7.1 交叉编译 181 7.7.2 Android支持 182 7.8 单元测试 183 7.9 打包分发 184 7.10 小结 184 第8章 开发工具 186 8.1 选择开发工具 186 8.2 gedit 187 8.2.1 语法高亮 187 8.2.2 编译环境 187 8.3 Vim 188 8.4 Eclipse 189 8.5 Notepad++ 192 8.5.1 语法高亮 192 8.5.2 编译环境 192 8.6 LiteIDE 193 8.7 小结 195 第9章 进阶话题 196 9.1 反射 196 9.1.1 基本概念 196 9.1.2 基本用法 197 9.1.3 对结构的反射操作 199 9.2 语言交互性 199 9.2.1 类型映射 200 9.2.2 字符串映射 201 9.2.3 C程序 201 9.2.4 函数调用 202 9.2.5 编译Cgo 203 9.3 链接符号 203 9.4 goroutine机理 204 9.4.1 协程 204 9.4.2 协程的C语言实现 205 9.4.3 协程库概述 205 9.4.4 任务 208 9.4.5 任务调度 210 9.4.6 上下文切换 211 9.4.7 通信机制 215 9.5 接口机理 216 9.5.1 类型赋值给接口 217 9.5.2 接口查询 223 9.5.3 接口赋值 224 附录A 225
展开全部

作者简介

许式伟,七牛云存储CEO,曾任盛大创新院资深研究员、金山软件技术总监、WPS Office 2005首席架构师。开源爱好者,发布过WINX、TPL等十余个C++开源项目,拥有超过15年的C/C++开发经验。在接触Go语言后即被其大道至简、少即是多的设计哲学所倾倒。七牛云存储是国内**个吃螃蟹的团队,核心服务完全采用Go语言实现。吕桂华,七牛云存储联合创始人,曾在金山软件、盛大游戏等公司担任架构师和部门经理等职务,在企业级系统和大型网游平台领域有较多涉猎。拥有十余年的C/C++大型项目开发经验,也曾在Java和.NET平台上探索多年。同样被Go语言的魅力所吸引而不可自拔,希望能为推广这门优秀的语言尽自己的绵薄之力。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航