I'm a Java developer and I never have to worry about including files or messing with BUILD files.
Whenever I need to write C++ code, things get more complicated. I can think of creating *.h files as interfaces in Java, but figuring out how to write the build file and what order classes should be included in gives me a headache.
Is there a simple way to think of this? How do you know when to include something or how to separate things out properly. For example, what is generally a good way to deal with a project with dozens of sources files that are interdependent on each other.
Is there some framework to make creating BUILD files or managing all this boilerplate compilation stuff more bearable?