See this article here.
Some efficient ways on how to split your app into parts and efficiently deal with dependencies among these parts.