• 重构lingling代码


    在添加getRecentGames和getTvChannels接口过程中,发现很多自己都看不过去的代码,试举两例:

    1,判断传入的日期是否是合法形式:xxxx-xx-xx xx:xx:xx
    编码时,用最土的方式,挨个判断字符是否合法。

    function isDateValid($date){
        $date = trim($date);
        $arr = explode(' ', $date);
        if(empty($arr)){
            return false;
        }

        $datePart = $arr[0];
        $elements = explode('-', $datePart);
        if(count($elements) != 3){
            return false;
        }
        if(! checkDate($elements[1], $elements[2], $elements[0])){
            return false;
        }
        $timePart = $arr[1];
        $elements = explode(':', $timePart);
        if(count($elements) != 2 && count($elements) != 3){
            return false;
        }
        foreach($elements as $ele){
            if(! is_numeric($ele)){
                return false;
            }
        }
        return true;
    }

     

    用正则表达式修改后:

    public function isDateValid($date){
        $pattern = '/^ *[0-9]{2,4}(-[0-9]{2}){1,2} [0-9]{2}(:[0-9]{2}){1,2} *$/';
        $ret = preg_match($pattern, $date, $matches);
        return $ret == 0 ? false : true;           
    }

    重构过程中,又复习了下正则表达式,平常极少用到{},这次痛快的用了N次。

     

    2,类似的业务,调用接口的层数也应类似,比如:

    添加足球比赛信息:addFootballTvb() –> finalAddTvb()

    添加篮球比赛信息:finalAddTvb()

    出现这样的调用层次,是因为后一个功能上层得到的数据,正好符合finalAddTvb()的要求,所以将原来private的接口public出来,看起来好像省事了,但在后来阅读代码过程中,总感觉非常别扭。后来改为:

    添加篮球比赛信息:addBasketballTvb() –> finalAddTvb()

    代码读起来顺畅多了。重构的目的并不为解决功能问题,而是为了提高代码可读性,进而提高可维护性。

  • 相关阅读:
    SSAS aggregation 的作用及其使用
    liblinear使用总结
    python绝对路径相对路径函数
    libsvm使用总结
    一次scrapy成功停止的信息
    简单总结scrapy使用方法
    python编码格式
    一次scrapy失败的提示信息:由于连接方在一段时间后没有正确答复或连接的主机没有反 应,连接尝试失败
    17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步
    16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat
  • 原文地址:https://www.cnblogs.com/tara/p/2319871.html
Copyright © 2020-2023  润新知