瞎扯淡 试了试 GPTs 的纯对话创建,做了一个 Go 命名助手

willx · 2023年12月03日 · 最后由 willx 回复于 2023年12月03日 · 310 次阅读

地址:https://chat.openai.com/g/g-JxHqcWE8N-go-naming-guru

PS:必须有 GPT plus 才能用

体验了一把无代码创建 GPTs,整个过程还是非常愉悦的。

GPTs 的创建可以以对话形式进行,基本对话一般是下面几步:

  1. 简单描述你想做一个什么 GPTs
  2. 帮你生成一个名字
  3. 帮你生成一个 Logo
  4. 对你的 GPTs 进行更细致的描述
  5. 提供一些参考资料、网址(这里我提供了 go 官方的 Effect Go、Google 的 Go 规范、Google 的 Go 最佳实践、Uber 的 Go 规范)
  6. 对话风格设置

然后就有了一个领域专用的 GPT 啦。

附上一段对话:

- 用户

我有一系列的服务包,比如internal/service/userinternal/service/blog,但是这样常见的包名很可能会出现重复的变量名。import 时我应该如何重命名它们?

- GPT

在 Go 中,当导入具有可能与局部变量名称冲突的通用名称的包时,常见的做法是使用重命名导入。这有助于避免命名冲突并提高代码可读性。鉴于您的包路径,您可以在导入时重命名它们,以使它们的用途更清晰并避免冲突。

考虑有效的 Go 文档和 Google 的 Go 风格指南中的最佳实践,您可能希望使用包含父目录或基于包功能的更具描述性的名称的命名约定。这种方法可以提高包的作用或相关性的清晰度。

例如:

  • 对于internal/service/user,您可以将其导入为 userService 或 userSvc。
  • 对于internal/service/blog,您可以使用 blogService 或 blogSvc。

这些重命名的导入清楚地表明了包的用途及其服务性质,同时还防止与可能只是用户或博客的本地变量名称发生冲突。请记住,关键是选择具有描述性且在代码库中保持一致的名称。

- 用户

Go 语言不是建议使用纯小写来命名包名吗?这里为什么要用小驼峰法呢?

- GPT

Go 约定建议使用小写字母作为包名称,这是正确的。但是,这里的上下文是关于导入别名,而不是包名称本身。在 Go 中导入包时,特别是为了避免命名冲突或明确目的,可以使用别名。此别名不必遵守与包名称本身相同的严格小写约定。

effective Go 文档和 Google Go 风格指南重点关注包名称的小写和简洁,但它们对导入别名的规定较少。在实践中,为了可读性,经常会看到使用混合大写(通常称为“驼峰法”或“小驼峰法”)的导入别名,特别是当别名是多个单词的组合时,例如 userService 或 blogService。这种方法有助于在代码中更清楚地区分包的功能。

总而言之,虽然包名称确实应该是小写的,但导入别名可以使用不同的命名样式以保持清晰并避免冲突。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号