2.1 gofmt 的文化演变规范的价值在于:整齐划一,而不是完美 4/21/2015 gofmt 的文化演变 http://127.0.0.1:3999/gofmt-cn.slide#1 6/34 好的格式美化器的问题 当越多人思考他们自己的格式风格的时候,他们就变得更加固执于此了 错误的结论:自动格式器必须要有很多选项! 但是有很多选项的格式器其实违背他们的目的 此外,支持很多选项是难的 尊重用户的想法是最关键的 处理注释是很难的 大家的反应 Go 项目要求所有提交的源代码都用 gofmt 的格式。 一开始,大家都抱怨:`gofmt` 不知道怎样格式成我的风格! 慢慢地,大家不作声了:Go 项目组一定要用 gofmt! 最后,大家看清了:gofmt 不是任何人的风格,但所有人都喜欢 gofmt 的风格。 现在,大家都赞扬: gofmt 是大家喜欢 Go 的一个原因。 现在,格式已经不是一个问题。 4/21/2015 gofmt0 码力 | 34 页 | 9.97 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a将只会输出代 码语法错误。它们不会输出可能的代码逻辑错误(即警告)。 go vet子命令 可以用来检查可能的代码逻辑错误(即警告)。 我们可以(并且应该常常)使用go fmt子命令来用同一种代码风格格式化Go 代码。 我们可以使用go test子命令来运行单元和基准测试用例。 我们可以使用go doc子命令来(在终端中)查看Go代码库包的文档。 强烈推荐让你的Go项目支持Go模块特性来简化依赖管理。对一个支持Go模块 。 我们应该尽量使代码自解 释,只在确实需要解释的地方进行注释。 关于代码断行 像很多其它流行编程语言一样,Go也使用一对大括号{ and }来形成一个显式 代码块。但是在Go代码中,编码样式风格有一些限制。 比如,很多左大括号 {不能被放到下一行。 如果,上面的StatRandomNumbers被修改成如下所示, 则上面的示例程序将编译不通过。 1| func StatRandomNumbers(numRands 13 | return a, b 14 | } 一些程序员不是很喜欢这些限制。但是这些限制有两个好处: 1. 它们使得Go程序编译得非常快。 2. 它们使得不同的Go程序员编写的代码风格类似,从而一个Go程序员写的 代码很容易被另一个程序员看懂。 我们可以阅读代码断行规则(第28章)一文以获取更多关于代码换行规则的细 节。在目前,我们最好避免将左大括号放在下一行。 或者说,每行的非空起0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.ainstall) 将只会输出代码 语法错误。它们不会输出可能的代码逻辑错误(即警告)。 go vet子命令可以 用来检查可能的代码逻辑错误(即警告)。 我们可以(并且应该常常)使用go fmt子命令来用同一种代码风格格式化Go代 码。 我们可以使用go test子命令来运行单元和基准测试用例。 我们可以使用go doc子命令来(在终端中)查看Go代码库包的文档。 强烈推荐让你的Go项目支持Go模块特性来简化依赖管理。对一个支持Go模块 多是为了Go初学者快速理解的目的而加入的。 我们应该尽量使代码自解释,只 在确实需要解释的地方进行注释。 关于代码断行 像很多其它流行编程语言一样,Go也使用一对大括号{ and }来形成一个显式代 码块。但是在Go代码中,编码样式风格有一些限制。 比如,很多左大括号{不 能被放到下一行。 如果,上面的StatRandomNumbers被修改成如下所示,则上面 的示例程序将编译不通过。 func StatRandomNumbers(numRands } } return a, b } 一些程序员不是很喜欢这些限制。但是这些限制有两个好处: 1. 它们使得Go程序编译得非常快。 2. 它们使得不同的Go程序员编写的代码风格类似,从而一个Go程序员写的代 码很容易被另一个程序员看懂。 我们可以阅读代码断行规则(第28章)一文以获取更多关于代码换行规则的细 节。在目前,我们最好避免将左大括号放在下一行。 或者说,每行的非空起始0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a将只会输出代 码语法错误。它们不会输出可能的代码逻辑错误(即警告)。 go vet子命令可以 用来检查可能的代码逻辑错误(即警告)。 我们可以(并且应该常常)使用go fmt子命令来用同一种代码风格格式化Go代码。 我们可以使用go test子命令来运行单元和基准测试用例。 我们可以使用go doc子命令来(在终端中)查看Go代码库包的文档。 强烈推荐让你的Go项目支持Go模块特性来简化依赖管理。对一个支持Go模块特性的 为了Go初学者快速理解的目的而加入的。 我们应该尽量使代码自解释,只在确实需 要解释的地方进行注释。 关于代码断行 像很多其它流行编程语言一样,Go也使用一对大括号{ and }来形成一个显式代码 块。但是在Go代码中,编码样式风格有一些限制。 比如,很多左大括号{不能被放 到下一行。 如果,上面的StatRandomNumbers被修改成如下所示,则上面的示例 程序将编译不通过。 1| func StatRandomNumbers(numRands 14| } 第4章:程序源代码基本元素介绍 19 一些程序员不是很喜欢这些限制。但是这些限制有两个好处: 1. 它们使得Go程序编译得非常快。 2. 它们使得不同的Go程序员编写的代码风格类似,从而一个Go程序员写的代码很 容易被另一个程序员看懂。 我们可以阅读代码断行规则(第28章)一文以获取更多关于代码换行规则的细节。 在目前,我们最好避免将左大括号放在下一行。 或者说,每行的非空起始字符不能0 码力 | 591 页 | 21.40 MB | 1 年前3
Go Web编程Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感 觉起来比典型的面向对象语言更轻量级。 Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。 https://code.google.com/p/go cd go/src ./all.bash 运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。 上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的gcc。 然后设置几个环境变量, export GOROOT=$HOME/go export GOBIN=$GOROOT/bin 系统相关的, 但是对于源码管理来说没必要 go fmt go fmt 有过C/C++经验的读者会知道,一些人经常为代码采取K&R风格还是ANSI风格而争论不休。在go中,代码则有标准的风 格。由于之前已经有的一些习惯或其它的原因我们常将代码写成ANSI风格或者其它更合适自己的格式,这将为人们在 阅读别人的代码时添加不必要的负担,所以go强制了代码格式(比如左大括号必须放在行尾),不按照此格式的代码0 码力 | 295 页 | 5.91 MB | 1 年前3
Go读书会第二期go 社区的优秀项目和代 码,看看他们怎么做的 践行哲学,遵循惯例,认清本质,理解原理 Part2 – 项目基础:布局、代码风格与命名 践行哲学,遵循惯例,认清本质,理解原理 每个 gopher 在开启一个 go 项目时都要考虑的事情 • Go 项目布局 • 代码风格 • 命名惯例 Part3 – 语法基础:声明、类型、语句与控制结构 践行哲学,遵循惯例,认清本质,理解原理 • 一致的变量声明形式0 码力 | 26 页 | 4.55 MB | 1 年前3
Go vs. GoPlus(Go+)-最少特性原则 -如果一个功能不对解决任何问题有显著价值,那么就不提供 惊喜2:最对胃口的并行支持 • 我的并行编程历程 -Erlang -CERL 1.0 (Erlang 风格并行的模仿) -CERL 2.0 (对 Erlang 风格并行的修正) • 后来发现,CERL 2.0 的并行编程理念,与 Go 完全一致(雏形版的 Go) -Go 语言 • 参考资料 -ECUG 2011 讲座 • 《从Erlang0 码力 | 54 页 | 1.82 MB | 1 年前3
Go 入门指南(The way to Go)这类语言的高性能和安全性。 Go 语言出现的目的是希望在编程领域创造最实用的方式来进行软件开发。它并不是要用奇怪的语法和晦 涩难懂的概念来从根本上推翻已有的编程语言,而是建立并改善了 C、Java、C# 中的许多语法风格。它提 倡通过接口来针对面向对象编程,通过 goroutine 和 channel 来支持并发和并行编程。 这本书是为那些想要学习 Go 这门全新的,迷人的和充满希望的编程语言的开发者量身定做的。当然,你 安装自身包和依赖包 3.5 格式化代码 Go 开发团队不想要 Go 语言像许多其它语言那样总是在为代码风格而引发无休止的争论,浪费大量宝贵 的开发时间,因此他们制作了一个工具: go fmt ( gofmt )。这个工具可以将你的源代码格式化成符合 官方统一标准的风格,属于语法风格层面上的小型重构。遵循统一的代码风格是 Go 开发中无可撼动的铁 律,因此你必须在编译或提交版本管理系统之前使用 gofmt gofmt 来格式化你的代码。 尽管这种做法也存在一些争论,但使用 gofmt 后你不再需要自成一套代码风格而是和所有人使用相同的 规则。这不仅增强了代码的可读性,而且在接手外部 Go 项目时,可以更快地了解其代码的含义。此外, 大多数开发工具也都内置了这一功能。 Go 对于代码的缩进层级方面使用 tab 还是空格并没有强制规定,一个 tab 可以代表 4 个或 8 个空格。在 实际开发中,10 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)这类语言的高性能和安全性。 Go 语言出现的目的是希望在编程领域创造最实用的方式来进行软件开发。它并不是要用奇怪的语法和晦涩难懂的概念 来从根本上推翻已有的编程语言,而是建立并改善了 C、Java、C# 中的许多语法风格。它提倡通过接口来针对面向 对象编程,通过 goroutine 和 channel 来支持并发和并行编程。 这本书是为那些想要学习 Go 这门全新的,迷人的和充满希望的编程语言的开发者量身定做的。当然,你在学习 构建 3.5 格式化代码 Go 开发团队不想要 Go 语言像许多其它语言那样总是在为代码风格而引发无休止的争论,浪费大量宝贵的开发时 间,因此他们制作了一个工具: go fmt ( gofmt )。这个工具可以将你的源代码格式化成符合官方统一标准的风 格,属于语法风格层面上的小型重构。遵循统一的代码风格是 Go 开发中无可撼动的铁律,因此你必须在编译或提交 版本管理系统之前使用 gofmt gofmt 来格式化你的代码。 尽管这种做法也存在一些争论,但使用 gofmt 后你不再需要自成一套代码风格而是和所有人使用相同的规则。这 不仅增强了代码的可读性,而且在接手外部 Go 项目时,可以更快地了解其代码的含义。此外,大多数开发工具也都 内置了这一功能。 Go 对于代码的缩进层级方面使用 tab 还是空格并没有强制规定,一个 tab 可以代表 4 个或 8 个空格。在实际 开发中,10 码力 | 466 页 | 4.44 MB | 1 年前3
Go语言基础
Golang Fundaments面向包的设计(Package-Oriented Design) • 并发软件设计(Concurrent Software Design) • 管道设计(Channel Design) Golang-设计哲学 • 实用主义的语言风格 – 面向编译器的静态类型语言 • 数据类型必须在编译阶段确定 • 语言能充分发挥编译优化技术 – 复古且简便的语言 • 集合了多种语言实用的语法表示 • 函数是一等公民(First-Class0 码力 | 21 页 | 851.30 KB | 1 年前3
共 18 条
- 1
- 2













