有没有办法让 cane 忽略日志消息?
例如,我们有如下所示的日志消息:
logger.debug { "something happened that you should know about" }
这增加了方法的复杂性,但它是必要的复杂性,所以我不希望它计入 ABC 复杂性测量。
删除调试语句周围的块将降低复杂性,但也会减慢代码速度,因为必须在方法运行时评估字符串。我们需要速度增益。
有没有办法让 cane 忽略日志消息?
例如,我们有如下所示的日志消息:
logger.debug { "something happened that you should know about" }
这增加了方法的复杂性,但它是必要的复杂性,所以我不希望它计入 ABC 复杂性测量。
删除调试语句周围的块将降低复杂性,但也会减慢代码速度,因为必须在方法运行时评估字符串。我们需要速度增益。
没有开箱即用的方法,但您可以自定义AbcCheck
为某些 AST 节点添加异常:https ://github.com/square/cane/blob/master/lib/cane/abc_check.rb #L51
在实践中,我发现如果一个方法的日志记录增加了如此多的复杂性以至于成为一个问题,那么分解该方法通常是有意义的。如果不是,请记住,较低并不总是更好。cane 的目的是防止你不小心使用复杂的方法,而不是奖励你得分最低。
现在还有排除某些文件的功能,这不能直接解决您的问题,但可能会有所帮助。请参阅自述文件的“定义排除”部分。