代码冗余的缺点:
后期维护痛苦:假设一段功能代码直接复制粘贴到50处,后期需要维护添加功能,还要手动复制粘贴50次。
编码效率低:代码复用程度低,编码缺乏规范化,缺乏工具化组件化的函数代码。
代码不简洁:一个类的代码过多,对于类的整体把握较差;阅读源码体验差,可读性弱。
代码冗余的原因:
1.直接复制粘贴
2.不知道框架/PHP自带的标准方法
3.完成功能调试后,没有考虑代码合并简化
为什么要复用代码?
尽最大可能自己偷懒,帮别人偷懒
复用代码的可能方法:
1.消消乐:变量
冗余:
$couont1 = ModelName::model()->Count('state=1 and is_pass=1');
$couont2 = ModelName::model()->Count('state=2 and is_pass=1');
$couont3 = ModelName::model()->Count('state=3 and is_pass=1');
合并
$w='is_pass=1 and state=';
$couont1 = ModelName::model()->Count($w.'1');
$couont2 = ModelName::model()->Count($w.'2');
$couont3 = ModelName::model()->Count($w.'3');
2.消消乐:函数
冗余:
function getInfo1(){
$a=1;
...省略999行
一大段相同的逻辑代码
其他处理
}
function getInfo2(){
$a=1;
...省略999行
一大段相同的逻辑代码
其他处理
}
function getInfo3(){
$a=1;
...省略999行
一大段相同的逻辑代码
其他处理
}
合并:
function UniteDeal(){
a=1;
...省略999行
一大段相同的逻辑代码
}
function getInfo1(){
UniteDeal();//统一函数处理
//其他处理
}
function getInfo2(){
UniteDeal();//统一函数处理
//其他处理
}
function getInfo3(){
UniteDeal();//统一函数处理
//其他处理
}
3.找不同+消消乐:函数参数
冗余代码:
function actionIndex($keywords){
//默认首页
set_cookie('_currentUrl_', Yii::app()->