文章目录
  1. 1. 惯例
    1. 1.1. 代码风格
    2. 1.2. 命名
    3. 1.3. 编写代码注释

惯例

代码风格

以下是标准库的代码风格,遵守这种写法可以使你的代码风格和其它开发者统一。

命名

类型名使用驼峰方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class ParseError < Exception
end

module HTTP
class RequestHandler
end
end

alias NumericValue = Float32 | Float64 | Int32 | Int64

lib LibYAML
end

struct TagDirective
end

enum Time::DayOfWeek
end

方法名采用下划线分割

1
2
3
4
5
6
7
8
9
10
class Person
def first_name
end

def date_of_birth
end

def homepage_url
end
end

变量名使用下划线分割

1
2
3
4
5
6
7
8
9
10
11
class Greeting
@@default_greeting = "Hello world"

def initialize(@custom_greeting = nil)
end

def print_greeting
greeting = @custom_greeting || @@default_greeting
puts greeting
end
end

常量使用下划线分割

1
2
LUCKY_NUMBERS     = [3, 7, 11]
DOCUMENTATION_URL = "http://crystal-lang.org/docs"

首字母
类名中的首字母全部使用大写 , 方法名中全部是小写 。

库名
库名全部以Lib开头 ,如LibC ,LibEvent2

目录结构和文件
在一个project中 ,
1./ 下包含readme,项目配置 以及项目文档
2.src/ 下包含源码
3.spec/ 下包含项目的 spec , 可以通过 crystal spec来运行
4.bin/ 下包含所有可执行文件
文件路径需要匹配命名空间 ,文件名以小写+”_”构成 ,如下

1
HTTP::WebSocket 是定义在 src/http/web_socket.cr

空格
使用两个空格做代码缩进

编写代码注释

文章目录
  1. 1. 惯例
    1. 1.1. 代码风格
    2. 1.2. 命名
    3. 1.3. 编写代码注释