McConell のCode Completeを読んでいて、ブール変数を使用してコードを文書化する方法について説明しています。たとえば、次の代わりに:
if((elementIndex < 0) || (MAX_ELEMENTS < elementIndex) ||
(elementIndex == lastElementIndex)){
...
}
彼は次のように提案しています。
finished = ((elementIndex < 0) || (MAX_ELEMENTS < elementIndex));
repeatedEntry = (elementIndex == lastElementIndex);
if(finished || repeatedEntry){
...
}
これは、論理的で、良い習慣であり、非常に自己文書化されているように思えます。ただし、この手法に出くわしたことがほとんどないため、この手法を定期的に使用することをためらっています。珍しいという理由だけで混乱するかもしれません。しかし、私の経験はまだそれほど多くはないので、このテクニックについてプログラマーの意見を聞くことに興味があります。また、誰かがこのテクニックを定期的に使用しているか、コードを読むときに頻繁に見たことがあるかどうか知りたいです。これは採用する価値のある規則/スタイル/テクニックですか? 他のプログラマーはそれを理解して評価するでしょうか、それとも奇妙だと思いますか?