具体描述
这本书从整体的写作风格来说,会以介绍 Go 语言特性为主,示例则尽量采用作者平常的实践,而不是一个没有太大实际意义的语法示范样例。
本书作者背景极强,许式伟为原金山WPS首席架构师、曾是盛大创新院研究员,目前是国内Go语言实践圈子公认的Go语言专家。参与本书写作的几位作者都是实际用Go语言开发的项目的开发人员,有较强的实战经验。
本书以介绍Go语言特性为主,示例则尽量采用作者开发团队平常的实践,内容涉及内存管理(堆和栈)、错误处理、OOP、并发编程等关键话题。 这本书面向的读者是所有打算用Go语言的开发者,主要包括目前使用C、C++、Java、C#的开发人员,甚至一些Python、PHP开发人员也可能转为 Go 程序员。
作者简介
许式伟
七牛云存储CEO,曾任盛大创新院资深研究员、金山软件技术总监、WPS Office 2005首席架构师。开源爱好者,发布过包括WINX、TPL等十余个C++开源项目,拥有超过15年的C/C++开发经验。在接触Go语言后即可被其大道至简、少即是多的设计哲学所倾倒。七牛云存储是国内第一个吃螃蟹的团队,核心服务完全采用Go语言实现。
吕桂华
七牛云存储联合创始人,曾在金山软件、盛大游戏等公司担任架构师和部门经理等职务,在企业级系统和大型网游平台领域有较多涉猎。拥有十余年的C/C++大型项目开发经验,也曾在Java和.NET平台上探索多年。同样被Go语言的魅力所吸引而不可自拔,希望能为推广这门优秀的语言尽自己的绵薄之力。
目录信息
第1章 初识Go语言
1.1 Go语言简史
1.2 语言特性
1.3 “Hello, world!”
1.4 编译环境
1.5 开发工具
1.6 工程管理
1.7 问题追踪和调试
1.8 如何寻求帮助
本章小结
第2章 顺序编程
2.1 变量、常量和类型
2.1.1 变量
2.1.2 常量
2.1.3 类型
2.2 流程控制
2.2.1 条件语句
2.2.2 选择语句
2.2.3 循环
2.2.4 跳转语句
2.3 函数
2.3.1 函数调用
2.3.2 不定参数
2.3.3 多返回值
2.3.4 匿名函数与闭包
2.4 错误处理
2.4.1 error接口
2.4.2 defer
2.4.3 panic和recover
本章小结
第3章 面向对象编程
3.1 类型系统
3.1.1 给类型添加方法
3.1.2 值语义和引用语义
3.2 结构体
3.2.1 初始化
3.2.2 匿名组合
3.2.3 成员可访问性
3.3 接口
3.3.1 其他语言中的接口
3.3.2 非侵入式接口
3.3.3 接口赋值
3.3.4 接口查询
3.3.5 类型查询
3.3.6 Any类型
本章小结
第4章 工程管理
4.1 Go命令行工具
4.2 代码风格
4.3 工程组织
4.4 单元测试
4.5 文档管理
4.6 工程构建
4.7 包的管理与分发
4.8 跨平台开发
4.8.1 Go语言的跨平台能力
4.8.2 交叉编译
4.8.3 Android支持
本章小结
第5章 并发编程
5.1 初识Goroutine
5.1.1 基本用法
5.1.2 Goroutine通信
5.2 Channel
5.2.1 基本用法
5.2.2 关闭
5.2.3 变量的传递
5.2.4 单向Channel
5.2.5 超时处理
5.3 多核并行化
5.4 同步机制
5.4.1 sync包简介
5.4.2 同步锁
5.4.3 Once类型
本章小结
第6章 网络编程
6.1 HTTP编程
6.1.1 客户端编程
6.1.2 开发HTTP服务器
6.2 JSON
6.2.1 JSON简介
6.2.2 编码
6.2.3 解码
6.2.4 未知类型的解码
6.2.5 流式读写
6.3 网站开发
6.3.1 一个最简单的网站
6.3.2 开发一个相册网站
6.3.2.1 新建工程
6.3.2.2 实现网络服务
6.3.2.3 网页模板渲染
6.3.2.4 缓存
6.3.2.5 错误处理
6.3.2.6 防止程序崩溃
6.3.2.7 资源分离
6.3.2.8 重构
6.4 更多资源
本章小结
第7章 进阶话题
7.1 Go语言中的内存管理
7.2 反射
7.3 语言交互性CGO
7.4 链接符号
7.5 Goroutine实现机制
7.6 接口的奥秘
本章小结
第8章 开发工具
8.1 Go语言开发工具
8.2 gEdit
8.3 Goclipse - 使用Eclipse开发和调试Go程序
8.4 VIM
8.5 Nodepad++,Windows上的Go开发环境搭建
8.6 GolangIDE
本章小结
附录 Go语言包参考
· · · · · · (收起)
读后感
每章最后贴上一堆假大空的代码, 看似很厉害的样子, 实际上新手看不懂的假大空代码. 为什么不把书名改成 <<c++ c java 程序员如何了解 golang>> 呢 我认为这样比较符合这本书的内容! 我只能说我为了不让我的钱白花,我看完了这本书. 越看越觉得...
第一章还可以,到第二章发现了些错误,有可能是排版原因,有多处语焉不详的地方,更可恶的是发现了好多“等”,国人出技术书的风格,让我猜啊! -----------------------------------------------------------------------------------------
每章最后贴上一堆假大空的代码, 看似很厉害的样子, 实际上新手看不懂的假大空代码. 为什么不把书名改成 <<c++ c java 程序员如何了解 golang>> 呢 我认为这样比较符合这本书的内容! 我只能说我为了不让我的钱白花,我看完了这本书. 越看越觉得...
不适合初级读者阅读,书中很多要求有C基础,并且举例子时都会直接举C、C++甚至还有JAVA的代码例子,要真看懂读者就必需都懂得这样语言,章节的编排也不合理,感觉都是针对会这几种语言读者(PS:如果达到这种水平还看这本书也就没有什么可看的了)对于初学者不建议,还不如邪星...
过年在老家的时候不能上网,通过文档抽空学了下go语言。后来又买了这本书。总体上这本书是当前的 go语言书中比较不错的一本。但缺点在于对go的并行机制以及内存回收机制这两个非常重要的话题介绍的不够深入。go的并行机制是其最大的亮点go的存在基础,而内存回收机制更是是否能...
用户评价
这本书的配套资源和社区互动也是它超越其他同类书籍的重要砝码。虽然评价这本书本身的内容,但不得不提的是,作者在书的末尾提供了一个非常详尽的GitHub仓库链接,里面包含了所有示例代码的最新版本,以及一些书上未详细展开的扩展实验。更重要的是,作者似乎非常活跃于相关的技术论坛和社区。我曾就书中一个关于错误处理机制的微妙边界条件向社区提问,很快就收到了来自一位似乎是作者团队成员的详细解答,这极大地增强了我对这本书长期价值的信心。一本优秀的技术书籍,其价值不应止于纸张本身,而在于它所构建的知识生态系统。这本书显然在这方面投入了巨大的精力,让读者在遇到学习瓶颈时,总能找到可靠的后援支持,这种“有人在乎”的感觉,对于自学编程的人来说,无疑是巨大的鼓舞。
我之前尝试过几本市面上常见的入门书籍,但都因为讲解方式过于碎片化或者理论性太强而半途而废。这本书给我的最大惊喜在于它的“由浅入深,步步为营”的叙事逻辑。它不是简单地罗列语法点,而是像一个经验丰富的老工程师在手把手地带你走一遍完整的开发流程。从最基础的变量类型和控制结构讲起,到后续的接口设计和标准库的巧妙运用,过渡得非常自然。尤其是对Go语言特有的垃圾回收机制和运行时(Runtime)的剖析,作者并没有用晦涩难懂的术语去吓唬人,而是用贴近日常生活的比喻来解释这些底层原理,让人豁然开朗。读到中间部分时,我发现作者甚至会穿插一些实际项目中的“陷阱”和“最佳实践”,这对于我这种渴望快速投入实战的读者来说,简直是宝藏。它教会我的不仅仅是“怎么写代码”,更是“为什么要这样写代码”,这种思维层面的提升比记住一堆代码片段重要得多。
这本书的装帧设计实在是太吸引人了,封面那种深邃的蓝色调,配合着简洁有力的字体,一眼看上去就给人一种专业、沉稳的感觉。我拿到手的时候,首先就被它的纸张质感所打动,不是那种廉价的反光纸,而是略带哑光效果,拿在手里沉甸甸的,让人觉得这绝对是一本值得花时间去啃的好书。内页的排版也相当出色,行距和字号的拿捏恰到好处,即便是长时间阅读,眼睛也不会感到疲劳。更值得称赞的是,作者在一些关键概念的解释上,特别用了不同颜色的字体或者加粗处理,这种视觉上的引导非常有效地帮助我们这些初学者快速抓住重点。比如,初学者最容易混淆的几个并发模型的设计思路,书中通过不同层次的图示来辅助说明,立体感很强,不像有些技术书籍,光是文字堆砌,读起来干巴巴的。我感觉,光是这本书的物理形态和视觉呈现,就已经为接下来的学习过程定下了一个非常积极的基调。这种对细节的关注,体现了编者对读者的尊重,也让我对书中的内容质量有了更高的期待。
这本书的案例代码质量高得惊人,这一点必须着重强调。很多技术书为了凑篇幅,会放一些为了演示某个特性而写得过于简陋的“玩具代码”,但这本书里的每一个例子都像是直接从真实项目里提炼出来的精华片段。它们不仅能够准确地演示所讲授的概念,而且代码结构清晰、命名规范,完全可以作为我们自己项目代码的参考模板。我特别欣赏作者在每一个代码块后面紧跟的“深入解析”部分。这个解析不仅仅是逐行解释代码的功能,更重要的是它会深入探讨为什么选择这种实现方式,替代方案的优缺点是什么,以及在什么场景下应该如何取舍。这种批判性思维的引导,极大地提升了我的代码审美能力。我甚至发现,仅仅是模仿书中代码的组织结构和注释风格,我的日常编程效率都得到了肉眼可见的提升。
对于一个追求深度理解的技术学习者来说,寻找一本能够平衡理论深度和工程实践的“圣经”是极其困难的。然而,这本书似乎在这两者之间找到了一个完美的平衡点。它没有沉溺于过于底层的汇编或内存布局的细节(这部分内容往往让初学者望而却步),但它也没有停留在“API调用手册”的层面。它把语言规范、并发哲学和企业级应用架构这三者有机地结合起来。例如,在讲述Channel的使用时,它不仅说明了如何发送和接收数据,更深入地探讨了如何利用Channel来构建可靠的分布式消息队列原型,并详细分析了在面对高并发吞吐量时,应该如何调整缓冲区大小以避免不必要的阻塞。这种“知道原理、应用原理、优化原理”的层层递进,使得学习体验非常扎实和充实,让人感到每翻过一页,知识的厚度都在增加。
翻完了明天还。5~8章可以翻快点。有几处(校对?)错误。。
刚申请退货了。就第一章就多次出现 “革命性”,不敢继续看了。
全书看起来很流畅,只有真正懂的高手,才能写得这么让人易懂
语法整个一 Lua + Python啊(其实我是来淆CSP的
烂。