Ruby代码风格向导.doc

上传人:枫** 文档编号:563571338 上传时间:2023-04-30 格式:DOC 页数:21 大小:221.50KB
返回 下载 相关 举报
Ruby代码风格向导.doc_第1页
第1页 / 共21页
Ruby代码风格向导.doc_第2页
第2页 / 共21页
Ruby代码风格向导.doc_第3页
第3页 / 共21页
Ruby代码风格向导.doc_第4页
第4页 / 共21页
Ruby代码风格向导.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《Ruby代码风格向导.doc》由会员分享,可在线阅读,更多相关《Ruby代码风格向导.doc(21页珍藏版)》请在金锄头文库上搜索。

1、Ruby代码风格向导分类:Ruby2011-12-04 23:16329人阅读评论(0)收藏举报公司推荐https:/ plaincopy1. 风格可以使一个好代码转变为伟大的代码。2. 3. -BozhidarBatsov这个Ruby风格指南是推荐编写最佳的ruby代码风格。这样的话每个程序员写得代码都可以也其他程序员维护。代码风格可以帮助世界上的人理解你的代码。但是不管什么样的代码风格都会被一些人认为有风险而拒绝使用。该指南分为几个部分的相关规则。我尝试过添加规则背后的原因(如果它被省略,我假设是很明显的的)。我没有把所有的代码风格都列出来。这些都是我作为一个软件工程师,在工作中从ruby

2、交流社区得到的建议,反馈。以及一些备受推荐的ruby资源。就像Programming Ruby 1.9和The Ruby Programming Language.这些规则有些正在写,有些缺少些例子。有些显而易见的就没有添加例子。在适当的时候,这些问题将得到解决-他们现在只需记住。=源代码布局=注:每个人都相信别人的代码风格是正确的,而自己是丑陋的,不可读。但是有时候他们也有可能是对的。-Jerry Coffin这句话的意思大家不能过分相信代码风格向导,有时候还是需要一些自信,你的代码风格也有可能是正确的。1. 使用UTF-8作为代码编码一般ruby程序是在头上设定# encoding: UT

3、F-8的方式来指定编码。个人理解在rails里面就是在数据库设定里面指定编码为UTF-8就可以了。2.使用2个空白作为代码缩进htmlview plaincopy1. #好的缩进2个空白2. defsome_method3. do_something4. end5. 6. #不好的缩进-4个空白7. defsome_method8. do_something9. end这个不用我解释了。比较简单。3.结束符使用unix风格的 (*BSD/Solaris/Linux/OSX 用户不要担心,因为系统是默认的,Windows用户需要格外小心.)你如果使用git管理代码的话,可以加入下面的设置保证你代

4、码中不会有windows换行符侵入。htmlview plaincopy1. $gitconfig-globalcore.autocrlftrue个人认为是ruby是以LF认为换行。所以在代码中的换行要注意。windows下以CR/LF表换行,而linux的换行符LF4.在操作符左右,逗号,冒号,分号后面以及前后,前面使用空白.空白可能和ruby解释器无关,但它可以使代码读起来更加轻松。htmlview plaincopy1. sum=1+22. a,b=1,23. 12?true:false;putsHi4. 1,2,3.each|e|putse唯一的例外是你如果使用指数运算符时,不需要空白

5、。htmlview plaincopy1. #不好的2. e=M*c*23. 4. #好的5. e=M*c*25.不要在“(”,“ “之后或者”,)之前使用空白htmlview plaincopy1. some(arg).other2. 1,2,3.length6.case 和when的缩进一样可能很多人不同意这样的观点,但是The RubyProgramming Language 和 Programming Ruby都是这么写的。htmlview plaincopy1. case2. whensong.name=Misty3. putsNotagain!4. whensong.duratio

6、n1205. putsToolong!6. whenTime.now.hour217. putsItstoolate8. else9. song.play10. end11. 12. kind=caseyear13. when1850.1889thenBlues14. when1890.1909thenRagtime15. when1910.1929thenNewOrleansJazz16. when1930.1939thenSwing17. when1940.1950thenBebop18. elseJazz19. end7。使用空行在def之间和代码逻辑块之间htmlview plainc

7、opy1. defsome_method2. data=initialize(options)3. 4. data.manipulate!5. 6. data.result7. end8. 9. defsome_method10. result11. end8.使用RDoc并且他能转化为API文档。不要在注释块和def之间使用空行。9.保持每行代码不超过80字节长度10.避免尾随空白就是代码结束的地方不要加空白。=语法=1. def函数有参数的时候请用括号。没有参数的时候可以省略括号。rubyview plaincopy1. defsome_method2. #bodyomitted3. en

8、d4. 5. defsome_method_with_arguments(arg1,arg2)6. #bodyomitted7. end2.请不要使用for.除非你有充分的理由。一般情况下是迭代器可以代替for的。For是each的一种实现。所以你使用for只是间接调用each。但是for没有block块。这点和each不一样。并且for循环里面定义的变量对于外部是可以访问的。rubyview plaincopy1. arr=1,2,32. 3. #bad4. foreleminarrdo5. putselem6. end7. 8. #good9. arr.each|elem|putselem

9、3. 多行使用if/unless的时候请不要使用thenrubyview plaincopy1. #bad2. ifsome_conditionthen3. #bodyomitted4. end5. 6. #good7. ifsome_condition8. #bodyomitted9. end4.使用if/then/else/end结构的地方请尽量用三元操作符(?:)代替。因为它能使你的代码更加简洁rubyview plaincopy1. #bad2. result=ifsome_conditionthensomethingelsesomething_elseend3. 4. #good5.

10、 result=some_condition?something:something_else5. 三元操作符每一个分支只有一个表达式。也就是说三元操作符的分支表达式里面不应该有嵌套。在这种情况下,请尽量使用if/else。rubyview plaincopy1. #bad2. some_condition?(nested_condition?nested_something:nested_something_else):something_else3. 4. #good5. ifsome_condition6. nested_condition?nested_something:nested

11、_something_else7. else8. something_else9. end6.请不要使用ifx: .表达式。因为在ruby 1.9里面已经去除了。请用三元操作符代替。同样 if x;也一样不推荐使用。rubyview plaincopy1. #bad2. result=ifsome_condition:somethingelsesomething_elseend3. 4. #good5. result=some_condition?something:something_else7.一行的case语句请用when x then .语句。请不要使用when x: .语句。因为ru

12、by 1.9里面已经废弃掉了。同样的when x;也不要使用。8.布尔变量判断请用”&/|”。控制流程判断请用“and/or”rubyview plaincopy1. #booleanexpression2. ifsome_condition&some_other_condition3. do_something4. end5. 6. #controlflow7. document.saved?ordocument.save!9.多行代码的情况下请尽量避免使用三元操作符。而是使用if/unless代替。10.如果你的if/unless后的操作代码只有一行。请不要写多行,一行就可以了。另外一种好的写法是用and 代替。rubyview plaincopy1. #bad2. ifsome_condition3. do_something4. end5. 6. #good7. do_somethingifsome_condition8. 9. #anothergoodoption10. some_conditionanddo_something

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号