天问

go语言基础编程7-项目管理

7.1 Go命令行工具

查看版本:

go version

查看帮助:

go help

 
 

go clean

go doc(godoc)

go list

go fix(go tool fix)

go vet(go tool vet)

go tool pprof

go tool cgo

 
 

go get

go get github.com/astaxie/beego 执行后会执行git clone 把项目放到D:\Program-Files\go\mygo\src\github.com\astaxie\beego目录下面,D:\Program-Files\go\mygo这个目录就是GOPATH。

go get -u

 
 

go build xx.go

go install

go run xx.exe

go fmt

go test

go doc(godoc)

 
 

go env

GOOSdarwin,freebsd,linux,windows,android,dragonfly,netbsd,openbsd,plan9,solaris

GOARCHarm,arm64,386,amd64,ppc64,ppc64le,mips64,mips64le,s390x

 
 

7.2 代码风格

7.2.1 强制性编码规范

程序入口

每个Go源代码文件的开头都是一个package声明。要生成Go可执行程序,必须建立一个名字为main的包,并且在该包中包含一个叫main()的函数(该函数是Go可执行程序的执行起点),其他go文件不是main包不允许main方法出现。这样通过go build/run编译链接成可执行文件xx.exe。 main()函数不能带参数,也不能定义返回值。go项目执行过程:

 
 

 
 

注释

和C++/java一样

语句没有分号结尾,和python等简洁语言一样。

导入包,注意导入包没有被使用编译报错:

import (

    "fmt"

)

或者:

import err "errors"

import "fmt"

 
 

变量命名:

C++/java开发等遵照驼峰命名方法,下划线命名方法,这里注意,sql语句不区分表命名有些软件不区分大小写,所以对于这些考虑下划线命名方法。而go语言不使用下划线命名方法。不需要对外暴露的名字private(变量,函数,结构,接口)采用小写开头,对外暴露的名字public大写开头。

花括号问题:

if a > b {

return a, nil

} else {

return b, nil

}

go语言第一个大括号不可以一行!必须写在a>b之后。

 
 

7.2.2 非强制性编码风格建议

格式化xx.go的代码:

go fmt xx.go

 
 

7.5 文档管理

类似javadoc生成文档:

go doc xx.go

生成html文档,打开浏览器8080端口,查看当前目录代码的注释:

godoc -http=:8080 -path="."

 
 

为了godoc能够识别注释,注释需要如下规则:

 
 

7.6 工程构建

7.7 跨平台开发

7.7.1 交叉编译

就是在执行go build时候,添加参数,生成linux/windows等平台的二进制文件。比如

ngrok编译参数:

 
 

gogs编译参数:

 
 

7.7.2 Android支持

 
 

7.8 单元测试

xx_test.go文件命令都是测试文件。

函数测试分功能测试和性能测试两种。

 
 

7.9 打包分发

Go语言开发了一个库,那么最合适的库分发方式是直接打包源代码包并进行分发,由使用者自行编译。 go暂时没有类似java的maven对每一个库进行版本管理。

 
 

博客地址:http://blog.yoqi.me/?p=13029
扫我捐助哦
喜欢 1

这篇文章还没有评论

发表评论