Я работаю над довольно большим проектом C ++ для Linux. Мы пытаемся найти критерии для организации нашей структуры каталогов исходного файла.
Одна мысль, которую мы имеем, состоит в том, чтобы структура каталогов отражала наш выбор архитектуры. Например, у нас будет один корневой уровень для наших классов доменов и другой для наших граничных классов, а другой - для классов инфраструктуры, не зависящих от домена.
Таким образом, в банковском приложении у нас может быть каталог с именем src / domain / accounts, src / domain / customerTransactions, src / border / customerInputViews и т. Д. У нас может быть другой каталог с именем src / infra / collection, src / Infra / Threading и т. д.
Кроме того, внутри этой структуры мы изолировали бы интерфейсные классы от классов реализации. Мы сделаем это, чтобы клиенты интерфейсов не зависели от структуры каталогов классов реализации.
Есть мысли?