Organización de carpeta de un proyecto 2.0
Esto es un sencillo documento para compartir una forma que utilizo para organizar las carpetas de un proyecto en el cual se mezclan varias tecnologías (tipo Web2.0, que tiempo modernos !). Si bien es destinado al programador tambien esta involucrado el diseñador gráfico.
Metas
- Mejorar el rendimiento del desarrollo y mantenimiento de un proyecto.
- Optimizar el trabajo cooperativo.
- La organización de las carpetas del proyecto aporta una ayuda en la centralización de la información.
A que tipo de proyecto se aplica ?
Esta organización de carpeta esta destinada a los proyectos web que contiene varias tecnologías y con el fin que puedan convivir eficientemente. Este modelo se uso frecuentemente en proyecto con las siguientes combinaciones:
- PHP y Javascript - AJAX (Prototype, jQuery, Mootools, YUI, etc.).
- .Net 1.1 (si todavia se usa), Javascript - AJAX.
- Actionscript y XML.
- Java
Este modelo no se aplica a un proyecto .Net 2.
Carpetas fuentes y producción
En esta organización propuesta, existen 2 tipos de carpetas:
- Las carpetas de desarrollo.
- Las carpetas de producción (carpeta que están dispuesta a transportarse al ambiente de producción.
Las carpetas de desarrollos se identificarán con un guión bajo "_" como primera letra de nombre.

Nomenclatura de los archivos
Se utilizará nombre corto, descriptivo y sin espacios para los nombres de archivos.
Los archivos que se incrustan en varios documentos iran precedido del nombre "inc." (válido para Javascript, PHP, ASPX, JSP, CSS, AS2).
Los archivos que contenga la lógica de negocio no se le antepondrá el nombre "inc.".
En el caso de los archivos framework de un tercero tales como Prototype, jQuery, ExtJs, etc. se le mantendra el nombre y no se le aplicara esta organización.

Backup
Es buena practica realizar copia de seguridad frecuentemente. Para no interferir con un sistema de control de versión, la carpeta backup debera ir fuera de la carpeta del proyecto con el siguiente nombre {nombre proyecto}.backup.
![]()
Se comprimirá en un archivo ZIP o RAR toda sus estructura de directorios y se la nombrara de la siguiente forma: {nombre proyecto}.{año}{mes}{dia}.zip.

Tipo de carpetas
A continuación se enumera los distintos tipos de carpeta que suelen usarse en los proyectos.
- _psd
- _doc
- _fla
- _sql
- _font
- _src
- i
- down
Carpeta de diseño: _psd.
Carpeta en la cual el diseñador deposita los archivos para realizar la maqueta del proyecto, en general son archivo con extensión PSD, PSB, AI, PNG y/o PDF.
Carpeta de documentación: _doc.
Carpeta para almacenar la documentación referida al requerimiento del proyecto.
Carpeta Flash/Actionscript: _fla.
Carpeta en el cual se concentra los archivos fuentes de Flash.

Carpeta SQL: _sql.
Comprende los archivos SQL necesario para armar las tablas desde zero.
Carpeta tipografía: _font.
Carpeta mas relacionada con el diseño gráfico en la cual incluye las tipografías a utilizar en los desarrollos en Flash, o para generar los titulos en imagenes.
Carpeta de imagenes: i.
Almacenamiento de las imagenes
Carpeta de download: down.
Almacenamiento de los archivos de bajadas.
Carpeta de código fuente: _src.
Esta carpeta de código fuente tiene como funcionalidad de separar el código de los archivos de compilación, ya que podría ser sumamente inseguro subir el código fuente al ambiente de producción.
Con .Net 1.1 se almacena ahí los archivos necesario para generar la DLL del proyecto y tienen como extensión ".cs" (en C#), los archivos con extensión ".aspx" van en la raíz. Mismo caso para Java en el cual la extensión es ".java" y los archivos compilados son los ".class".
Ejemplo de un proyecto Java:

Ejemplo de un proyecto .Net1.1:
