`
ice-cream
  • 浏览: 328243 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Ruby编程规约(上)

阅读更多

这是我们开发团队的编码规范

 

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 的风格来 描述

:

# 分割用逗号区分的字符串,把结果返回给数组。

def split_csv(str)

return str.split(/,/)

end

程序结构相关的规约

类的构成要素

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

  1. 模块的包含

  2. 常数的定义

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

  4. 公有 方法的定义

  5. accessor 的定义

  6. initialize 的定义

  7. 公有实例方法的定义

  8. 保护类方法的定义

  9. 保护 accessor 定义

  10. 保护实例方法的定义

  11. 私有类方法的定义

  12. 私有 accessor 的定义

  13. 私有实例方法的定义

  14. 嵌套类的定义

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编程语言在实际应用中的一致性和可读性问题而编撰的规范文档。这份规约旨在提供一套通用的编程标准,以提高代码质量,减少团队间的沟通成本,并使代码更加易于理解和维护。Ruby是一...

    Ruby编程语言入门与实践 .pptx

    Ruby编程语言入门与实践 Ruby编程语言入门与实践 Ruby编程语言入门与实践 Ruby编程语言入门与实践 Ruby编程语言入门与实践 Ruby编程语言入门与实践 Ruby编程语言入门与实践 Ruby编程语言入门与实践 Ruby编程语言入门...

    如何设计一套Ruby编程技术课程体系+编程知识+技术开发

    如何设计一套Ruby编程技术课程体系+编程知识+技术开发; 如何设计一套Ruby编程技术课程体系+编程知识+技术开发; 如何设计一套Ruby编程技术课程体系+编程知识+技术开发; 如何设计一套Ruby编程技术课程体系+编程知识...

    基于Ruby编程语言基于Ruby编程语言基于Ruby编程语言基于Ruby编程语言.zip

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本资料包主要关注的是基于Ruby编程的基础知识和应用,包括如何使用Ruby进行开发和解决问题。 Ruby的设计哲学强调程序员...

    编程知识+技术开发+从技术小白到Ruby编程专家的学习路径

    编程知识+技术开发+从技术小白到Ruby编程专家的学习路径;编程知识+技术开发+从技术小白到Ruby编程专家的学习路径;编程知识+技术开发+从技术小白到Ruby编程专家的学习路径;编程知识+技术开发+从技术小白到Ruby编程...

    Ruby编程,Ruby编程,

    ### Ruby编程语言简介 #### 一、Ruby编程语言概述 Ruby是一种动态的、面向对象的、通用型的编程语言,自1995年由日本程序员松本行弘(Yukihiro Matsumoto)创建以来,便以其简洁优雅的语法、高度可读性和易于学习...

    Ruby元编程第二版中文

    Ruby元编程是编程领域中一个深入且强大的主题,它允许程序员在运行时修改或创建代码,极大地提高了灵活性和代码的动态性。这本书“Ruby元编程第二版”专注于讲解Ruby语言的这一独特特性,旨在帮助开发者更好地理解和...

    Ruby编程语言pdf

    本书详细介绍了Ruby 1.8和1.9版本各方面的内容。... 本书还包含对Ruby平台上丰富的API的详尽介绍,并用带有详尽注释的代码演示了Ruby进行文本处理、数字运算、集合、输入/输出、网络开发和并发编程的功能。

    Ruby编程Ruby Programming

    根据提供的文件信息,我们将深入探讨与“Ruby编程Ruby Programming”这一主题相关的几个核心知识点。这本面向初学者和高级读者的指南旨在全面介绍Ruby编程语言的基础及其高级特性,因此我们将从多个角度来解析这些...

    Ruby编程语言pdf版

    Ruby编程语言[www.TopSage.com].pdf

    Ruby 编程语言的书籍

    ### Ruby编程语言核心知识点解析 #### 一、书籍概述与作者背景 《The Book of Ruby》是由Huzaifa Sidhpurwala与Huw Collingbourne两位专家共同编著的一本深入探讨Ruby编程语言的书籍。该书不仅适用于Ruby编程初学...

    Ruby编程,实用程序员指南Programming Ruby, The Pragmatic Programmer's Guide

    《Ruby编程,实用程序员指南》是一本针对Ruby语言的学习教程与参考手册,旨在为程序员提供一个全面、深入的Ruby语言学习资源。本书不仅适合初学者快速入门,也适合具有一定经验的开发者进阶学习。 ### 一、Ruby语言...

    ruby元编程.pdf

    ruby元编程.pdf ruby 元编程 这本书对ruby的调用原理做了非常精辟的分析。 ruby 元编程 这本书对ruby的元编程方式做了比较好的阐释。 ruby 元编程 这本书对结对编程有一个很好的提现。

    [Ruby编程语言].David.Flanagan等

    [Ruby编程语言].David.Flanagan等

Global site tag (gtag.js) - Google Analytics