脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Ruby - GitHub倡导的Ruby代码编写风格总结

GitHub倡导的Ruby代码编写风格总结

2020-05-10 14:42ningandjin Ruby

GitHub网站服务器端主要就是使用的Ruby作为编程语言,因而GitHub所提倡采用的Ruby书写规范也就显得更有些说服力XD 下面我们就整理除了这份GitHub倡导的Ruby代码编写风格总结,需要的朋友可以参考下

源代码布局方面:
1、所有源文件以UTF-8编码
2、使用2个空格的缩进
3、使用Unix风格的换行符(\n),windows(\r\n)。可使用git config --global core.autocrlf true 防止产生windows风格的换行符。
4、在‘,',‘;'后,操作符(除指数操作之外),‘{',‘}'的前后增加空格,增加代码的可读性。
5、在‘(',‘)',‘[',‘]'符号后不要加空格。
6、Case和When处于同一代码层次。
7、2个def之间使用一个空行隔开
8、对于一个方法有多个参数导致太长的时候,按如下方式处理

?
1
2
3
4
5
6
def send_mail(source)
 Mailer.deliver(to: 'bob@example.com',
         from: 'us@example.com',
         subject: 'Important message',
         body: source.text)
end

9、使用Rdoc生产系统的API文档,在注释和def之间不要有空行。
10、每行不超过80行
11、每行的结尾不要有空白字符。

语法方面:
1、一个方法如果没参数就省略括号,有参数就使用括号
2、如无必要,不要使用for,而使用each做循环
3、不要使用then
4、使用三元操作?:代替if,else。
5、不要在if else的内部使用?:操作符
6、使用when X then ...,因为when x ....在ruby1.9被删除了
7、使用&&和||做boolean操作,使用and,or做流程控制。
8、unless和else不要一起用
9、除非是判断条件涉及赋值操作,否则不不需要括起来
10、把多行语句块使用{}包含,
11、不需要使用的return的时候就不要用
12、不要使用‘\'连接2行代码
13、使用||=来初始话变量,但是不能用来初始化boolean变量
14、不要使用perl风格的变量名,$1-9之类的
15、运行Ruby的时候,加上“-w”以提示我们代码中不好的地方
16、使用Ruby1.9的语法写lambda和hash

命名规范:
1、使用小写+“_"命名变量和方法
2、使用首字母大写命名Module和Class
3、使用全大写+”_"命名常量
4、对于返回值是boolean的方法加个“?”后缀
5、对于一些有潜在风险的方法加“!”后缀,比方说有exit,修改了self,或者变量等等

注释:
1、关于注释就一条,代码即注释,

类:
1、符合liskov原则,子类可以替换父类。
2、尽量让类做到SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion)
3、为每个类都写一个to_s的方法以查看类的状态。
4、使用attr家族的方法做类属性的访问控制
5、考虑增加新的工厂方法做一些有意义的实例初始化工作。
6、使用DuckTyping而非继承。因为动态语言的特性,不在需要多态了。
7、避免使用@@,全局变量,
8、根据访问情况,合理使用访问控制符。
9、使用self来定义单例方法,而不是使用类名。

异常:
1、不要放过一些异常
2、不要使用异常做流程控制
3、不要捕获Exception,异常基类。
4、根据异常类型的覆盖面排列异常
5、把所有的外部资源放到异常捕获模块中
6、优先使用库自带的异常,而不是自己创建异常

集合:
1、优先使用%w创建字符串数组
2、按需创建数组
3、使用Set去除List中的重复元素
4、使用Symbol做Hash key,而不是String,不要使用可变对象做Hash Key。
5、不要在遍历一个列表的同时,又在改变它。

Strings:
1、使用“#{String} #{string}”优于String+String
2、未使用#{}形式的String时,使用‘'表示
3、在做实例变量的连接时,不要使用{}
4、使用<<而不是+做字符串串联

正则表达式:
1、使用命名组而非$1-9以便于跟踪。
2、‘^','$'表示匹配整行,匹配整个字符串应使用'\A','\Z'
3、使用'x'修饰符修饰复杂的regex语句,增加可读性,但是注意空格的去除问题

%的语法:
1、多使用%w
2、需要字符串内嵌表达式的时候使用%()
3、使用%r当正则表达式中出现多个/
4、不要使用%q ,%Q,%x,%W,%s这些字符
5、在%后优先使用()作为分隔符

延伸 · 阅读

精彩推荐
  • RubyRuby迭代器的7种技巧分享

    Ruby迭代器的7种技巧分享

    这篇文章主要介绍了Ruby迭代器的7种技巧分享,Ruby中的迭代器非常人性化,本文既是讲解了7个技巧也是讲解了7种迭代器,需要的朋友可以参考下 ...

    脚本之家4782020-04-20
  • RubyCentOS中配置Ruby on Rails环境

    CentOS中配置Ruby on Rails环境

    经过一个上午的折腾,终于把ROR环境在CentOS中搞定,绕了很多弯路,把文章写下来总结一下 ...

    可乐加糖4762020-04-12
  • Ruby剖析 Ruby 访问控制

    剖析 Ruby 访问控制

    前面,我们说 Ruby 没有函数,只有方法.而且实际上有不止一种方法.这一节我们介绍 访问控制 (accesscontrols). 想想当我们在最高层而不是在一个类的定义里定义...

    ruby教程网3572020-04-08
  • RubyRuby设计模式编程中使用Builder建造者模式的实例

    Ruby设计模式编程中使用Builder建造者模式的实例

    这篇文章主要介绍了Ruby设计模式编程中使用Builder建造者模式的实例,建造者模式将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表...

    范孝鹏2192020-05-07
  • RubyRuby进行文件信息输出实例代码

    Ruby进行文件信息输出实例代码

    Ruby进行文件信息输出实例代码,数据是随机的,所以每次的记录都会不同。 ...

    ruby教程网2962020-04-10
  • RubyRuby环境下安装使用bundler来管理多版本的gem

    Ruby环境下安装使用bundler来管理多版本的gem

    这篇文章主要介绍了Ruby环境下安装使用bundler来管理多版本的gem的方法,举了Ruby On Rails中的应用实例来进行演示,需要的朋友可以参考下 ...

    日拱一卒4332020-05-10
  • Ruby简要说明Ruby中的迭代器

    简要说明Ruby中的迭代器

    这篇文章主要介绍了Ruby中的迭代器,迭代器的概念在动态语言的编程中十分重要,文章中介绍了Ruby中的each迭代器和collect迭代器,需要的朋友可以参考下 ...

    goldensun2772020-04-25
  • RubyRuby简洁学习笔记(一):字符串、数字、类和对象

    Ruby简洁学习笔记(一):字符串、数字、类和对象

    这篇文章主要介绍了Ruby简洁学习笔记(一):字符串、数字、类和对象,本文是学习笔记第一篇,需要的朋友可以参考下 ...

    脚本之家2472020-04-20