正交思维

什么是正交


f9dcd100baa1cd1129e61a16b412c8fcc3ce2db7.png

正交就是垂直,就是相互独立。上图三维空间里xyz轴相互垂直,所以不管我沿着其中一根轴的方向上怎么变化,另外两根轴的值都不会变!

我觉得正交可以用一个我们更熟悉的词表达,就是抽象。跟上面的三维空间不同,实际生活中的维度可以是无穷多的。

我们在设计系统的时候运用正交的概念,就是将变化(一个或多个)抽象出来,然后将变化封装在一个维度上,你可以把这些抽象任意组合,你的代码就不会写的像一团乱麻。

说到这里可能你还听不懂,我们日常生活中万物皆正交。我们常用的Laravel框架有一个Validator类,我们是这样使用的

$validated = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);

他写了几百个规则,Validator类抽象出了规则这个维度,当后面的框架开发者要加一个规则,只要依样画瓢,加一个三个参数的的巨简单的方法即可,而不用把这个validator类写成一团乱麻,也不需要知道这个函数外做的事情,这就是我们框架里的正交。真是威力无比。


image.png
$rules = [
            'title' => 'is250',
        ];
image.png

你可能感兴趣的:(正交思维)