从0开始go语言-18|Go主题月

689 阅读4分钟

工 程 管 理

Go语言设计的初衷就是为了解决工程上出现的问题而设计,其自带的Go工具更是从工程管理的方方面面去考虑,力求提供完善的功能,让学习Go语言的目的是为了解决工程中遇见的场景,避免出现学院派和工程派的不同分歧。Go语言是一门工程语言毋庸置疑,那么Go语言在靠近工程管理中有哪些管理思想,工具和规范呢?如下是Go语言的是一门工程语言的有力证明。

  • 代码风格
  • 文档风格管理
  • 单元测试和性能测试
  • 项目工程结构
  • 跨平台开发
  • 打包分发

Go命令行工具

在安装了Go语言的安装包之后,就直接自动安装了Gotool命令行工具,比如查询Go语言的安装版本就是命令行工具,如下:

$ go version 
go version go1

一般需要查询命令的时候会使用help命令,Go语言中help命令如下:

image.png 总的来说Gotool可以帮助我们完成如下的工作:

  • 代码格式化
  • 代码质量分析和修复
  • 单元测试与性能测试
  • 工程构建
  • 代码文档的提取和展示
  • 依赖包管理
  • 执行其他的包含指令

代码风格

“代码必须是本着写给人阅读的原则来编写,只不过顺便给机器执行而已“这段话来自《计 算机程序设计与解释》,很精练地说明了代码风格的作用。简直一语中的,好的优雅的注重代码风格的代码看着让人如浴春风,一团乱麻的代码让人如鲠在喉,我曾经觉得如果你写的代码连实习生都能读懂,那么你写的代码已经很好了,大道至简,Go语言在很多代码规范中做了强制的要求这种要求减少了争议,更简化了问题,Go语言的编程规范主要由Go编译器进行强制的编码规范以及由Gotool推行的非强制性编码风格建议两种组成。

强制性编码规范

命名

命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。Go语言从语法层面进行了以下限定:任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该以小写字母开头。这种规范我第一接触很不习惯,java中大写字母开头一般是类名,常量或者全局函数方法等很少是以大写字母开始,总让我感觉很奇怪,java中一般是骆驼命名法(类似于jueJingSheQu)。需要对外暴露的变量和常量java中会多引入一个关键字修饰符,Go语言中直接以首字母就大小写就解决了。Go语言明确宣告了拥护骆驼命名法而排斥下划线法,其实我在java中已经很少使用下划线法可能是个人习惯吧!

排列

其实我觉得就是大括号和缩进的问题,Go语言规定大括号不能另起一行。来个排列规范的代码吧:主要是统一的排列看着也舒服。

func Foo(a, b int)(ret int, err error) { 
    if a > b { 
        ret = a 
    } else { 
        ret = b 
    } 
}

远程import支持

Go语言需要调用远程的jar包使用,比如需要使用Github上的CRC32的包可以如下写:

package main 
import ( 
    "fmt" 
    "github.com/myteam/exp/crc32" 
)

在执行go build或者go install之前,只需要加这么一句:

go get github.com/myteam/exp/crc32

当执行完go get之后,我们会在src目录中看到github.com目录,其中包含 myteam/exp/crc32目录。在crc32中,就是该包的所有源代码。也就是说,go工具会自动帮你获取位于远程的包源码,在随后的编译中,也会在pkg目录中生成对应的.a文件

总结

先学到此处吧,多了也记不住,想起群里的大神说的一句话”写文章是个自悦的方式,是自我的总结,不求赞不求看,你自己写完自己总结完就行了“语录出自韩玄亮很有道理和哲理的一句话。说实话很少有平台鼓励你写作还赔上礼物鼓励的那种!!!

备注

本文正在参与「掘金Golang主题学习月」, 点击查看活动详情