ばるたそ星人

システム・アプリ開発・趣味の感想 etc

直交性とは?【達人プログラマー】

こんばんは。

GWは合唱イベントの合間を縫って「達人プログラマーシステム開発の職人から名匠への道」を読んでいました。

新装版が出ていたので迷わずにそちらを購入。

新装版 達人プログラマー 職人から名匠への道

新装版 達人プログラマー 職人から名匠への道


この本と言えば「DRY原則」があまりにも有名ですが、今回は「直交性」というワードに着目しました。

「直交性」とは幾何学の分野から拝借してきた用語です。(中略)。この用語はコンピューティングの分野では、ある種の独立性、あるいは分離性を表しています。2つ以上のものごとで、片方を変更しても他方に影響を与えない場合、それらは直交していると呼ぶわけです。

http://t2y.hatenablog.jp/entry/2016/11/20/111443


つまり、コーディング段階で、お互いに影響を及ぼさないメソッド・クラスが直交性がある

ということらしいです。

例えば

private int Add(int a, int b)
{
    return a + b;
}

private int Multiple(int a , int b, int c)
{
    return Add(a, b) * c;
}

private void Show()
{
    Console.Write(Multiple(1, 2, 3))
}

というメソッドをC#で書くと、
Addメソッドの振る舞いを変更すると、Multipleメソッドの振る舞いも変更されてしまう。
ということなので直交性が低い、ということになるのだそうです。
直交性が高い状態を保つことが保守性を高める秘訣ですね。

またしばらく読み進めていきます。

では~