簡體   English   中英

將 go 文件放在模塊路徑上是一個好習慣嗎?

[英]it is a good practice to put go file on the module path?

我發現一些項目將 go 文件放在模塊路徑上。 例如:

我想知道將 go 文件放在模塊路徑上是否是一個好習慣。

這主要是基於意見的。 main.go放入存儲庫根目錄通常會出現在沒有很多事情發生的小程序中。 當主包開始獲取大量文件時,一些人所做的是將緊密耦合的代碼放入一個名為cmd的子文件夾中,並將理論上可以被其他項目重用的代碼放入名為pkg的子文件夾中。 不過,此時pkg的代碼也可能擁有自己的存儲庫。

將主包放入子文件夾,同時在存儲庫根目錄中還有另一個包,可能有多種原因:

  • 它可能只是示例代碼。
  • 可能是根文件夾包用於以特定方式調用從main構建的二進制文件; 即一個分層的文件夾/包結構,其中在項目執行期間往往會被調用的代碼被放置在文件夾樹的更下方。
  • 它以某種方式在歷史上以某種方式演變,並且不需要緊急改變。
  • 從字面上看,您可以或無法想到的任何特質。

不過,根據經驗,命名事物是個好主意,這樣人們就不必指定導入別名來導入包。 例如,不要將包foo放在名為bar的文件夾中。 以一種可以復制到瀏覽器地址欄以直接訪問其存儲庫概述的方式命名模塊也是我看到人們歡迎的一種做法。

Go 中的包導入路徑與其他語言中的命名空間有很多相似之處。 隨着時間的推移,無論好壞,開發人員和語言都開始使用這種機制不僅僅是為了避免詞法名稱沖突。 開發人員通常會嘗試實現代碼所在的邏輯、分層文件夾結構。 語言廣泛使用它來限制方法和字段的可見性。 正如您可能猜到的那樣,接下來是一場不適合 Stackoverflow 的基於意見的激烈討論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM