欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Go语言精进之路读书笔记(第二部分-项目结构、代码风格与标识符命名)

Go语言精进之路读书笔记(第二部分-项目结构、代码风格与标识符命名)

2025/2/21 3:24:01 来源:https://blog.csdn.net/Haidaiya/article/details/145560855  浏览:    关键词:Go语言精进之路读书笔记(第二部分-项目结构、代码风格与标识符命名)

说明:《Go语言精进之路》第一部分-熟知Go语言的一切,不在博客中做读书笔记了,大家可以自己读一读,每个人心里都会有自己对Go语言的认识和理解。

直接从第二部分-项目接口、代码风格与标识符命名开始

第二章目录如下

  1. 第5条 使用公认且广泛使用的项目结构
  2. 第6条 提交前使用gofmt格式化代码
  3. 第7条 使用Go命名惯例对标识符进行命名

第5条重点

第5条重点描述了Go项目的结构,分别是二进制可执行文件的Go项目结构和只构建库的Go项目结构。

(1)二进制可执行文件的Go项目

LICENSE/README.md 都是常见的文件

Makefile是构建脚本

cmd目录:可执行文件对应的main包的源文件,有几个main包就对应几个可执行文件,cmd目录也可以改为app目录

go.mod/go.sum:Go语言依赖管理的配置文件,类似java中的maven或者gradle

pkg目录:项目自身依赖的一些库和包文件,pkg目录也可以改为lib目录

vendor目录:可选,早期Go中使用的依赖管理,目前构建使用go module

(2)只构建库的Go项目结构

更加简单,只有lib目录了

(3)internal目录

对于不想要暴露外部引用的包都可以新建internal目录后,放在internal目录下

第6条重点

学会使用gofmt格式化代码,使用下面命令查看gofmt命令的使用

第7条重点

包名采用小写的单个单词命名,比如zip,list等

包名可以不唯一,但是导入包的路径是唯一的,类似java中类名可以一样,全路径类型不一样就行

下图中展示了在golang中如果包名相同时,该如何使用,下图存在2个相同的包log,它们分别位于

/lib/fastlog/log和lib/slowlog/log。在main包中,如果要同时使用这2个包的话,我们需要像如下方式使用,使用slowlog显式包名指代slowlog下的log包

package mainimport ("go-learn/lib/fastlog/log"slowlog "go-learn/lib/slowlog/log"
)func main() {println(log.LogLevel)println(slowlog.LogLevel)
}

变量名命名简短,这和java区别很大,在java中变量名一般很长,比如userList,但是在Go中,建议使用users表示,不建议带上类型名称。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词