201811读书汇

2018-11-30 14:40:08

《第七天》

状态:100% finished
第七天
余华2013年作品,依然如《兄弟》、《活着》等带有批判意义是作品。但这次的这个似乎和以前作品的余华不太一样,总感觉少了些什么,活着说变了些什么。
全书以第一人称“我”来进行是叙事,我死掉后,灵魂出窍,开始进行第一天、第二天、...第七天的各种寻找,所见所想及回忆。广泛涉及官僚腐化、官民对立、贫富分化、道德沦丧、价值观混乱、暴力执法、食品安全、农村留守老人和儿童、城市鼠族等各阶层各方面的问题。

《皮囊》

状态:5% ing
皮囊
朋友推荐,说是一本不错的好书,遂找来看看

Go之底层利器-AST遍历

背景 最近需要基于AST来做一些自动化工具,遂也需要针对这个神兵利器进行一下了解研究。本篇文章也准备只是简单的讲解一下以下两个部分: 通过AST解析一个Go程序 然后通过Go的标准库来对这个AST进行分析 AST 什么是AST,其实就是抽象语法树Abstract Syntax Tree的简称。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是“抽象”的,是因为这里的语法并不会表示出真实语法中出现的每个细节。 主菜 开胃提示语 以下内容有点长,要不先去买点瓜子,边磕边看? 编译过程 要讲解相关AST部分,先简单说一下我们知道的编译过程: 词法分析 语法分析 语义分析和中间代码产生 编译器优化 目标代码生成 而我们现在要利用的正是Google所为我们准备的一套非常友好的词法分析和语法分析工具链,有了它我们就可以造车了。 代码示例 在Golang官方文档中已经提供实例,本处就不把文档源码贴出来了,只放出部分用例 // This example shows what an AST looks like when printed for debugging. func ExamplePrint(

Golang之defer

背景 defer在golang中属于关键词,主要用于资源释放,会在函数返回之前被调用,但其中也包含了很多的坑。下面我们通过几个常见例子来进行相关的讲解。 例子 // e.g.1 func f1() (r int) { defer func() { r = r + 5 }() return 1 } // e.g.2 func f2() (r int) { t := 5 defer func() { t = t + 5 }() return t } // e.g.3 func f3() (r int) { t := 5 defer func(r int)