iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

2023年度學習分享系列 第 4

專案中的Cobra&Viper設定

  • 分享至 

  • xImage
  •  

文章未來將更新於:
https://kevinyay945.com/golang-project-design/2023/cobra&viper

此次的專案連結
https://github.com/kevinyay945/2023_asset_management/tree/v0.1.1

在一個專案中,環境變數的取得往往是一個專案一定會遇到的狀況
在golang中,最常見的作法不外乎就是使用os.Getenv("env_name")來取得環境中的變數

但這其實有時候會造成一些困擾,你大部分的程式都是直接使用os.Getenv("env_name"),在未來如果剛好你的你取得環境變數的方式改變了,那你整個程式中有用到這個變數的部分都要去更改code

這對程式來說也是某部分的外部依賴,但因為這個變數可能在整個程式中到處都會使用,我也不希望他會有任何的依賴,因此,我這次選擇將他放在helper中,來讓程式來使用

而會選擇使用Method的方式來取得變數,而不是使用Property來取得內容,主要是因為如果使用的是Property,就沒辦法每次都去重新取得正確的內容(如果電腦端的環境變數更動了,這樣才可以在每次使用到的時候取得到最新的變數)

另外,關於Golang的命名規則,我這次是依照EffectiveGo的建議(https://go.dev/doc/effective_go#names)

因為Golang沒有Getter跟Setter的概念,在這篇文章中會建議
如果是Getter,就直接放上名稱,Setter才在前面加上Set

另外關於Interface的命名則會建議在後面加上...er


上一篇
初始專案
下一篇
DDD規劃及參考
系列文
2023年度學習分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言