Один из моих персональных демонов программирования всегда был сложной логикой, которая должна контролироваться операторами if (или аналогичными). Не всегда обязательно это сложное, иногда просто несколько состояний, которые нужно учитывать.
Существуют ли какие-либо инструменты или шаги, которые разработчик может выполнять во время разработки, чтобы помочь увидеть "состояния" и принять меры для реорганизации кода, чтобы упростить полученный код? Я думаю, что нужно составить матрицу или что-то в этом роде...?