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