Golang代码规范

Golang代码规范

参考 https://golang.org/doc/effective_go.html

本文参考blog

项目目录结构规范

PROJECT_NAME
├── README.md 介绍软件及文档入口
├── bin 编译好的二进制文件,执行./build.sh自动生成,该目录也用于程序打包
├── build.sh 自动编译的脚本
├── doc 该项目的文档
├── pack 打包后的程序放在此处
├── pack.sh 自动打包的脚本,生成类似xxxx.20170713_14:45:35.tar.gz的文件,放在pack文件下
├── public 公共文件/静态文件
└── src 该项目的源代码
    ├── main 项目主函数
    ├── test 测试
    ├── app 项目代码
    ├── research 在实现该项目中探究的一些程序
    └── vendor 存放go的库
        ├── github.com/xxx 第三方库
        └── xxx.com/abc 公司内部的公共库

项目的目录结构尽量做到简明、层次清楚。

./app
├── bootstrap   //入口引导文件
├── cache
├── config  //项目配置 项目配置文件简单,配置项少。大部分配置公司要用配置中心统一配置。
├── controller  //request请求处理中心 ——> controller ——> Response / view
├── library //项目工具库
├── log         //日志
├── middleware  //中间件
├── model       //data model.xorm -——> 数据库表映射模型
├── plugin  //插件--自己开发/自己找的 --delete
├── route       //路由管理
├── service //前端数据获取操作 service

文件名命名规范

用小写,尽量见名思义,看见文件名就可以知道这个文件下的大概内容,对于源代码里的文件,文件名要很好的代表了一个模块实现的功能。

命名规范

包名

包名用小写,使用短命名,尽量和标准库不要冲突

接口名

单个函数的接口名以”er”作为后缀,如Reader,Writer

接口的实现则去掉“er”

type Reader interface {
        Read(p []byte) (n int, err error)
}

两个函数的接口名综合两个函数名

type WriteFlusher interface {
    Write([]byte) (int, error)
    Flush() error
}

三个以上函数的接口名,类似于结构体名


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值