Good File Organization Suggestions for Developer

3k Views Asked by At

I am struggling a little with folder organization to organize the many projects that I work on. I work on OS X - right now I am using ~/Development/ as the root folder, and I have many types of projects. For example, I have my iPhone apps under ~/Development/Xcode

I develop in many languages, from PHP, to Ruby, to Python, to Objective-C. So, for example, I might have a couple of open-source apps based on PHP where I am using the Zend framework. Some of these projects are for clients, others are tests/experiments when learning a new language or general experimenting.

I am really interested in how other developers have organized code/projects and could pass along some advice to make it very easy to navigate through code/projects related to many languages and types of projects.

4

There are 4 best solutions below

1
On BEST ANSWER

I'm in a similar boat, and I have two folders in my home directory: Projects and Reference. I don't make any distinctions on the project's language. Code I'm working on goes in Projects and projects whose source I want to read go in Reference. This is useful because typing ~/PrTab and ~/RTab is quick on the command line and I empty my Downloads directory often.

I usually have aliases set up for working with projects on the command line. For example, my gerbils project has a Python virtual environment, so my g alias gets me going quickly from a new shell:

function g () {
    export PIP_RESPECT_VIRTUALENV=true
    cd ~/Projects/gerbils
    . ../bin/activate
}
0
On

My advice is to always organise at the project level first. Then modules that make sense. Languages only seem to come into play when a module has multiple implementations. In those cases I find the making the module it's own project works best.

$/Project/XXX


$/Project/YYY/Lang1
$/Project/YYY/Lang2

Then if XXX uses YYY then it's binding is the output of YYY not the source of YYY

0
On

I use a structure like this:

  • ~/projects
    • clients
      • client_a
        • project_b
      • client_c
    • personal
      • project_d
      • experiments
        • ruby
          • block_experiment
        • lua
    • opensource
      • repo_name
0
On

I'm just starting to explore these tools, but they're a good jumping point to find more (all free). I landed on these two, and am working with them now:

File Nexus and others are more just Windows Explorer replacements on steroids, but definitely have their use. I'm still looking for offline tools comparable to Evernote, Zoho, and such, that work with all my current files.

Like everything else with computers, "there's always a way, it's just a matter of how."