The golden rule of code structuring is always said as splitting into many sub functions is a good thing. Though I noticed it becomes a problem in complex applications when a class of e.g. 10 bigger functions is split into a class with 50 functions. When development went so far, it becomes quite hard to understand the concept of the class, I mean you lose survey. This is often the case when you look into code of others or in your own code after some months past.
I've heard a function should not be bigger than what fits on the screen. And then you start to split into sub functions, and the following effect is a class of many functions where you lose survey.
One example: The Qt library internally uses private classes, which means every class has a
d pointer to a private object of its own private class containing all those helper functions moved out to it.
Sometimes I also wished I could colour the background of the important code.
So what's your approach of keeping complex code structured but still understandable?