当前位置: 首页 > news >正文

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表示,不建议带上类型名称。

http://www.lryc.cn/news/537368.html

相关文章:

  • Windows server 2016 无法部署docker问题
  • 智能AI之隐私安全,尤其是医疗
  • 【hot100】054螺旋矩阵
  • 【Java学习】类和对象
  • TestHubo基础教程-创建项目
  • JS 链表
  • 数据结构(陈越,何钦铭)第三讲 树(上)
  • 企业文件安全:零信任架构下的文件访问控制
  • 性格测评小程序06用户注册校验
  • $符(前端)
  • Windows 11如何显示全部右键菜单?
  • 离线量化算法和工具 --学习记录1
  • python第七课
  • 华为IPD简介
  • 如何在Spring Boot中配置分布式配置中心
  • Golang internals
  • 天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结
  • 数据治理常用的开源项目有哪些?
  • 数据结构与算法之排序算法-(计数,桶,基数排序)
  • Word正文中每两个字符之间插入一个英文半角空格
  • 把 DeepSeek1.5b 部署在显卡小于4G的电脑上
  • A4988一款带转换器和过流保护的 DMOS 微步驱动器的使用方式
  • 一口井深7米,一只蜗牛从井底往上爬每天爬3米掉下去1米,问几天能爬上井口?
  • Asp.Net Core MVC 中级开发教程
  • Windows上安装Go并配置环境变量(图文步骤)
  • C++效率掌握之STL库:string底层剖析
  • 【Erdas实验教程】004:影像镶嵌拼接
  • SpringMVC 请求参数接收
  • [高等数学]换元积分法
  • Redis简介、常用命令及优化