Click here to Skip to main content
15,346,934 members
Home / Discussions / Design and Architecture
   

Design and Architecture

 
Questioncode organisation Pin
CalinNegru31-Jan-22 7:36
MemberCalinNegru31-Jan-22 7:36 
AnswerRe: code organisation Pin
Bohdan Stupak4-Feb-22 4:05
professionalBohdan Stupak4-Feb-22 4:05 
AnswerRe: code organisation Pin
Richard MacCutchan4-Feb-22 4:56
mveRichard MacCutchan4-Feb-22 4:56 
GeneralRe: code organisation Pin
CalinNegru4-Feb-22 8:48
MemberCalinNegru4-Feb-22 8:48 
GeneralRe: code organisation Pin
jschell17-Feb-22 11:12
Memberjschell17-Feb-22 11:12 
GeneralRe: code organisation Pin
CalinNegru19-Feb-22 1:39
MemberCalinNegru19-Feb-22 1:39 
GeneralRe: code organisation Pin
jeron119-Feb-22 7:03
Memberjeron119-Feb-22 7:03 
GeneralRe: code organisation Pin
CalinNegru19-Feb-22 8:10
MemberCalinNegru19-Feb-22 8:10 
GeneralRe: code organisation Pin
Richard MacCutchan19-Feb-22 21:44
mveRichard MacCutchan19-Feb-22 21:44 
GeneralRe: code organisation Pin
CalinNegru25-Feb-22 9:41
MemberCalinNegru25-Feb-22 9:41 
GeneralRe: code organisation Pin
Richard MacCutchan25-Feb-22 22:17
mveRichard MacCutchan25-Feb-22 22:17 
GeneralRe: code organisation Pin
CalinNegru26-Feb-22 0:14
MemberCalinNegru26-Feb-22 0:14 
GeneralRe: code organisation Pin
Richard MacCutchan26-Feb-22 1:03
mveRichard MacCutchan26-Feb-22 1:03 
GeneralRe: code organisation Pin
Snesh Prajapati26-Feb-22 5:04
professionalSnesh Prajapati26-Feb-22 5:04 
AnswerRe: code organisation Pin
Greg Utas4-Feb-22 5:52
mveGreg Utas4-Feb-22 5:52 
Some projects are as you describe. The only way to analyze dependencies is by #include directives, which aren't even reliable. Ones that aren't needed don't necessarily get removed. And others that should be added aren't, because the header in question gets accidentally included, transitively. Sometimes A.cpp #includes B.h, and B.cpp #includes A.h for reasons of collaboration. Such circular dependencies are sometimes unavoidable.

Layering is the main way to impose higher level structure. The software is organized into static or dynamic libraries that preclude circular dependencies. That is, if library B has a file that #includes a file in library A, then no file in A can #include anything in B. This allows libraries to be tested independently and also allows an application to be developed without having to use a monolithic code base that contains various things that the application doesn't need.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.

AnswerRe: code organisation Pin
jschell17-Feb-22 11:21
Memberjschell17-Feb-22 11:21 
QuestionBest Way To Solve This? Pin
Kevin Marois11-Jan-22 6:32
professionalKevin Marois11-Jan-22 6:32 
AnswerRe: Best Way To Solve This? Pin
englebart15-Feb-22 16:54
professionalenglebart15-Feb-22 16:54 
QuestionWould it be possible to build megastructures like the Forerunners in <i>Halo</i>? Pin
oofalladeez34328-Dec-21 9:32
professionaloofalladeez34328-Dec-21 9:32 
AnswerRe: Would it be possible to build megastructures like the Forerunners in <i>Halo</i>? Pin
Dave Kreskowiak28-Dec-21 11:02
mveDave Kreskowiak28-Dec-21 11:02 
GeneralRe: Would it be possible to build megastructures like the Forerunners in <i>Halo</i>? Pin
jschell30-Dec-21 7:38
Memberjschell30-Dec-21 7:38 
GeneralRe: Would it be possible to build megastructures like the Forerunners in <i>Halo</i>? Pin
Dave Kreskowiak30-Dec-21 7:39
mveDave Kreskowiak30-Dec-21 7:39 
GeneralRe: Would it be possible to build megastructures like the Forerunners in <i>Halo</i>? Pin
jschell30-Dec-21 7:44
Memberjschell30-Dec-21 7:44 
GeneralRe: Would it be possible to build megastructures like the Forerunners in <i>Halo</i>? Pin
Dave Kreskowiak30-Dec-21 7:46
mveDave Kreskowiak30-Dec-21 7:46 
GeneralRe: Would it be possible to build megastructures like the Forerunners in <i>Halo</i>? Pin
jschell30-Dec-21 7:50
Memberjschell30-Dec-21 7:50 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.