• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Ruby编程规范

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
翻译itachi007
       个人主页http://rc.org.cn/?uid/1106
附件为最终修订版下载.
修订者:drive2me  http://rc.org.cn/?uid/172
Ruby编程规约

前言

本规约记述的是在用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的风格来注释。

:

# コンマ区切の文字列+str+を分割し、結果を配列にして返す。

def split_csv(str)

  return str.split(/,/)

end

程序结构相关的规约

类的构成要素以下记的顺序来记述。

  1. 模块的包含

  2. 常数的定义

  3. 类变量、类实例的定义

  4. 方法的定义

  5. 属性方法的定义

  6. initialize的定义

  7. 公有实例方法的定义

  8. 保护类方法的定义

  9. 保护属性方法的定义

  10. 保护实例方法的定义

  11. 私有类方法的定义

  12. 私有属性方法的定义

  13. 私有实例方法的定义

  14. 嵌套类的定义

属性方法的定义

属性方法的定义中,使用attr_accessorattr_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

调用某个方法的时候,参数要用括号括起来但是,没有参数的时候,括号可以省略。另外,printputsp的时候,也可已省略参数

:

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的括号可以省略。

:

def add(x, y)

  return x + y

end

:

def add(x, y)

  x + y

end

 

def add(x, y)

  return(x + y)

end

yield的调用方法遵照方法的调用规则

If语句的then可以省略另外如果是if !x的时候请用unless x来置换。但是,unless的时候不使用else还有,非常简单的条件,一行能够写下来的时候,直接使用if/while也可

:

if x > 0

  puts "x > 0"

else

  puts "x <= 0"

end

 

unless x


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[ruby on rails] 跟我学之(4)路由映射发布时间:2022-07-14
下一篇:
Ruby On Rails 开发环境IDE 插件安装发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap