I'm currently trying to better organize my code.
To do this, I used namespaces, grouping classes by components, each of which has a specific role and several interfaces (in fact, abstract classes).
It seemed to me that this is very good, especially when I had to rewrite the entire component, and I had almost no effect on the rest. (I find it would be a lot harder with a bunch of mixed classes and methods)
But I'm not 100% satisfied with this. Especially I would like to make a better separation between the interfaces, the public face of the components and their implementation behind. I think that the “interface” of the component itself should be clearer, I mean, the new visitor should easily understand which interfaces he should implement, which interfaces he can use and which part of the implementation.
Soon, I launched a larger project involving up to 5 developers, and I would like to clearly understand this issue.
what about you? how do you do this? How do you organize your code?
source share