写了大半年程序,应该有抽象的思想了

最近看了几段刚进公司时写代码,基本是顺着自己的思路写下来,想到什么写什么,声明了一个用不到的变量,重复的代码写了几段.

连重构一下都很困难,因为业务逻辑太久远,抽离主干很耗时,重构了半天还是那么一大段.

 

在我的理解中,抽象就是把一个业务逻辑先理顺,这个逻辑总是一条可以走通的路,其中会有很多分支以及死路,但最终还是可以走通的,整个流程就是一个抽象的流程.我不用去管这条路是怎么来的.这就是一个大的抽象.

所以如果业务逻辑太久远,想把这些逻辑再抽象出来已经很困难了..

 

同样的,模块也是应该,是必须抽象出来的..不能再写那些毫无可读性的代码了,贴一段代码

    //定时为个人预约分配业务员
    public function autoAllotSales(){
        $cache_key = 'allotsales_cache_key';
        if($this->cache->get($cache_key)){
            $data['sucesses'] = array();
            $data['errors'][] = '分配程序正在执行,请稍后再执行';
        }else{
            $limit = isset($_GET['limit'])?$_GET['limit']:300;
            $limit = $limit>500?500:$limit;
            $errors = array();
            $this->cache->save($cache_key, true, 600);
            $rs = CI_MyApi::excute('booking/autoAllotSales',array('limit'=>$limit));
            $this->cache->save($cache_key, false, 600);
            echo 'done:';print_r($rs);
        }
    }
    
    //定时为理疗订单分配理疗师
    //历史订单 重复执行
    public function autoRemindLiliao(){
        $cache_key = 'remind_doc_key';
        if($this->cache->get($cache_key)){
            $data['sucesses'] = array();
            $data['errors'][] = '分配程序正在执行,请稍后再执行';
        }else{
            $limit = isset($_GET['limit'])?$_GET['limit']:300;
            $limit = $limit>500?500:$limit;
            $this->cache->save($cache_key, true, 600);
            $rs=CI_MyApi::excute('booking/autoRemindLiliao',array('limit'=>$limit));
            $this->cache->save($cache_key, false, 600);
            echo 'done:';print_r($rs);
        }
    }

 其实这个逻辑的正确写法应该是读取所有type的数据,然后根据type的值走不通的逻辑.通用的通用..能抽象的抽象..特殊的单独写..关键是在编程的前一秒得多思考,思考自己到底在做什么..

posted @ 2017-01-16 10:59  JOSEFA  阅读(129)  评论(0编辑  收藏  举报
shopify traffic stats View My Stats