Я читаю книгу Макконелла Code Complete, и он обсуждает использование логических переменных для документирования вашего кода. Например, вместо:
if((elementIndex < 0) || (MAX_ELEMENTS < elementIndex) ||
(elementIndex == lastElementIndex)){
...
}
Он предлагает:
finished = ((elementIndex < 0) || (MAX_ELEMENTS < elementIndex));
repeatedEntry = (elementIndex == lastElementIndex);
if(finished || repeatedEntry){
...
}
Это кажется мне логичным, хорошей практикой и очень самодокументируемым. Однако я не решаюсь начать регулярно использовать эту технику, так как почти никогда не сталкивался с ней; и, возможно, это будет сбивать с толку только потому, что оно редкое. Однако мой опыт пока не очень велик, поэтому мне интересно услышать мнение программистов об этой технике, и мне было бы любопытно узнать, использует ли кто-нибудь эту технику регулярно или часто сталкивался с ней при чтении кода. Стоит ли принимать эту конвенцию/стиль/технику? Поймут ли и оценят ли это другие программисты или посчитают ли это странным?