很失望
书主要分三部分, 第一部分是Go语言基本的语法; 第二部分是Go语言的特点, 例如goroutine和interface; 第三部分是一些网络开发实例, 最后还有一些关于工程和闲聊的话题.
严格来说, 三个部分都不合格. 第一部分主要问题是比较杂乱, 属于罗列语言特性. 组织得并不好也没有能够深入讲解一下(例如make的原理). 但总的来说还算可以接受.
第二部分的问题比较大, 有个事实错误是在介绍Go关键字时, 作者说goroutine是基于轻量级线程(即线程coroutine, 原书90页). 在第九章进阶话题中, 作者又一次提到, "从根本上来说, goroutine就是一种go语言版本的协程(coroutine)" (原书204页). 可是作者都没有给出任何的理由, 仅仅提到他相信如此.
其实翻看一下Effective Go, 就可以看到书中说: "之所以这个机制被称为goroutine, 就是因为现存的进程, 线程和协程的概念, 都无法准确的表达它". 根据我目前看到的讨论, goroutine本质应该是一种优化过的, 由运行时库进行动态分配栈空间的线程.
第三部分根本毫无意义, 不但代码就是go语言参考里面的实例代码, 连文字描述页仅仅是翻译了手册而已.
严格来说, 三个部分都不合格. 第一部分主要问题是比较杂乱, 属于罗列语言特性. 组织得并不好也没有能够深入讲解一下(例如make的原理). 但总的来说还算可以接受.
第二部分的问题比较大, 有个事实错误是在介绍Go关键字时, 作者说goroutine是基于轻量级线程(即线程coroutine, 原书90页). 在第九章进阶话题中, 作者又一次提到, "从根本上来说, goroutine就是一种go语言版本的协程(coroutine)" (原书204页). 可是作者都没有给出任何的理由, 仅仅提到他相信如此.
其实翻看一下Effective Go, 就可以看到书中说: "之所以这个机制被称为goroutine, 就是因为现存的进程, 线程和协程的概念, 都无法准确的表达它". 根据我目前看到的讨论, goroutine本质应该是一种优化过的, 由运行时库进行动态分配栈空间的线程.
第三部分根本毫无意义, 不但代码就是go语言参考里面的实例代码, 连文字描述页仅仅是翻译了手册而已.
有关键情节透露