How to lay out a work space for software development:
Q: Why not use
/Users/yourNameHere/blah.blah – everything in the login directory?
A:Its messy, impractical hard to export.
Requirements for a software development workspace:
- Makes it easiest to do things the ‘right’ (you choose ‘right’) way.
- Source files and support stuff can easily be version-controlled: using a third party tool (Perforce, etc) or informal methods (numbered revisions in a “History” or “Rathole” or per-file subdirectory below the working directory, etc.
- Environment neutral: Easily exported to someone else’s environment (Some people don’t value this- I like to send out examples that arrive workable and sometimes I ask others for help. If you don’t need that, by all means have a big alias file and a bunch of stuff in /bash_profile… But do consider packaging all of that stuff so you, yourself, can move from system to system, OS to OS…)
- Scalability: One file, 100 files, 100,000 files (i.e, no bottom)
I’ve seen a bunch of somewhat thoughtlessly assembled setups at a variety of work environments. Back in the mists of time, at Lomac, in 1979, we didn’t have password protection on our 8 inch floppy environments (RT-11 for PDP-11/03, and CP/M for S-100 Z-80s). Easy stuff. Boot up and, on a build disk, there it all was. (WERE there subdirectories in RT-11 and CP/M?, Google knows…)
At Perforce, the Performance Lab used a nice organization of:
/Users/yourNameHere/- anything and everything, but no production stuff here.
Installed stuff, supported by two additions to PATH
This then became:
Leading with a named release allows Path to mix and match generically named 3rd party tools. Like Source Control Management…
and if you absolutely, positively, have to work in /Users…
What NOT to do:
The “namedRelease_*” paths looks unnecessary, up to the time you need to maintain two parallel developments. You can keep one in /Releases/usualTopLevel/… and one in /Users/yourNameHere/usualTopLevel but its all too easy to get to:
and having to hand edit these irregular paths here, there and everywhere. Ask me how I know. 🙂
And what I plan to do here at home:
to start with. Its pretty light weight. just took a few minutes to set up.