• 20121108随笔,关于代码严谨性、编写的优雅性


    今天又被老大训了一顿!
    主要是因为代码写的不够严谨。
    写代码要从
     
    传递值的获取,
    数据校验,
    变量初始,
    数据获取,
    逻辑处理,
    视图渲染。

    而数据获取又可以封装在模型中,当然,筛选值构建也可以放在模型中。

    如果一个方法动作能这样块状的编写,是很优雅的!
    举个例子:
    遵循上面的方式:
            $user_id = (int) UxHttpRequest::get('user_id');
    
            if (!$user_id) {
                $this->message = '没有选择商家,请返回重试!';
                $this->index();
                exit;
            }
    
            $model = new DealerAgentBusiness();
            $dealer_model = new Dealer();
            $category_model = new AgentBusinessCategory();
         $dealer = $dealer_model->getOne('id=' . $user_id);
    $where = $model->getSearchCondition(); //获取搜索框查询条件 $where .= ' AND user_id=' . $user_id;
         $dealer_agent_businesses
    = $model->getAll($where, '', 'status', 'DESC'); //获取当前商家已有的所有业务ID $delaer_category_ids = array(); $ids_tmp = $model->getAll('user_id =' . $user_id, 'category_id'); foreach ($ids_tmp as $key => $v) { $delaer_category_ids[] = $v['category_id']; } $id_string = implode(',', $delaer_category_ids); $id_string = empty($id_string) ? 0 : $id_string; $where = 'status = 1 AND id not in(' . $id_string . ')'; $agent_business_category_list = $category_model->getAll($where); $this->render('view', array( 'dealer' => $dealer, 'dealer_agent_businesses' => $dealer_agent_businesses, 'agent_business_category_list' => $agent_business_category_list ));

    对应的某模型数据处理写在一块。

            $user_id = (int) UxHttpRequest::get('user_id');
    
            if (!$user_id) {
                $this->message = '没有选择商家,请返回重试!';
                $this->index();
                exit;
            }
    
            $model = new DealerAgentBusiness();
            //获取当前商家已有的所有业务ID
            $delaer_category_ids = array();
            $ids_tmp = $model->getAll('user_id =' . $user_id, 'category_id');
            foreach ($ids_tmp as $key => $v) {
                $delaer_category_ids[] = $v['category_id'];
            }
            
            $dealer_model = new Dealer();
         //获取搜索框查询条件
            $where = '1=1';
            $where .= isset($data['is_dtd']) ? ' AND is_dtd=' . (int) $data['is_dtd'] : '';
            $where .= isset($data['status']) ? ' AND status=' . (int) $data['status'] : '';
    $where .= ' AND user_id=' . $user_id; $dealer = $dealer_model->getOne('id=' . $user_id); $dealer_agent_businesses = $model->getAll($where, '', 'status', 'DESC'); $category_model = new AgentBusinessCategory(); $id_string = implode(',', $delaer_category_ids); $id_string = empty($id_string) ? 0 : $id_string; $where = 'status = 1 AND id not in(' . $id_string . ')'; $agent_business_category_list = $category_model->getAll($where);      $this->render('view', array( 'dealer' => $dealer, 'dealer_agent_businesses' => $dealer_agent_businesses, 'agent_business_category_list' => $agent_business_category_list ));

    两种方式有两种方式的好处,不错冲感官逻辑上来说,第一种比较有条例性和规范性。
    就如写八股文一样,破题、承题、起讲、入手、起股、中股、后股、束股。一步一步来,乱不了!


    当然 还需要缩进,缩进能是一小段代码成块,便也阅读。注释也是必须的!
    难免会遇到自己回来看代码看不懂的时候。

    今天又做了些浪费时间的事,有句话说,预谋其事,先利其器。人啊,就是不长记性!
    自己花时间写了半天的函数,原来类库中早就有了!


    嗯,不过今天心情不错!


    今天还收获一句话:程序员看程序员的代码、作品,会不满意。
    程序员写给客户的代码,就算再搓功能再弱小。只要能满足客户的要求,就是好的!

    呵呵、要看开、要看开!


     

  • 相关阅读:
    echarts设置数据在轴线上显示
    LeetCode【189. 旋转数组】
    pycharm快捷键
    LeetCode【461. 汉明距离】
    LeetCode【1051. 高度检查器】
    LeetCode【509. 斐波那契数】
    LeetCode【1021. 删除最外层的括号】
    LeetCode【206. 反转链表】
    LeetCode【344. 反转字符串】
    tensorboard运行
  • 原文地址:https://www.cnblogs.com/phpdragon/p/2761413.html
Copyright © 2020-2023  润新知