Commit 06dc40d 1 parent cbb3ded commit 06dc40d Copy full SHA for 06dc40d
File tree 2 files changed +28
-0
lines changed
2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change 5
5
* .so
6
6
* .dylib
7
7
8
+ pkg /
9
+
8
10
# Test binary, build with `go test -c`
9
11
* .test
10
12
11
13
# Output of the go coverage tool, specifically when used with LiteIDE
12
14
* .out
15
+
16
+ # IDE
17
+ .idea /
Original file line number Diff line number Diff line change 1
1
# Golang_Puzzlers
2
2
极客时间专栏《Go语言核心技术36讲》的配套代码。
3
+
4
+ 欢迎进入“Go语言谜题”项目。
5
+
6
+ 本项目是我在“极客时间”上开设的Go语言技术专栏的配套项目。此专栏的地址是:。本项目中的代码携带的信息比较少,往往需要配合专栏的内容去看。欢迎大家到“极客时间”订阅我的这个专栏。
7
+
8
+ 项目中会有很多像` m1c1s1 ` 这样的代码包。这种代码包下面还会有像` q0 ` 或` q2 ` 这样的子代码包。对于这些代码包的层次和命名是有一套潜在的规则的。如下:
9
+
10
+ 1 . ` m ` 是` module ` 的缩写,代表了专栏中的一个模块。比如,` m3 ` 代表第三个模块。模块的序号是以总体统一排序的。
11
+ 2 . ` c ` 是` chapter ` 的缩写,代表了专栏中的一章。` c3 ` 代表某个模块中的一章,且此章在总体中的序号是3。章的序号同样是以总体统一排序的。
12
+ 3 . ` s ` 是` section ` 的缩写,代表了专栏中的一个小节。小节是与文章一一对应的。比如,` s3 ` 代表某个模块的某章中的第三个小节。小节的序号总是以其所属章排序的。
13
+ 4 . 为了减少代码包的层次,我把模块、章和小节的缩写和序号合并到了单一的代码包名称中。比如,` m2c3s4 ` 代表了被包含在第2个模块里的、总体序号为3的章中的第4个小节。我也把这样的代码包叫做文章代码包。从名称上也可知,它们的表示粒度细到了小节这个层次,而小节是与文章一一对应的。
14
+ 5 . 在每个文章代码包中,都可能会有` q0 ` 、` q1 ` 、` q2 ` 、` q3 ` 这些子代码包。
15
+ 6 . 此专栏的主体文章是有固定的结构的。它们一般被分为几个部分:
16
+ - 主问题提出之前的部分,也被称为前导部分。
17
+ - 主问题部分,是文章主体内容的切入点。
18
+ - 扩展问题部分,是切入点的延伸和深入,一般由若干个扩展问题组成,比如:扩展问题1、扩展问题2,等等。
19
+ - 总结部分,是对前面的阐述和问题的总结。
20
+ - 思考题部分,由一到两个思考题组成。这部分的题目没有答案,仅供大家思考和讨论。
21
+ 7 . 以上述文章结构为基础,` q0 ` 子包中会包含与前导部分对应的示例代码,` q1 ` 子包中会包含与主问题部分对应的代码,而` q2 ` 子包中会包含与扩展问题部分的扩展问题1对应的代码,以此类推。总结部分和思考题部分并没有与之对应的代码包。
22
+
23
+ 一般只有像` q0 ` 、` q1 ` 、` q2 ` 这样的代码包下才会包含源码文件。若文章的某个部分存在对应的代码则至少会有一个源码文件,并且总会有一个命令源码文件作为示例的入口,也就是示例入口文件。每个示例入口文件都会以` demoX.go ` 为名,其中的` X ` 代表序号。所有的示例入口文件的序号都是唯一的,并且从第一个出现的示例入口文件开始以自然数的顺序确定序号。这主要是为了统计示例的总数量。
24
+
25
+ 欢迎大家与我一起学习Go语言。如果你怀疑或确定本项目的代码有错误,请通过专栏找到我,我们一起讨论。谢谢!
You can’t perform that action at this time.
0 commit comments