一、安裝gf工具
根據(jù)自己的系統(tǒng)環(huán)境選擇:https://github.com/gogf/gf/releases
window下載注意事項:需要把gf.exe放到安裝目錄(GOROOT)的/bin或者GOPATH的/bin。否則會出現(xiàn)下載下來的exe,點擊安裝,閃了一下就沒了。
二、gf工具使用
可以在命令行的任意目錄中使用gf 命令,執(zhí)行g(shù)f -v測試是否安裝成功
三、goframe項目創(chuàng)建
在當(dāng)前目錄下創(chuàng)建一個指定名稱的項目:gf init myapp
四、代碼生成
使用方式:設(shè)計好數(shù)據(jù)庫表以后,在config.yaml文件中配置數(shù)據(jù)庫信息,然后進(jìn)入項目根目錄執(zhí)行 gf gen dao 即可
以下3個目錄的文件由dao命令生成:
路徑說明詳細(xì)介紹
/internal/model/entity數(shù)據(jù)模型數(shù)據(jù)模型由工具維護,用戶不能修改。
工具每次生成代碼文件將會覆蓋該目錄。
/internal/service/internal/do數(shù)據(jù)轉(zhuǎn)換模型數(shù)據(jù)轉(zhuǎn)換模型用于業(yè)務(wù)模型到數(shù)據(jù)模型的轉(zhuǎn)換,由工具維護,用戶不能修改。
工具每次生成代碼文件將會覆蓋該目錄。
/internal/service/internal/dao數(shù)據(jù)操作對象通過對象方式訪問底層數(shù)據(jù)源,底層基于ORM組件實現(xiàn)。往往需要結(jié)合entity和do通用使用。該目錄下的文件開發(fā)者可擴展修改,但是往往沒這種必要。
model中的模型分為兩類:數(shù)據(jù)模型和業(yè)務(wù)模型。
數(shù)據(jù)模型:通過CLI工具自動生成?model/entity?目錄文件,數(shù)據(jù)庫的數(shù)據(jù)表都會生成到該目錄下,這個目錄下的文件對應(yīng)的模型為數(shù)據(jù)模型。數(shù)據(jù)模型即與數(shù)據(jù)表一一對應(yīng)的數(shù)據(jù)結(jié)構(gòu),開發(fā)者往往不需要去修改并且也不應(yīng)該去修改,數(shù)據(jù)模型只有在數(shù)據(jù)表結(jié)構(gòu)變更時通過CLI工具自動更新。數(shù)據(jù)模型由CLI工具生成及統(tǒng)一維護。
業(yè)務(wù)模型:業(yè)務(wù)模型即是與業(yè)務(wù)相關(guān)的數(shù)據(jù)結(jié)構(gòu),按需定義,例如service的輸入輸出數(shù)據(jù)結(jié)構(gòu)定義、內(nèi)部的一些數(shù)據(jù)結(jié)構(gòu)定義等。業(yè)務(wù)模型由開發(fā)者根據(jù)業(yè)務(wù)需要自行定義維護,定義到model目錄下。
dao中的文件按照數(shù)據(jù)表名稱進(jìn)行命名,一個數(shù)據(jù)表一個文件及其一個對應(yīng)的DAO對象。操作數(shù)據(jù)表即是通過DAO對象以及相關(guān)操作方法實現(xiàn)。dao操作采用規(guī)范化設(shè)計,必須傳遞ctx參數(shù),并在生成的代碼中必須通過Ctx或者Transaction方法創(chuàng)建對象來鏈?zhǔn)讲僮鲾?shù)據(jù)表。
同時,dao采用了工程化規(guī)范設(shè)計??梢钥吹?,dao/do是service層內(nèi)部模塊,也就是說,只有service層才能訪問dao數(shù)據(jù)操作對象并與底層數(shù)據(jù)庫交互。這樣通過工具落地規(guī)范的方式避免了項目中隨處調(diào)用dao操作數(shù)據(jù)庫的情況,規(guī)范了請求調(diào)用鏈。
五、資源打包
使用方式:gf pack -h
該命令用以將任意的文件打包為資源文件或者Go代碼文件,可將任意文件打包后隨著可執(zhí)行文件一同發(fā)布。