[读书笔记][golang]《go语言-云动力》

花了一些时间,读了樊剑虹的《go语言-云动力》,就这本书的整体情况来讲,还是值得读一读的,书中讲了一些另辟蹊径的东西,这可能是其他go语言书中不曾有的东西,但是就专业性来讲,是不值得推荐读的,书中存在一部分错误,而且存在有部分内容翻译不准确的情况,所以,我觉得这本书可以作为有一定go语言基础的读者消遣来用,可能会得到一些额外的收获。同时如果有读者想要通过GAE来搭建自己的go开发环境,开发运行自己的代码,那么这本书的第八章将会帮助你很多。
本书的是由几个常见的有趣的场景开始的,在一开始便开始安利acme编辑器,编辑器的事情是仁者见仁,反正我用的goland,而且也足够好用,便把它忽略了。在展示了一小段hello,world的语法后,自我复制是在讲golang的一些定义,变量,常量,函数。猜数游戏其实是一个算法题目,作者拿出来恐怕是想展示for和if的使用,以及内置二分搜索的sort包。图灵机则是展示switch的用法。排版工具便有点意思了,因为在平时编程的时候,还真有可能遇到类似的需求,比如写的md,要把它转化成html或者pdf显示出来,这个时候我们便可以从这里的演示得到一点小小的提示,但我想作者目的在于展示golang的字符串处理能力。游乐场(奇怪的翻译)则展示的是一个在线编译的小东西,如果我们需要做一个在线编译运行的系统,那么可以展示的代码是具有参考性的,但是这里作者的本意是想展示golang的网络编程,通过简单的几句,就可以实现一个服务器。位钱(比特币?)则是在展示实现比特币加密的简单情况,其实是在展示golang的加密算法包。

第二章到第六章都在讲一些无关紧要的东西,主要是golang的语法基础,比如运算,类型,字符串,数组,切片,结构体,指针,这些和c以及cpp都有很多类似的地方,golang的切片是上述二者不具备的,但是像cpp会有vector这种东西来代替,这一段的内容基本上每本相关的语法书都会有提到。但是本书也会讨论一些关于语法基础之外的东西,比如二进制,还有原码,反码,补码这样的可能需要在其他的专业书籍上了解的东西。第三章其实可以略过,稍微有一点基础的知识的可能就可以理解并掌握,对于if和for这种最常见的逻辑并不耗费力气。对于第四章,则是讲函数,函数的入口,初始化函数,参数,返回值(golang的双多返回值),一些系统函数的额使用,延迟函数,错误处理和恢复,这里翻译的并不是很完备,延后函数被翻译成压后,错误处理被法翻译成派错,如果是不了解的人可能会在这一部分有歧义。第五章则将了一些高级的东西,比如说map,interface,还有断言,分支,反射等一些需要了解的东西,这些是需要详细阅读的,它更多是在表述一些与语言相关的特性。第七章则是讲并发编程,这可能是golang 的精髓了,golang对于并发的支持是优雅的,本书会在讲一些基本的内容,比如阻塞,互斥和同步,这对于没有了解过操作系统的人来说绝对是一个新的内容,但是它似乎又浅尝辄止,并没有花太多篇幅讲清楚这些东西。后面的翻译也是惨不忍睹,把协程翻译成去程,把管道翻译成程道,如果读者不曾读过其他golang的书籍,便会觉得十分奇怪。后面讲如何实现同步也是太浅显,建议读者参考其他文献来阅读。

第八章和第九章有点像附带的两章,第八章主要讲有关于GAE开发的一些步骤和常见的逻辑,第九章则是在讲一些常用的系统包。第八章我并没有详细去读,因为我并没有在GAE上开发应用,说来是件嘲讽的事情,这本书以云动力作为标题,而我却不关心这些问题。这一章会涉及一些第三方接口(主要是google提供的接口)的使用,对于不关心这些的显然是没有意义的。第九章的讲了一些常见的包,fmt包会提供一些格式化输入输出的方法。字节包则是将字符串分割成不同的字符所使用的。模板包是关于web开发使用的一些模板的包,把后台数据渲染到前台而使用的。正则匹配包则是与正则匹配相关的,我读到这节时,受到了其设计正则表达的一些启发。时间包主要为了生成时间,对时间格式进行过滤输出,两个时间相互比对。超链接包实际是网络包,和网络编程一些相关的方法会出现在这里,比如常见的http请求的方法,还有对加密https的使用,以及操作cookie等相关的内容。编码包则是和json一样为了传输方面而设计的一种golang数据传输方式,用的不多,在效率上可能要比json好一些。

总体来讲,这本书还是值得阅读的,但是对于在翻译中出现的错误也是非常多的。所以我的建议是在看过一些教程和知识再来读它,可能会收获一些意想不到的东西,然后再此基础上可以再去深挖。

猜你喜欢

转载自blog.csdn.net/bobodem/article/details/80643460
今日推荐