Estoy mostrando como organizo mis archivos ahora, dando un porque a cada cosa, obviamente que no es el orden ideal y que hay falencias, por eso me gustaria que cada uno de su opinion, muestre como ordena las cosas para poder ver diferentes opciones, comparar y luego adoptarlas para trabajar mejor.
Aclaciones:
Mi perfil es de programador, no de diseñador.
Se debe maquetar con xhtml + css valido.
He aqui el orden de las carpetas:
public_html
------> css
------> images
------> js
------> mmedia
------> config
------> clases
------> ------> datos
------> ------> negocios
------> ------> usuarios
Algunas carpetas se sobreentiende el contenido, pero es mejor que tengan una subdivicion, algun diseñador pueda dar una ayuda sobre la carpeta images y css.
js: Aqui hiran todos los javascript
mmedia: Aqui hiran todos los archivos que son multimedia, por lo general swf
config: Aqui van las configuracion en general, tambien los mensajes que se mandan en caso de error, nombres de botones, y esas cosas que el "cliente" desea cambiar.
Desde el punto de vista de programacion, la idea es el siguiente, separar una aplicacion web en 2 partes grandes partes, una donde trabaja el programador, y otra donde trabaja el programador en conjunto con el diseñador; cada parte estara divida en 2.
Parte 1: Datos
La capeta es clases > datos
Esto es puramente tarea de un programador, aqui estaran las clases necesarias para la conecion a la db mas no asi la configuracion (que estara en la carpeta config). Todo el trabajo con las base de datos (conecion, ejecutar consultas, devolver valores, etc) se encontrara en esta carpeta. La idea es que si tenemos un motor de base de datos, con cambiar las clases de esta carpeta sea suficiente para trabajar en otro motor de base de datos, sin tener que modificar algo de las demas clases.
Parte 2: Negocios
La capeta es clases > negocios
Esta segunda parte es exclusiva de los programadores, aqui se estableceran todas las reglas de negocios propias de la aplicacion o sistema, tambien realizara las verificaciones pertinentes con las base de datos (que un valor no se repita, etc), tambien es la parte encargada de realizar la consulta sql que se va ejecutar en la base de datos y decide si se usan o no transacciones.
Parte 3: Usuario
La capeta es clases > usuario
En esta parte trabajan junto el programador con el diseñador. Aqui se encontran todas las validaciones de lo que el usuario ingresa (letras, numeros, caracteres validos, etc), tambien es la encargada de recibir los formularios y enviarlos a la parte de negocios, muestra listados, muestra formularios, etc.
Parte 4:
La capeta es la carpeta raiz, en mi caso public_html
Esta parte es casi exclusiva del diseñador, obviamente como su nombre lo indica, se encontrara todo el XHTML que vera el usuario y se incluirá la menor cantidad posible de código de lenguaje de servidor. La idea es dejar el XHTML lo mas limpio de código posible.
La parte 3 y 4 puede ser confuso de ver, así que voy a dar un pequeño ejemplo.
Mostar un formulario de alta.
Para mostrar un formulario de este tipo, estamos tentados a pensar en dejarselo encargado a la parte 4, pero yo prefiero que este en la parte 3 por varios motivos.
Comprension del codigo: Si bien el codigo es XHTML, hay cosas que debe definir el programador (nombres, etc) y es preferible no dejar esa tarea a los diseñadores xq' no es su tarea.
Claridad del codigo: En la capa 4 se puede poner algo como
Código :
<?php $obj->armar_formulario() ?>y listo, tanto el diseñador como el programador saben que ahi hay un formulario, al diseñador le sirve para maquetar y diseñar y al programador le sirve para tener control del formulario.
Mostar un formulario de modificacion.
Se sigue el mismo razonamiento que con el formulario anterior, aca con mas razon ya que en los inputs hay que poner datos.
En ambos casos, cuando se recibe el formulario para procesar se puede hacer algo como
Código :
<?php $obj->trabaja($_POST); ?>y con eso podemos enviar el formulario junto con sus datos de la parte 4 a la parte 3, para que el programador lo sepa trabajar.
Lo bueno de esto, es que si el programador tiene que modificar algo del formulario no necesita al diseñador para que coloque las cosas en el xhtml, y si el diseñador tiene que cambiar algo del xhtml, no se debe preocupar por otras cosas.
Bueno ese es mi orden que tengo actualmente. Opiniones, comentarios y demases, ya saben que hacer.