Ruby编程:代码格式与库设计的最佳实践
1. 避免强制执行任意代码限制
RuboCop是一款流行的Ruby代码检查工具,但其默认配置会启用所有与指标相关的检查。默认情况下,RuboCop会对以下情况发出警告:
- 类超过100行
- 模块超过100行
- 方法超过10行
- 代码块超过25行
- 代码块嵌套超过三层
- 方法参数(包括关键字参数)超过五个
强制执行这些限制往往会导致代码质量变差,而非变好。反对任意限制的理由很简单:如果存在一种更好且符合限制的方法,开发者早就会采用了。支持任意限制的观点则认为,程序员可能因愚蠢、无知或缺乏经验而不知道最佳方法,通过强制执行限制可以迫使他们重构代码,减少潜在的危害。然而,一个简单的反驳是,如果程序员连在限制范围内正确编写代码的能力都没有,我们又怎能相信他们能将代码智能地拆分成更小的部分以绕过这些限制呢?
例如,有一个300行的类,将其内部的方法拆分成四个约75行的独立模块,并将这些模块包含在类中,这并不一定是一种改进。当然,如果能将实现某种行为的相关方法组合成一个可在其他类中使用的模块,那创建模块是有意义的。但仅仅为了避免任意限制而拆分类,绝对是不可取的。
以下是一个示例代码,实现了一个 XYZPoint 类,假设 xs 、 ys 和 zs 是返回整数数组的方法, all_combinations 方法会生成 xs 、 ys 、 zs
Ruby代码格式与库设计最佳实践
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



