A coroutine that grows too large tends to aggregate too many responsibilities.
Such coroutines inevitably become harder to understand and therefore harder to maintain.
Above a specific threshold, it is strongly advised to refactor into smaller functions which focus on well-defined tasks. It might be difficult to
split the parts of a coroutine that contain co_yield
or co_await
statements, but the other parts can be split into normal
functions.
These smaller functions will not only be easier to understand, but also probably easier to test.