有点讨厌一个方法做完所有事情的
public function payHello()
{
$user = User::With('puser')->find(1);
//用户奖金
$user->money = 100;
$user->save();
//一级
if(! is_null($user->puser)){
...一堆代码
}
//二级
if(! is_null($user->puser->puser)){
...一堆代码
}
}
实际的代码120+行,增加一个店铺收益,测试非常的麻烦。
阅读也不爽,还要全读完。
public function payHello()
{
$this->user = User::With('puser')->find(User::id());
$this->oneMOney();
$this->twoMOney();
$this->shopMOney();
}
我控制器主方法 行数的感觉
0 - 3 舒适,这种肯定复用了的
3 - 6 增删改 有点小复杂
6 - 20 麻烦的逻辑
20+ 难看
100 痛苦
个人觉得100行之内都能接受
可以看一下laravel源码
可以按照 SOLID 设计原则来设计
可以按照 圈复杂度 (Cyclomatic complexity) 的是计算方法来对代码进行静态分析,我一般会尽量将函数的圈复杂度控制在 5 以内。很多时候不为别的,只为让代码维护者保持良好心情。
说了那么多,无非就是想说逻辑拆解,分块.