ここで、二つの変数間の関係として、 "orthogonal/non-orthogonal な関係" という概念を導入します。二つの変数があり、一方の値域がもう片方の値に影響を受けないならば、それら二変数の関係を "orthogonal" とします。反対に、どちらかの値域がもう片方に影響を受けるならば、"non-orthogonal" とします。例えば `userId` と `layoutVisibility` は、互いに独立して自由な値を持てるので、これら二値の関係は "orthogonal" です。一方で `userId` と `userName` という変数の場合は、`userId` を変更すると同時に `userName` も更新しなくてはいけないので、これらの関係は "non-orthogonal" です。 この "non-orthogonal" な関係を解消することで、不正な値の