GitHub倡导的Ruby代码编写风格总结(github上的代码可以直接用吗)学会了吗

随心笔谈4个月前发布 admin
206 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章主要介绍了软件开发中的源代码规范和最佳实践,涵盖了多个方面,包括: 1. **源代码布局**: - 使用UTF-8编码。 - 缩进使用2个空格。 - 使用Unix风格换行符(n),并提供方法来防止生成Windows风格换行符。 - 在操作符前后增加空格(除指数操作外)。 - 在特定符号后不增加空格。 - Case和When处于同一代码层次。 - 2个def之间使用空行。 - 处理长参数的方法。 - 使用Rdoc生产系统的API文档。 - 每行不超过80行,且行末无空白字符。 2. **语法规范**: - 方法参数省略括号,使用括号表示参数。 - 使用each循环代替for。 - 使用三元操作符代替if-else。 - 使用when语句代替when语句。 - 使用逻辑运算符and、or代替||。 - 避免使用return。 - 避免使用连接符连接代码。 - 使用||=初始化变量,但不用于布尔变量。 - 使用Ruby1.9语法写lambda和hash。 - 谨慎使用变量名,避免使用$1-9等数字变量。 - 使用- w运行Ruby,显示代码问题。 3. **命名规范**: - 使用小写+“_”命名变量和方法。 - 使用首字母大写命名模块和类。 - 使用全大写+“_”命名常量。 - 返回值为布尔的方法加“?”后缀。 - 可能存在风险的方法加“!”后缀。 4. **注释**: - 代码即注释,代码中添加足够的注释。 5. **类**: - 符合Liskov原则,子类可以替换父类。 - 尽量做到SOLID原则(单一职责、开闭、替换、接口隔离、依赖反转)。 - 每个类写一个to_s方法。 - 使用attr家族方法控制类属性访问。 - 为新方法增加实例初始化。 - 使用DuckTyping而非继承。 - 避免使用全局变量。 - 合理使用访问控制符。 - 使用self定义单例方法。 6. **异常**: - 不放过异常。 - 避免使用异常作为流程控制。 - 避免捕获Exception。 - 按覆盖面排列异常。 - 外部资源到异常捕获模块。 - 使用库自带异常,避免自定义异常。 7. **集合**: - 使用%w创建字符串数组。 - 按需创建数组。 - 使用Set去除重复元素。 - 使用Symbol做Hash key,避免可变对象。 8. **字符串**: - 使用“#{String}”而非String+S String。 - 使用“”而非#{}。 - 不在连接实例变量时使用{}。 - 使用<<而非+串联字符串。 9. **正则表达式**: - 使用命名组而非$1-9。 - 使用A、Z匹配整行。 - 使用x修饰复杂正则表达式。 - 多使用%w、%()、%r。 - 避免使用%q、%Q、%x、%W、%s。 - 使用( )分隔符。 总结:这篇文章详细介绍了软件开发中的源代码规范和最佳实践,涵盖了源代码布局、语法规范、命名规范、注释、类、异常、集合、字符串、正则表达式等多个方面,强调了代码的可读性、可维护性和代码质量的提升。



源代码布局方面:

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、对于一个方法有多个参数导致太长的时候,按如下方式处理

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、在%后优先使用()作为分隔符

您可能感兴趣的文章:github 常用命令总结大全github pull最新代码实现方法github pull最新代码实现方法GitHub上一些实用的JavaScript的文件压缩解压缩库推荐github版本库使用详细图文教程(命令行及图形界面版)ruby实现github第三方认证在GitHub Pages上使用Pelican搭建博客的教程github配置使用指南两分钟学会如何在github托管代码Git客户端图文详解 如何安装配置GitHub操作流程攻略python使用心得之获得github代码库列表GitHub Eclipse配置使用教程详解

© 版权声明

相关文章