golang寫業務代碼,用全局函數還是成員函數


在golang中,函數划分為全局函數和成員函數,在使用的時候,有種情況,會產生一些疑惑的,就是在寫業務代碼的時候,使用全局函數好像會比較方便,一般業務代碼,都不會復用,都是針對特定的業務進行編程,要復用的代碼都會封裝為功能函數了。在寫業務代碼的時候,使用包+全局函數的划分方式,可以將業務代碼寫成單例,把receive也省略掉了,簡單清晰。

使用包+全局函數的方式來划分模塊,很多項目在寫業務代碼的時候,都是這樣操作的,但這樣會增加目錄的層次,看起來會比較啰嗦。

因為使用包划分代碼,業務代碼使用的變量都成為了包內函數,這樣在多個包內文件會互相污染,而多個業務中,可能會用到相同的變量,這樣要么通過命名來避免,要么通過將包划分更細進行避免,通過命名來解決,實在太過於啰嗦,不考慮。

拆分后,很可能的代碼結構:

src
├── user
│   ├── user.go
├── auth
│───├── auth.go 

這樣很明顯,拆分出來的目錄太多了,幾乎每一個業務一個,也是比較啰嗦的,但也還算比較清晰,但還是不夠好。

為了使代碼更加清晰簡潔,我覺得業務代碼應該使用成員函數來實現,代碼的結構應該是下面這樣:

src
├── user.go
├── auth.go

這樣層次簡單,查看代碼的時候也沒那么啰嗦,而且也遵從了一種原則:要維護狀態的函數,都寫成成員函數,反之則可以是全局函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM