title: Linux C++ Project Source File Directory Structure
body: <p>I'm working on a fairly large C++ project on Linux.  We are trying to come up with criteria for organizing our source file directory structure.</p>
  
  <p>One thought we have is to have the directory structure reflect our architecture choices.  For instance, we would have one root level for our domain classes and another for our boundary classes, and one for our domain-agnostic infrastructure classes.</p>
  
  <p>So in a banking application, we might have a directory called src/domain/accounts, src/domain/customerTransactions, src/boundary/customerInputViews, etc.  We might then have another directory called src/infra/collections, src/infra/threading, etc.</p>
  
  <p>Also, within that structure, we'd isolate interface classes from implementation classes.  We'd do that so clients of interfaces would not be dependent on the directory structure of the implementation classes.</p>
  
  <p>Any thoughts?</p>