エンジニアリング管理
Go言語でのエンジニアリング管理について引き続き学習します。私は最近残業しています!
エンジニアリング組織
golangのプロジェクト組織管理では、ディレクトリ構造とパッケージ名を完全に使用して、プロジェクト構造とビルド順序を推測します。
GOPATH
GOPATH環境変数は、エンジニアリング組織について説明する前に言及する必要があるものです。Gotoolのほとんどの機能は、現在のディレクトリではなくパッケージ名用であるため、対応するソースコードを見つける方法はGOPATHにあります。文字通りの理解は、依存する必要のあるソースコードを見つけるために、GOPATHを介してパッケージ名のパスを見つけることです。
2つのGoプロジェクトコードがあるとします。たとえば、私のプロジェクトは通常、ローカルドキュメントの下の作業ディレクトリに読み込まれ、配置され/Users/leixiaohong/Documents/work/go-juejin1
ます/Users/leixiaohong/Documents/gowork/go-juejin2
。GOPATHにある別のGoプロジェクトは、次のように設定できます。
export GOPATH=/Users/leixiaohong/Documents/work/go-juejin1:/Users/leixiaohong/Documents/gowork/go-juejin2
复制代码
この設定の後、上記の2つのプロジェクトを任意の場所でビルドできます。実際、環境変数の構成に少し似ていると思います。
ディレクトリ構造
標準のGo言語プロジェクトには、src、pkg、binのディレクトリが含まれています。ディレクトリsrcは、Gotoolの必須ルールであるすべてのソースコードを含むために使用されますが、pkgとbinを手動で作成する必要はありません。必要に応じて、Gotoolはビルドプロセス中にこれらのディレクトリを自動的に作成します。
<calcproj>
├─README
├─AUTHORS
├─<bin>
├─calc
├─<pkg>
└─<linux_amd64>
└─simplemath.a
├─<src>
├─<calc>
└─calc.go
├─<simplemath>
├─add.go
├─add_test.go
├─sqrt.go
├─sqrt_test.go
复制代码
- README:すべてのオープンソースプロジェクトにはREADMEがあります。これは主にプロジェクトの簡単な紹介です。通常、プロジェクトを最初に確認するのは、このドキュメントを読むことです。
- ライセンス:このプロジェクトで採用されている配布プロトコル。通常、すべてのオープンソースプロジェクトにこのファイルがあります。
- src:たとえば、すべてのソースコードは、元のコードが
calc
2つのsimplemath
、xxx.goソースコードがそれぞれに保存されていることを意味します。 - bin&pkg:通常、binおよびpkgディレクトリは作成せずに作成でき、goコマンドで自動的に作成されます。
文書管理
プログラマーにとって、ドキュメンテーションと呼ばれるものは、コメント、関数、およびコード内のインターフェースの入力、出力、関数、およびパラメーターの説明を指します。これらは、その後の保守と再利用において重要な役割を果たします。コメントを書き込んでgodoc -http=:90 -path="."
コマンドを直接実行し、ブラウザのリンクにアクセスしhttp://localhost:90/
てコメント付きのページドキュメントを表示します。コメントをドキュメントとして抽出するには、以下の基本的なルールに従ってください。
- 注释需要紧贴在对应的包声明和函数之前,不能有空行
- 注释如果要新起一个段落,应该用一个空白注释行隔开,因为直接换行书写会被认为是正常的段内折行。
- 开发者可以直接在代码内用// BUG(author): 的方式记录该代码片段中的遗留问题,这些遗留问题也会被抽取到文档中。
其实我觉得对于程序员来说最好的注释文档就是看代码,代码简洁到能看懂就ok。Go语言在这方面做的足够好。
工程构建
在有GOPATH配置的前提下,直接用go build命令来执行构建,但需要注意的是,在你构建可执行程序工程时,会在你所在的目录中生成可执行程序。如果你不希望calc到处都是,就选择一个你期望的目录, 比如go-juejin1目录下的bin目录。
$ go build calc
复制代码
下一步是将构建成功的包安装到恰当的位置,具体指令如下:
$ go install calc
复制代码
如果之前没有执行过go build命令,则go install会先执行构建,之后将构建出来的calc可执行文件放到bin目录下。如果目标工程是一个包,则会放置到pkg目录中对应的位置 pkg/linux_amd64/simplemath.a:
$ go install simplemath
复制代码
后话
先写到这里,其实这个活动快到尾声了,说点心里话吧其实参加这个活动开始是看上奖品,其实有想过去刷题,但是我对Go语言语法不懂,对我自身没有任何好处,所以我选择看书,然后再加上自己的小小理解,写文章,写的很多不对的地方见谅,但是对我来说我多少学到了很多Go语言的知识,Go的函数多返回值,和对Error的处理,对我印象很深刻,包括Go的多线程编程,线程之间的通信等都让我眼前一亮,我发现自己很多知识知道但是不知道怎么表达出来,我准备在掘金把我表达不出来的java知识写出来这是后话,看书写文章,然后通过写文章把知识讲出来,来达到理解的程度。也是监督自己读书的一个习惯吧。自己看一遍,再写一遍,然后发布的时候我为了检查错别字还需要看一遍文章,一个知识点读三遍,比看一遍有作用多了吧!好了废话凑的都快400字了,闪了。
备注
本文正在参与「掘金Golang主题学习月」, 点击查看活动详情。