我已閱讀Go Tour和谷歌搜索「golang包」,但我還沒有發現任何關於Go的最佳實踐的建議,以便組織中等大小的應用程序。組織Go程序 - 軟件包或其他東西?
如果我有一個應用程序在概念上有幾個不同的部分,也許10^3-10^4 LOC,並且我不打算創建可用於其他應用程序的可重用的庫,應該所有的源代碼文件是package main
?
爲了澄清...
例如,可以說我的程序將具有以下主要塊:管理一堆永久存儲數據的
- 東西
- 允許通常的創建,讀取,更新,刪除操作
- 東西,其允許人以查看所存儲的數據
- 東西座標/這些
- 東西定期使用SOAP從web服務獲取數據更新之間介導。
因此,這將是MVC加上數據的提取器。
從人們做什麼環顧四周,我現在懷疑我應該
- 在創建
$GOPATH/src/myprogramname
- 沒有把一些
main.go
與package main
和它func main() { ... }
。 - 創建一些子目錄像
$GOPATH/src/myprogramname/model
$GOPATH/src/myprogramname/view
$GOPATH/src/myprogramname/control
$GOPATH/src/myprogramname/fetch
- 在這些子目錄中的文件。去開始
package fetch
等凡包名總是匹配子目錄名稱。 - 我
main.go
大概會import (... "fetch"; "model"; "view"; "control")
- 爲
main.go
生長,它分成按用途命名的其他合理規模。去文件。 建設方案,包括由*
cd $GOPATH/src/myprogramname go build
在上面的包。去子目錄是所有我需要做什麼?那是組織事物的恰當慣用Go方式嗎?有更多我應該知道或想到的嗎?是否有一些規範的網頁或PDF我忽略了,應該閱讀來找出這個東西?
總之,我不想要10,000行main.go中的所有內容。根據衆所周知的結構化編程和/或OO原則,將代碼組織到文件,子目錄,包和任何其他與正常概念劃分相對應的組織單元中的慣用Go原則是什麼?
這是很好的一般建議,但我正在尋找更具體的,我會更新我的問題來澄清。 – RedGrittyBrick
如果沒有詳細信息,我不能做更多的事情,我會檢查您的更新並向我的回答添加建議:) – Chryor