1

私はRobertMartinのCleanCodeを読んでいて、その中で彼はコードが非常にまとまりがあると述べています。

クラスには少数のインスタンス変数が必要です。クラスの各メソッドは、これらの変数の1つ以上を操作する必要があります。一般に、メソッドが操作する変数が多いほど、そのメソッドはそのクラスに対してよりまとまりがあります。各変数が各メソッドで使用されるクラスは最大限にまとまりがありますメソッドは最大限にまとまりがあります

ただし、並行コードを記述しようとする場合、競合状態を回避するために、変数のスコープを単一のメソッドに制限するように努めます。しかし、これは最もまとまりのないコードになります。

アプリケーション/クラスを設計するとき、あなたは何を好むべきですか?凝集性または並行性?

4

1 に答える 1

1

私はマーティンの概念のかなりの数が好きですが、コードは正しく実行される必要があり、そうでない場合、世界中のすべての美しいメトリックがあなたの見栄えを良くすることはありません。

それに加えて、スレッドの問題はデバッグするのに最悪の問題の1つであり、誰かが結束についての本に書いたもののアイデアに一致するように、並行性の設計を妥協してはなりません。繰り返しますが、私はマーティンをノックしていません...彼はあなたに同じことを言うと確信しています。結局のところ、彼はほとんどすべてが彼の執筆のほとんどで連続体にあることを認識しています。

しかし、あなたが非常に適切な場所に重点を置いているかどうかはわかりません(私があなたの質問を読んでいる方法かもしれません)。マーティンは、できるだけ多くの変数をクラスレベルで有効にする必要があると言っているわけではありません。彼は、クラスレベルの変数のうち、いくつ使用していると言っていますか?必要のない変数をプロモートすると、凝集性が高くならない可能性があります...結合が緊密になる可能性があります。

于 2010-09-16T04:26:55.463 に答える