猿问

为项目使用多个包与单个包

我有一个基本的 go 项目结构如下:


src/github.com/jeeves/my-project/

    |- main.go

    |- models/

        |- user.go

的内容main.go是——


package main


var log = initializeLogger()


func main() {


    // do stuff


}


func initializeLogger() *logging.Logger {


    // build and return a logger


}

的内容models/user.go是


package main


type User struct {

    Firstname  string    `json:"first_name"`

    Lastname   string    `json:"last_name"`

}


// other functions

我很好奇设置包结构的最佳方法 -

  1. 我应该成为而不是的models/user.go一部分吗?有什么区别,我怎么知道什么时候使用它们?package modelspackage main

  2. 如果我确实使用package models,如何访问定义的models/user.go全局对象?(如您所见,我试图定义一个记录器一次,并在我的应用程序中访问它。)logmain.go

谢谢!


RISEBY
浏览 89回答 1
1回答

慕勒3428872

为您的日志记录 API 制作一个单独的包,将代码构建到包中应该基于功能,包应该相互独立,它们的名称应该代表包的含义。如果你有几个models并且是其中之一,并且如果以后要添加user更多类型,那么制作一个包,如, , ,它们是 `model.modelusercustomer...导入时user做.../modle/user类似于encoding/json。可以添加新包,而无需对现有代码进行大量更改,只需进行最少的更改。
随时随地看视频慕课网APP

相关分类

Go
我要回答