第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

應用程序與包中的 Golang 項目結構

應用程序與包中的 Golang 項目結構

Go
慕田峪7331174 2022-01-17 10:28:29
我的組織使用 Rails 開發(fā)其應用程序,但我正嘗試用 Golang 重寫我們的一個后端流程,因為它更快。我已經與我們公司一起構建了我的應用程序,為我的應用程序 ( example.co) 構建了一個命名空間,并為我的應用程序中的每個包創(chuàng)建了一個子文件夾。我包含的每個庫(例如sqlx,等等)也有它自己的文件夾。src/  github.com/    jmoiron/      (sqlx package files)  example.co    my_app/      (my app package files)    model/      (model package files...)但是查看其他軟件包,例如 sqlx,似乎他們完全廢棄了這個目錄結構并將所有文件放在根目錄中這是因為我正在編寫一個應用程序,而 sqlx 是一個旨在包含在其他應用程序中的包嗎?還是只是偏好不同,因為沒有真正公認的“標準”
查看完整描述

2 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

我在我的第一個項目中也這樣做了。從那以后我了解到:

  • $GOPATH/bin/ pkg/ src/布局由go get類似的命令構成

  • 您可以將 .go 文件組織為單個平面項目目錄或子文件夾(警告:同一文件夾中的所有 .go 文件必須具有相同的包名稱)

  • 將其他人的代碼/vendor放在項目根目錄中的目錄中,如果它是您的應用程序需要工作的代碼(谷歌這個,這是 go imo 最糟糕的部分)

  • 將您自己的項目放在您的 gopath 下,如果您希望它更易于訪問,請對其進行符號鏈接

所以我想你的代碼可能看起來像:

/Users/user2490003/MyGoPath/

? src/github.com/user2490003/myproject/

  ? model/

      user.go

  ? myapp/

      myapp.go

  ? vendor/github.com/jmoiron/sqlx/

      sqlx.go

    main.go

導入完整的包引用,如下所示:


// main.go

package main

import (

  github.com/jmoiron/sqlx

  github.com/user2490003/myproject/myapp

  github.com/user2490003/myproject/model

)


查看完整回答
反對 回復 2022-01-17
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

我建議從一個看起來合乎邏輯且在當前有效的布局開始,然后在您的應用程序增長和發(fā)展時根據(jù)需要進行重構/重組。

使用您的公司命名空間是合理的 - 我會考慮為您的應用程序在其下方(例如company.co/my_app)和內部創(chuàng)建一個目錄,庫包的子目錄(例如company.co/my_app/db等)以及cmd包含實際目錄的目錄您要生成的可執(zhí)行文件(package main程序):cmd/exe1、cmd/exe2 等。這將允許您在其中擁有多個可執(zhí)行文件以及多個庫“子包”,my_app它們可以獨立地包含在相應的導入路徑中。

我包含的每個庫(例如 sqlx 等)也有它自己的文件夾。

如果您可以使用來自 Github 的最新版本的依賴項,則不必將依賴項的代碼包含到您的存儲庫中,而是將它們安裝go get到構建區(qū)域中。如果您想從本地副本構建 - 并且為了企業(yè)使用,它可能更適合穩(wěn)定性和審計跟蹤 - 您應該將它們放在vendor子目錄中,例如company.co/my_app/vendor/github.com/jmoiron/sqlx. 這樣,您可以控制何時升級到較新版本的依賴項,并確保上游更改不會在您不知情的情況下破壞您的構建或以其他方式影響您的程序,直到您有機會進行徹底的測試。



查看完整回答
反對 回復 2022-01-17
  • 2 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號