直交性とは?【達人プログラマー】
こんばんは。
GWは合唱イベントの合間を縫って「達人プログラマー―システム開発の職人から名匠への道」を読んでいました。
新装版が出ていたので迷わずにそちらを購入。
- 作者: Andrew Hunt,David Thomas
- 出版社/メーカー: オーム社
- 発売日: 2016/10/25
- メディア: Kindle版
- この商品を含むブログを見る
この本と言えば「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メソッドの振る舞いも変更されてしまう。
ということなので直交性が低い、ということになるのだそうです。
直交性が高い状態を保つことが保守性を高める秘訣ですね。
またしばらく読み進めていきます。
では~