我一直在为其中一个项目重构整个代码库。基本上将代码模块化为单独的模块、职责单一的类、将意大利面条函数分解为小方法等
但是,我想知道我们如何干净/优雅地处理下面的代码块,该代码块具有多个if条件和continue语句。我们的想法是把它变小,变干净。对于其他情况,无论在哪里找到多个if和语句,我都使用谓词。但这里的情况差别不大,因为它们针对不同的条件打印不同的日志消息。你知道吗
def somefunc(*args, **kwargs):
for p_key, p_det in somedict.iteritems():
get_all_somevars(p_det)
if somevar1 and somevar2 is None:
continue
if somevar3 is None:
logger.info('some message')
continue
if somevar4 is None:
logger.info('some message')
continue
somevar5 = x.split('\n')
somevar6 = y.split('\n')
somevar7 = do_something_2(somevar5, somevar6)
if somevar7 is None:
logger.info('some message')
continue
do_something_3()
一些质量代码评审拒绝循环内的多个continue(例如超过2个)。你知道吗
当它发生时,您可以将所有这些条件封装到一个单独的方法中,该方法将返回true/false并相应地记录。你知道吗
我不知道其他的清理方法。你知道吗
编辑:(伪代码)
相关问题 更多 >
编程相关推荐