打造自己的 package | 青训营

61 阅读3分钟

在使用了其他人编写的包后,你可能也会想着把自己的包上传出去,将可重用的代码组织为一个独立的单元,以便在其他项目中使用。通过将自己的代码打包为一个包,也可以供与其他开发者使用。

如果打包自己的Go包,需要遵循一些规范和步骤。首先,需要通过使用go mod init命令来规范地定义一个模块并管理依赖。之后,便可以向往常一样编写一些核心代码,并使用适当的目录结构组织你的包。期间,我们还可养成编写测试用例,以确保包代码能够正确工作。

说了那么多,下面便是一个创建自己的包并发布到公共仓库的全过程,注意到这里的仓库是 github

项目初始化

在 go 中项目初始化可以通过 go mod init .. 快速构建,为了打造一个可供他人使用的 github 包,我们需要规范一下我们的包名

go mod init github.com/<username>/<packagename>

这样后续我们就可以打包到 git 仓库,并且想要使用时可以通过 github 来找到我们的 package

项目编写

项目中可以简单构建几个方法用于以后的复用

package mypackage

func Add(a, b int) int { 
    return a + b
}

在代码中,我们定义了 Add 计算函数,并且指定了包名为 mypackage

当然,对于更加规范的包而言,会有一些测试用例,例如下面的 test.go 代码

package mypackage

import "testing"

func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
       ...
    }
}

写完测试用例可以先在本地用 go test 指令测试一遍,以保我们的 package 能正常运行。

代码上传

当包代码准备好即可通过 git 进行上传了

git add .
git commit -m ""
git push origin main

获取自建包

在完成这些步骤后,你可以通知其他人你的包的存在,并分享关于如何导入和使用你的包的文档或示例代码。

其他开发者可以通过导入你的包的路径来使用它

例如,可以通过以下代码来使用你自己的包

import (
    "fmt"
    "github.com/your-username/mypackage"
)

func main() {
    fmt.Println(mypackage.Add(2, 3))
}

运行一下,可以发现正常使用了

image.png

通过上述步骤,我们成功地将自己的Go代码打包为一个独立的包,并创建了Go模块、编写了测试用例、设置了Git存储库,并提供了给其他开发者使用的接口。

当你准备发布你的包时,可以根据你选择的仓库和发布方式进行相应的操作。例如,对于GitHub仓库,你可以将包代码推送到远程仓库并设置相关属性(例如描述、标签)。发布到公共仓库上可能涉及不同的步骤,具体取决于你选择的仓库和工具。

总之,通过遵循一些规范和步骤,打包自己的Go包是非常简单的。只需将你的代码组织好,编写测试用例,并将其推送到适当的存储库中,你就可以与其他人共享你的包并让他们使用它。