这是我们开发团队的编码规范
本规约
、
记述的是在用
Ruby
进行编程时所使用的编程规约
。
在实际项目开发的时候,推荐以此为基础,根据项目实际情况进行客户化
(定制化)
后再使用。
源代码的整形
代码缩进
为了增加程序的可读性而进行的适当的缩进,缩进的幅度以
2
个字符为宜。另外,缩进的时候,只可使用空格,不可使用
TAB
(编程工具不同的时候,看起来会不一样)
例
:
if
x > 0
if
y > 0
puts
"x > 0 && y > 0"
end
end
一行的字符数
一行的字符数以
80
字符(半角)为宜
。
空行
用空行来区分开
多个
类。
正
例
:
class
Foo
...
end
class
Bar
...
end
误例
:
class
Foo
...
end
class
Bar
...
end
另外、类中的各个构成要素之间也需要用空行来隔开。
但是,最初的要素之前和最后的要素之后不需要插入空行。
正
例
:
class
Foo
attr
:bar
def
baz
...
end
def
quux
..
end
end
误
例
:
class
Foo
attr
:bar
def
baz
...
end
def
quux
...
end
end
注释
方法的定义中不需要注释行
。
(
对那些认为
需要注释的代码进行重构。
)
但是,对类、模块、或公有方法的
说明
,要使用
RDoc
的风格来
描述
。
例
:
#
分割用逗号区分的字符串,把结果返回给数组。
def
split_csv(str)
return
str.split(/,/)
end
程序结构相关的规约
类的构成要素
类的构成要素以下记的顺序来记述。
-
模块的包含
-
常数的定义
-
类变量、类实例
变量
的定义
-
公有
类
方法的定义
-
accessor
的定义
-
initialize
的定义
-
公有实例方法的定义
-
保护类方法的定义
-
保护
accessor
的
定义
-
保护实例方法的定义
-
私有类方法的定义
-
私有
accessor
的定义
-
私有实例方法的定义
-
嵌套类的定义
accessor
的定义
在
accessor
的定义中,使用
attr_accessor
、
attr_reader
、
attr_writer
(
不使用
attr
)
方法的定义
方法的定义中,形参要用括号括起来。但是
、
没有参数的时候,括号可以省略。
正
例
:
def
foo(x, y)
...
end
def
foo
...
end
误
例
:
def
foo x, y
...
end
def
foo()
...
end
类方法的定义
类方法的定义的时候要使用
self
。
正
例
:
class
Foo
def
self.foo
...
end
end
误
例
:
class
Foo
def
Foo.foo
...
end
end
方法调用
调用某个方法的时候,参数要用括号括起来
。
但是,没有参数的时候,括号可以省略。
另外,
print
、
puts
、
p
的时候,也可已省略参数
。
正
例
:
foo(1,
"abc")
obj.foo(1,
"abc")
bar
print
"x = ", x, "\n"
误
例
:
foo
1, "abc"
obj.foo
1, "abc"
bar()
代码块
一个代码块基本上使用
do
... end
来包括起来
正
例
:
foo(x,
y) do
...
end
x
= bar(y, z) do
...
end
误
例
:
foo(x,
y) {
...
}
x
= bar(y, z) {
...
}
但是,
使用
方法链的时候,用
{
... }
来包括起来。
正
例
:
s
= ary.collect { |i| i.to_s }.join(",")
误
例
:
s
= ary.collect do |i| i.to_s end.join(",")
return
方法有返回值的时候
、
必须使用
return
来明示
。
另外
、
return
的括号可以省略。
例
:
def
add(x, y)
return
x + y
end
误
例
:
def
add(x, y)
x
+ y
end
def
add(x, y)
return(x
+ y)
end
yield
yield
的调用方法遵照方法的调用规则
。
条件分支
If
语句的
then
可以省略
。
另外
、
如果是
if
!x
的时候
、
请用
unless
x
来置换。
但是,
unless
的时候
、
不使用
else
。
还有,非常简单的条件,一行能够写下来的时候,
也可
使用
if
/
while
。
正
例
:
if
x > 0
puts
"x > 0"
else
puts
"x <= 0"
end
unless
x
puts
"x is false"
end
puts
"x is true" if x
误
例
:
if
x > 0 then
puts
"x > 0"
end
unless
x
puts
"x is false"
else
puts
"x is true"
end
puts
"foo && bar && baz && quux" if foo
&&
bar
&& baz && quux
能使用
case
、
就
使用
case
。
另外,
省略
then
。
正
例
:
case
x
when
1
...
when
2
...
end
误
例
:
if
x == 1
...
elsif
x == 2
...
end
case
x
when
1 then
...
when
2 then
...
end
不要使用条件分支表达式的值
。
正
例
:
if
x > 0
msg
= "x > 0"
else
msg
= "x <= 0"
end
误
例
:
msg
= if x > 0
"x
> 0"
else
"x
<= 0"
end
循环
省略
While
语句
的
do
。
另外
、
像
while
!x
的时候
、
使用
until
x
。
正
例
:
while
cond
...
end
until
cond
...
end
误
例
:
while
cond do
...
end
另外
、
无限循环的时候,使用
loop
。
正
例
:
loop
do
...
end
误
例
:
while
true
...
end
逻辑运算符
逻辑运算中,使用
!
、
&&
、
||
。
(
不使用
not
/
and
/
or
。
)
三项运算符
除非有明确的可读性,尽量不要使用三项运算符
。
特别是
、
括号等必要的条件复杂的时候
、
跨行的时候
、
不使用三项运算符
。
字符串
字符串基本上使用
"..."
的形式
。
但是,
只有在不想解释特殊文字的时候
,使用
'...'
的形式
。
另外
、
原则上不使用“
here
document
”
分享到:
相关推荐
Ruby编程规约中文版是为了解决Ruby编程语言在实际应用中的一致性和可读性问题而编撰的规范文档。这份规约旨在提供一套通用的编程标准,以提高代码质量,减少团队间的沟通成本,并使代码更加易于理解和维护。Ruby是一...
本文档旨在为使用Ruby编程的语言规范提供指导。这些规范旨在提高代码的可读性和维护性,并确保团队内部的编程风格一致性。 #### 源代码整形 ##### 代码缩进 - **缩进幅度**:建议使用2个字符作为缩进单位,这有助...
导游 一起工作,完成工作,编程和风格编程的指南。高级别指南始终如一。 不要重写现有代码以遵循本指南。 没有正当理由,请勿违反准则。 当您可以说服队友时,一个很好的理由。语言说明“避免”表示除非有充分的理由...
总结来说,JDK 8u172是Java开发者在Windows平台上开发和运行Java应用的理想选择,它提供了许多现代编程特性,提高了开发效率,同时也强化了安全性和性能。无论是新手还是经验丰富的开发者,都应该熟悉和掌握这些关键...