编码规范
更新日期:
惯例
代码风格
以下是标准库的代码风格,遵守这种写法可以使你的代码风格和其它开发者统一。
命名
类型名使用驼峰方式1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18class 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
10class 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
11class Greeting
@@default_greeting = "Hello world"
def initialize(@custom_greeting = nil)
end
def print_greeting
greeting = @custom_greeting || @@default_greeting
puts greeting
end
end
常量使用下划线分割1
2LUCKY_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 web_socket.cr
空格
使用两个空格做代码缩进