• 代码风格
  • 代码风格
    • 格式化
    • 命名标准
      • New<Something>
      • Add<Something>
      • Add
      • Create<Something>
      • Delete<Something>
      • Remove<Something>
    • 在函数名字中包含包名

    代码风格

    代码风格

    参与 tsuru 编码时请遵循以下编码标准。

    格式化

    • 遵循 Go 格式化风格

    命名标准

    New<Something>

    构造 Something 时使用:

    1. NewApp(name string) (*App, error)

    Add<Something>

    是一个拥有 Something 集合的类型的方法。应接收一个 Something 的实例:

    1. func (a *App) AddUnit(u *Unit) error

    Add

    是一个集合用于增加一或多个元素的方法:

    1. func (a *AppList) Add(apps ...*App) error

    Create<Something>

    是保存一个 Something 实例的函数。不同于 NewSomething,create 函数将创建一个持久版本的 Someting。(并将其)存储在数据库、远程API、文件系统或任何其它能“永久”存储 Something 的地方。

    它有两个版本:

    • 一个接收 Something 实例并返回一个错误:
    1. func CreateApp(a *App) error
    • 另一个接收要求的参数并返回一个 Something 实例和一个错误:
    1. func CreateUser(email string) (*User, error)

    Delete<Something>

    是销毁一个 Something 实例的函数。销毁(动作)可能牵涉到诸如将其从数据库和文件系统相关目录中删除等过程。

    例如:

    1. func DeleteApp(app *App) error

    将从数据库中删除应用,删除仓库,删除路由中的记录以及应用所依赖的任何其它东西。

    下述接收一个能够标识出 Something 实例的其它类型的值的函数写法也是可行的:

    1. func DeleteApp(name string) error

    Remove<Something>

    是一个与 Add<Something> 正好相反的函数。

    在函数名字中包含包名

    对函数而言,当包名能表示 Something 时也可以忽略 Something 。比如,如果有一个包名为 "app",那么函数 CreateApp 可以只写成 "Create"。这一点对其它函数也适用。这样一来调用者将不需要写出像something.CreateSomething这样冗长的代码,更好的方式是 something.Create

    原文: http://doc.oschina.net/tsuru-paas?t=52896