go package name convention 命名规范

cdz620 · · 8548 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

package names

package命名规范:

  • 简短与清晰: good: time, list, http;bad:computeServiceClient, priority_queue
  • 尽量使用单字(sigle-word)包名,如果非得使用多字包名(multiple-word)规范:直接多字连接作为包名。如:stringset, helloworld
  • 可理解性的缩写:strconv(string convention)syscall,fmt,用一些比较高频易懂的词
  • 尽量不用通用词:good: bufio,bad: buf
  • 尽量不使用无意义的包名:util, common

package 内的内容(变量,函数,Struct)命名规范:

  • 避免重复:good: http.Server, ring.New() bad: http.HttpServer ring.NewRing()
  • 简化函数名字:
    • list.New(), time.Parse(),
    • package内含多个类型:time.NewTicker(), context.WithTimeout

package Path 命名规范

  • 目录结构尽可能清晰,能代表实际含义,从功能角度(纵向)出发设计

  • 尽量不使用无意义的包名:util, common

  • 分解通用软件包:util.NewStringSet() & util. SortStringSet() --> stringset.New() & stringset.Sort()

  • 不要使用一个通用package包含所有的内容:api, interface, types, models

  • 不要刻意避免包名冲突,因为目录不一样,包名不会冲突。�

  • good:

    • runtime/pprof
    • net/http/pprof
  • bad:

    • api/user.go
    • api/post.go

参考


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:cdz620

查看原文:go package name convention 命名规范

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

8548 次点击  
加入收藏 微博
上一篇:effective go
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传