代码重构

代码重构:
重构前:
if base_info_dto.result_code == BizConsts.DATA_STATE_SAIC_NONE or base_info_dto.result_code == BizConsts.DATA_STATE_NONE_DX_TIME:
            return FeatureTimeDealDo(result_code=base_info_dto.result_code)
        # 是否注销
is_cancel_maybe = self.__is_cancel_maybe(base_info_dto.enterprise_code)   #此处根据业务情况,添加else;
if is_cancel_maybe.is_defined() and is_cancel_maybe.get():
            time_map_features = self.__get_features(cmp_data, company_name, #重复  #=#base_info_dto.dx_time, base_info_dto.open_from, node_num, features, time_map_features)
           time_map_features =                                               #重复                          self.__network_features_time.set_network_feature_time(company_name, time_map_features)
 else:
       start_time01 = self.now_time                        
        time_map_features = self.__get_features(cmp_data, company_name, start_time01, #重复 base_info_dto.open_from, node_num, features, time_map_features)
     time_map_features = self.__network_features_time.set_network_feature_time(company_name,#重复 time_map_features)
区别:start_time01与base_info_dto.dx_time不同,可写一个方法进行调用;
重构后:
 if base_info_dto.result_code == BizConsts.DATA_STATE_SAIC_NONE or\
                        base_info_dto.result_code == BizConsts.DATA_STATE_OTHER_ABNORMAL: # 无数据返回
            return FeatureTimeDealDo(result_code=base_info_dto.result_code)
        else:  # 获取数据完整状态返回
            end_time = self.__get_node_end_time(base_info_dto)
            time_map_features = self.__get_features(cmp_data, company_name, end_time, base_info_dto.open_from,
                                                    node_num, features, time_map_features)
            time_map_features = self.__network_features_time.set_network_feature_time(company_name, time_map_features)
增加的方法:
def __get_node_end_time(self, base_info_dto):
        """
        获取最后一个点的截止时间
        """
        if base_info_dto.enterprise_code == BizConsts.ENTERPRISE_CODE_CANCEL:  # 吊销状态
            return base_info_dto.dx_time
        else:  # 其他状态
            return self.now_time
总结:代码重构需要结合业务逻辑知识,将ifelse语句进行梳理,合并,简化,尽量将程序用if...else...形式,而不是单个if...形式,另外,如果if...else...中有相同代码。可以考虑另外写一个方法实现不同的那部分,相同的那部分直接写在最外面,让if...else...逻辑只判断该分支下运行的代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值