從接觸golang到現在滿打滿算兩周時間,總的來說,語法夠簡單,不過現在可以看、可以參照的資料數量太少了。
還記得我剛開始寫的第乙個有點用的程式,1000多行**吧,完全擠在乙個檔案裡,我不知道如果把這些內容分拆到不同的檔案中去,該怎樣編譯,網上搜了一圈,都寥寥數語,沒有成體系的講解。可能玩golang的都是大牛吧,這些東西都水到渠成,認為沒有必要寫出來。
後來看許式偉的《go語言程式設計》裡提到了一點工程管理的資訊,這才知道怎麼去拆分,怎樣編譯。
想來,當初的**是這樣的:
01 package
main
02 03 import
(04 ...
05 )
06 07 func
...10
11 ...
12 13 func
main()
其實golang的工程管理還是挺簡單的,完全使用目錄結構還有package名來推導工程結構和構建順序。
當然,首先要說的是環境變數$gopath,專案構建全靠它。這麼說吧,想要構建乙個專案,就要將這個專案新增到$gopath中,多個專案用";"分隔。
golang專案目錄下一般有三個子目錄:
我們重點要關注的其實就是src資料夾中的目錄結構。
舉個例子比啥都強,目錄結構如下:
|--|--|--
|--al.go
|--|--a2.go
|--|--b1.go
|--b2.go
|--|--c.go
|--|--
各檔案**:
a1.go
1 package
a12
3 import
"fmt"
4 5 func
printa1()
a2.go
1 package
a22
3 import
"fmt"
4 5 func
printa2()
b1.go
1 packageb2
3 import
"fmt"
4 5 func
printb1()
b2.go
1 packageb2
3 import
"fmt"
4 5 func
printb()
c.go
01 package
main
02 03 import
(04 "a/a1"
05 "a/a2"
06 "b"
07 )
08 func
main()
將proj加入$gopath:
在windows下有個問題要注意,就是中文路徑問題,如果proj路徑有中文,那麼在編譯的時候可能出問題,我被這個問題折磨了半個多小時,左右挑不出錯,就是不能編譯。 go
build a/a1
goinstall a/a1
gobuild a/a2
goinstall a/a2
gobuild b
goinstall b
gobuild c
goinstall c
執行相關命令。
可以看到pkg資料夾下生成了,a資料夾、b.a,a資料夾下有a1.a、a2.a
bin資料夾下有c.exe(當然,在執行go build c的位置也存在c.exe)
執行下c.exe
可以看出,分門別類,非常清楚。
其實b資料夾下的兩個.go檔案完全可以合併成乙個的,沒有任何影響。
package中的名稱最好與目錄名一樣,這樣在import的時候直接import目錄名就好了。如果兩者不一致,例如上面的b1.go、b2.go裡面的package是package bbbbb,則在c.go裡import的時候要import "b",然後下面的b.printb(),則需要改為bbbbb.printb()
go專案的目錄結構我感覺說得挺明白的了。
Golang專案目錄結構組織
從接觸golang到現在滿打滿算兩周時間,總的來說,語法夠簡單,不過現在可以看 可以參照的資料數量太少了。還記得我剛開始寫的第乙個有點用的程式,1000多行 吧,完全擠在乙個檔案裡,我不知道如果把這些內容分拆到不同的檔案中去,該怎樣編譯,網上搜了一圈,都寥寥數語,沒有成體系的講解。可能玩golang...
專案組織結構
軟體專案可以是乙個單獨的開發專案,也可以與產品專案組成乙個完整的軟體產品專案。如果是訂單開發,則成立軟體專案組即可 如果是產品開發,需成立軟體專案組和產品專案 負責市場調研和銷售 組成軟體產品專案組。公司實行專案管理時,首先要成立專案管理委員會,專案管理委員會下設專案管理小組 專案評審小組和軟體產品...
golang專案結構
golang更新了環境變數,導致整個goproject的結構改變 1 root node175 goproject tree l 22.3 bin 4 demo 5 pkg 6 linux amd64 7 src 8 demo910 5 directories,1 file 1112 專案原始碼在s...