Когда программируешь какой-либо довольно сложный процесс, состоящий из череды вызовов разных функций в разном порядке, неизбежно приходишь к тому, что надо как-то описывать текущее состояние системы (какие операции производились, какие нет, какие выполняются в текущий момент). Для этого, как правило, используются разные флаги. Но чем сложнее процесс, тем их больше. В итоге разборки в этих флагах становятся тяжёлым процессом.
Я спросил у непосредственного начальства, есть ли альтернативный способ? Начальство сказало, что не знает.
У меня, разумеется, есть идея -- нужно писать процесс как конечный автомат. Но и у этого метода есть проблемы. Во-первых, надо понимать, как это работает. Во-вторых, всё придётся переписывать и вводить какие-то фиктивные состояния в случае вызова одной и той же функции из разных мест, чтобы она могла определять, откуда она вызвана.
Я применял пару раз методику автомата, но к проектам "с нуля". Получилось интересно, по крайней мере, мне.
Есть ли ещё способы?