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
参考
- https://blog.golang.org/package-names
- effective go : https://golang.org/doc/effective_go.html#package-names
有疑问加站长微信联系(非本文作者)