书评 -- Go 语言设计与实现 (开源书)
posted on 30 Nov 2023 in series book_review
把网上的开源书大概看了一遍, 所以这个评论只针对开源书.
仅说本书涵盖的主题的话, 选取的很棒, 都是程序员开始研究 Go 底层实现时最关心的问题. 比如整个程序 是怎么一步步运行起来的, Go 本身比较独特的语言结构和数据结构是怎么实现的, 以及内存管理和调度器相关 的介绍.
作者在介绍每个主题之前, 也会铺垫一些预备知识.
但是这本书看完, 对于我来说, 收获不算是特别大. 更多是掌握了一些功能的源码对应的位置在哪儿, 好处当然 是以后想细究哪个地方的时候, 可以很快的定位到相关源码上; 但实话说, 一本讲底层的书如果只是做到了这些, 是有些不太达标的.
问题在于作者的侧重点, 内容太侧重于代码细节了. 即使是画的图, 大部分也是代码本身的结构. 比如一个函数, 内部执行会有几个大的分支, 这种分支画出来对于理解主题有什么帮助? 书中的大部分的图示, 很漂亮, 也很没用. 即使对于代码的讲解, 也并没什么前后能关联起来的东西, 更多是 “代码在这里, 执行了这些, 然后又跳到 了这里, 执行了这些”. 至于做了些什么, 为什么要这样做, 在整个设计上起到了什么作用, 很少讲.
所以一般我定位到相关源码后, 就直接看源码中的注释了, 而不是作者直直地转译. 可能再搜一些能从大面上 讲的博文, 多看几篇对主题有了大面的了解后, 才敢回来读作者的代码讲解. 否则说真的, 很容易云里雾里.
这本书虽然叫 “设计与实现”, 不如说是源码注解, 而且也很少有作者自己能帮助读者理解的注解.
不能说作者没下功夫, 去翻源码读注释, 去看相关文档并整理, 去读官方的设计提案, 去画图讲解. 这些精力 和付出的成果无私的开源给大家分享, 我觉得是很偑服的, 也私下希望以后也能像作者一样, 这样地去研究一番 自己感兴趣的技术. 所以还是很感谢作者的. (写评论时的心情有些矛盾, 毕竟是开源书是免费白看了一遍, 收获也是有的, 感觉理应为作者的实体书推荐一番. 据开源书说, 实体书相比在细节和描述上更为严谨一些, 起承转合也更自然一些, 可能收获和体验要更好一些. 大家可以试试).