作者shadow3x3x3 (UCCU)
看板Ruby
标题[问题] class 行数过长问题
时间Thu Jun 16 08:56:16 2016
第一次在本版提问问题,还请多多指教 !
最近写Ruby的时候其实都使用了Rubocop
https://goo.gl/py0lAk
来检测自己程式的坏味道
大部分检测出的问题都可以想办法修改
可是目前最让我棘手的是Ruby的class不能写超过100行这项原则
虽然我还挺认同这项原则的,但是实际要遵从时还是相当困难
例如我已经想破头都想不出到底如何将我超过百行的class在精简(已经继承一父类别)
於是为了解决百行内问题,我就将一些方法移到module里,再从class中include进来
可是拆出的module我也只命名成xxx_util,甚至module方法里还用到class变数(@foo...e
tc
目前的做法感觉相当不健康,但另外我还能想到的做法就是将类别关系更加细分
拆成更多父类别一层层继承下来...
又或者是我Ruby Code写得太冗长应该先从改善Ruby Code下手吗?
想问问各位是如何遵从单class不超过百行的原则,或是有没有正确的做法是我应该去实
现?
谢谢各位!
--
Sent from my Windows
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.170.28.221
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ruby/M.1466038579.A.9AF.html
※ 编辑: shadow3x3x3 (39.12.5.34), 06/16/2016 09:00:59
1F:→ Neisseria: 比起行数,class 的 SOLID 原则更应该要注意 06/16 10:26
2F:→ Neisseria: 有时候一个 method 可能就 30-40 行了 06/16 10:27
3F:→ Neisseria: 一个 class 只能 100 行实在有点少 =.= 06/16 10:27
4F:→ Neisseria: 一个 method 30 行可能也是有点多,可能要 refactor 06/16 10:34
5F:→ Neisseria: 有时 refactor 成 private method,行数不一定会减少 06/16 10:35
6F:推 mars90226: 100行不是硬性规则,只是要提醒你行数少表示程式清晰 06/16 15:21
7F:→ mars90226: 如果真的无法低於100行,就放着吧,继续改可能反而减少 06/16 15:21
8F:→ mars90226: 程式可读性 06/16 15:21
9F:→ shadow3x3x3: 其实Rubocop也有规范一个method不超过10行,这方面 06/16 22:02
10F:→ shadow3x3x3: 还算是好控制 06/16 22:02
11F:→ shadow3x3x3: 另外确实拆开来可读性会变差一些,或许还是case by c 06/16 22:02
12F:→ shadow3x3x3: ase吧 06/16 22:02
13F:推 rayway30419: 你可以自己定义rubocop 06/17 01:02
14F:→ rayway30419: 我用default的lint两天就反安装了 06/17 01:03