假设我有一个通过 API 与 Github 通信以创建和修改存储库的服务。
函数列表可能如下所示。
对 API 发出的每个请求都有几个移动部分,因此我将其分成多个函数
// github_service.go
package main
// :show (GET) functions
func findGithubRepository(...)
func findGithubRepositoryRequestBuilder(...)
func findGithubRepositoryUrl(...)
// :create (POST) functions
func createGithubRepository(...)
func createGithubRepositoryPayload(...)
func createGithubRepositoryRequestBuilder(...)
func createGithubRepositoryUrl(...)
// :update (PUT) functions
func updateGithubRepository(...)
func updateGithubRepositoryPayload(...)
func updateGithubRepositoryRequestBuilder(...)
func updateGithubRepositoryUrl(...)
// Helpers used by above functions
func queryGithub(...)
func GithubHostName(...)
这种布局有两个问题 -
所有内容都在一个名为 的大文件中github_service.go
,我不知道如何将其拆分。它应该位于较小的子目录中吗services/github/update_service.go
?一般来说,如何在一个简单的项目中组织这样的服务(例如命令行实用程序)
由于所有这些都在同一个 Go 包中,因此名称必须是唯一的。所以我有命名空间所有带有操作和上下文的函数(例如findGithubRepositoryUrl()
而不是url()
)。每个都应该在单独的包下吗?。但他们如何分享共同的帮手呢?
谢谢!
波斯汪
缥缈止盈
斯蒂芬大帝
相关分类