Click here to Skip to main content
15,888,521 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralFolders structure - Added Pin
Nelek27-May-20 1:50
protectorNelek27-May-20 1:50 
GeneralRe: Folders structure Pin
RickZeeland27-May-20 2:02
mveRickZeeland27-May-20 2:02 
JokeRe: Folders structure Pin
Maximilien27-May-20 2:03
Maximilien27-May-20 2:03 
GeneralRe: Folders structure Pin
RickZeeland27-May-20 2:10
mveRickZeeland27-May-20 2:10 
GeneralRe: Folders structure Pin
honey the codewitch27-May-20 2:33
mvahoney the codewitch27-May-20 2:33 
GeneralRe: Folders structure Pin
Nelek27-May-20 7:49
protectorNelek27-May-20 7:49 
GeneralRe: Folders structure Pin
honey the codewitch27-May-20 13:59
mvahoney the codewitch27-May-20 13:59 
GeneralRe: Folders structure Pin
kalberts27-May-20 3:06
kalberts27-May-20 3:06 
If you have are making two (or "n") alternate implementations of the same application, I would prefer alternative A: You probably have different developers for the language alternatives, and if the languages are quite different you would not regularly compare, say, the C# code against a JavaScript or Fortran implementation. Comparing them side by side to verify that the logic is identical (at an abstract level) is something you do not do often. At those few occasions, the effort of picking files from dispersed directories is insignificant.

The files making up one language implementation are closely related to each other. Keep closely related files close together. Files in different languages, being processed in different ways, maybe even demanding a different modularization (at least at low level) gains very little from being close together.

But I guess that your case is a single implementation, with different parts written in different languages (e.g. that the cpp code provides p/invoke interfaces, or you are running a WPF GUI in a frontend process, communicating with a backend working process written in C).

In that case, alternative B is obvious to me. Again: Keep closely related (e.g. coupled as caller and callee) files close together.

Why keep files close?

Another reply already mentioned directory-wide searches: You will want to search in a the code you are working on, with as few false hits as possible to stuff you are not working on. Caller and callee should be in the same (sub)directory.

Second: With parallel versions in different implmentation languages, you usually make a release for one language at a time. The tests are passed at different times. The system integration done at different times. So you would want to make the checkpoints etc. (e.g. creating an offline backup of all source code) at different times. Most such tasks are much simpler if the files involved are gathered in a its own subdirectory.

If you have a single implementation (with parts in different languages), but split into major subsystems, you may create new releases of each subsystem at different times, or at least you complete full testing at different times. Again, you would like a checkpoint to relate to a whole subdirectory, not some files here, some there.

I am curious about your splitting off "Test". For low level, module testing I find it natural to put it close to the code to be tested - logic module tests in the Logic directory, GUI tests in the GUI directory. Maybe even lower: If you e.g. put module test C# code into a partial class, having to climb several levels up towards the root and down several levels into the Test directory to find the test part of the class doesn't feel right. They partial classes are closely related, and should be locaded close together. It is like if you made a directory at the level of Cs, Cpp, Test, where you gather all the header / interface files in all the languages used in one place - that is not what you would do!

Integration and system tests are different matters: They should be separate from the modules they integrate, in its own directory the way you have indicated.
GeneralRe: Folders structure Pin
Nelek27-May-20 7:48
protectorNelek27-May-20 7:48 
GeneralRe: Folders structure Pin
Kornfeld Eliyahu Peter27-May-20 3:29
professionalKornfeld Eliyahu Peter27-May-20 3:29 
GeneralAssassin Creed: Odyssey Pin
Super Lloyd27-May-20 1:16
Super Lloyd27-May-20 1:16 
GeneralRe: Assassin Creed: Odyssey Pin
OriginalGriff27-May-20 1:36
mveOriginalGriff27-May-20 1:36 
GeneralRe: Assassin Creed: Odyssey Pin
Super Lloyd27-May-20 2:49
Super Lloyd27-May-20 2:49 
GeneralRe: Assassin Creed: Odyssey Pin
theoldfool27-May-20 1:52
professionaltheoldfool27-May-20 1:52 
GeneralRe: Assassin Creed: Odyssey Pin
Super Lloyd27-May-20 2:51
Super Lloyd27-May-20 2:51 
GeneralGot this Cloud WiFi Camera... Pin
Sander Rossel27-May-20 0:43
professionalSander Rossel27-May-20 0:43 
GeneralRe: Got this Cloud WiFi Camera... Pin
OriginalGriff27-May-20 0:47
mveOriginalGriff27-May-20 0:47 
GeneralRe: Got this Cloud WiFi Camera... Pin
Sander Rossel27-May-20 0:54
professionalSander Rossel27-May-20 0:54 
AnswerRe: Got this Cloud WiFi Camera... Pin
lopatir27-May-20 0:57
lopatir27-May-20 0:57 
GeneralRe: Got this Cloud WiFi Camera... Pin
OriginalGriff27-May-20 1:03
mveOriginalGriff27-May-20 1:03 
GeneralRe: Got this Cloud WiFi Camera... Pin
Sander Rossel27-May-20 1:10
professionalSander Rossel27-May-20 1:10 
GeneralRe: Got this Cloud WiFi Camera... Pin
ZurdoDev27-May-20 1:15
professionalZurdoDev27-May-20 1:15 
JokeRe: Got this Cloud WiFi Camera... Pin
Richard Deeming27-May-20 1:21
mveRichard Deeming27-May-20 1:21 
GeneralRe: Got this Cloud WiFi Camera... Pin
Sander Rossel27-May-20 1:34
professionalSander Rossel27-May-20 1:34 
GeneralRe: Got this Cloud WiFi Camera... Pin
theoldfool27-May-20 1:48
professionaltheoldfool27-May-20 1:48 

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.