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.
I read what you added and I still think the former. The other reason I like the former structure is that it's easier to separate by binary deliverable - not that you can't place those wherever you like, but, producing the deliverable requires that subfolder tree, rather than the entire tree.
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.
You probably have different developers for the language alternatives,
Nope, we are two of us. The one programing it for the last 15 years and me (got into the team over a year ago).
Member 7989122 wrote:
But I guess that your case is a single implementation, with different parts written in different languages
More or less. More info added in the OP.
Member 7989122 wrote:
I am curious about your splitting off "Test".
To be honest... I am not the "test" guy. I left the "high level" programming in the times of VC++ and MFC, stayed in automation (PLC, Robots and so) for many years, then some years more in other industrial aspects of programming and now came back to the "high level" field (just to see that the ecosystem has grown like a pest plant).
The whole concept of testing is something I still have to improve a lot, I was used to test the app by using it not by doing things on code.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
As I am playing Assassin Creed for the first time, I am learning of those who came before, our creators, the mighty Isus.
Now, I am in awe and want to learn their wisdom.
Brother Assassins, who have followed this path before, let me know if I am on the Way of enlightenment!?
Here is a simple ethical questionnaire that will judge my progress on the way of the Isu, with my answer after each question.
5 innocents are tied on a trolley's track A. And 1 innocent is tied on a trolley's track B.
The trolley is on its way to crush people on track A very soon. However you have the power to make it go to track B, hence killing only one person.
1. do nothing?
2. change its path to be on track B?
A: 1, Let the trolley continue! Life is pain, and killing 5 people is better at reducing misery!
A heinous crime has been committed and 2 suspects have been arrested, but it's not entirely sure if either is guilty. You are the judge condemning them.
1. kill them both?
2. arrest them both for 10 years?
3. let them both go?
A: 1, kill them both, just to be safe. The guilty will surely be punished this way!
Your friend is hopelessly depressed. His one true love doesn't love him back He wants to kill himself.
1. help him commit suicide to end his misery?
2. convince him there is more to live for?
A: 1, In death he will rest in peace. Achieving the ultimate goal of life!
Did I get that right?! Am I becoming as wise as the mighty Isus?
My new cat, Pink, ran away last week.
Haven't seen her in 8 days now, but someone ate all her food a few nights back.
She's probably near and coming home every few nights to eat.
To make sure, I bought a camera with night vision that can detect and follow motion, notify me of any motion and record up to a few days.
I'm aiming it directly at the cat hatch so I know when she's in.
Not a fan though, this kind of stuff is often badly secured and I wouldn't be surprised if the manufacturer is now following my every move.
I hope I get Pink back soon and I can unplug and box this camera again.
My cat flap is very basic, it has but one mode.
It also has to be open permanently (using tape, because I cannot remove the flap without disassembling the whole thing) because she doesn't know how a cat flap works yet.
In hindsight, it would've been worth it to pay a little extra for a good cat flap
She "escaped" when the door was open.
I let her, because she was meowing at the door every night.
Two weeks ago she went to explore, but something scared her and she came running back, so I thought it would be alright.
Last week she also started off exploring the garden and did not go too far, until she did
I doubt that they watch the cat door. More likely they would like to make it a Bot. I connected one to the Internet via a spare router and a PC with a separate public IP address and all was fine. I used a spare computer with an NVR program on it. All isolated. One day, the camera said "aha, I have an update". "OK" says I, "go for it". I watched the log in the router and within 15 minutes, the camera contacted Tanzania or some such place. Since I had carelessly used the same admin password in both the camera and the PC (this is theory), it logged in to the PC and created 2 new administrator accounts (this part is fact).
So, never trust an IoT device connected to the Internet unless you make sure it can't phone some home besides yours. Real firewalls are your friend.
I use firewalls with VPN servers, never port forward. I used to be young and dumb. Now, I am old and dumb.
If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.
If my owner called me Pink, I probably would, too...
I guess that if both you and your owner called you Pink, that could be considered your name, or at least nickname
In the old days of silver photography and photolabs making color prints for us, there was a well known story from Norways biggest lab about the strangely distorted colors in the photo of this cat: It looked more or less green no matter how they set the color adjustment when making the print. By going to the very end of the adjustment scale, they managed to make the cat "sort of" brownish.
But the customer complained. The very reason why they had taken this closeup photo of the cat, before cleaning him, was that he had jumped into this tray of green paint.