Ver Mensaje Individual
  #45 (permalink)  
Antiguo 03/12/2006, 22:58
Avatar de HIa
HIa
 
Fecha de Ingreso: noviembre-2002
Ubicación: Cartago
Mensajes: 121
Antigüedad: 21 años, 5 meses
Puntos: 0
Cita:
Iniciado por enriqueplace Ver Mensaje
La falta de conocimientos sobre POO y Principios de Diseño te hacen llegar a conclusiones muy disparatadas y carentes de fundamento.

Existen muchos principios de diseño que se basan en el "concepto de unidad" y este, puede ser representado en Java como un "paquete" o en .Net como un "namespace".

Principios de Diseño de Paquetes

  1. Principios relacionados con la cohesión de paquetes
    • Principio de Equivalencia Re-uso / Liberación
    • Principio de Re-uso Común
    • Principio de Cierre Común
  2. Principios relacionados con el acoplamiento entre paquetes
    • Principio de Dependencias Sin Ciclos
    • Principio de Dependencias Estables
    • Principio de Abstracciones Estables

En UML tienes la representación del "paquete" (se parece a una "carpeta") y a partir del diagrama, usando cualquier lenguaje que soporte medianamente POO deberías poder traducirlo en código.

PHP5 carece de esta "representación". No es menor si consideramos que los principios de diseño se originaron para evitar el "design smells" y posibilitar que los sistemas puedan ser reutilizados y mantenidos con el menor costo posible.

Sí, si te quedas al ras del piso todo es 2D, pero existe el mundo 3D, aunque no lo veas.
OK si, pero estamos hablando de agilidad de desarollo, y no complejidad que a la larga aunque ayude en lo que es limpieza de codigo no nos brinda rendimiendo extra alguno ni mucho menos, osea imaginate una aplicacion como wordpress, que cuenta con N capas de codigo y abstracciones para hacer el codigo bajo la app lo mas profesional posible eso en SI hace ese sistema de blogs pesado (sabido por muchos) ahora en que ayudan los namespaces en esa situacion?.. y los de falta de conocimiento de POO, mejor planteate antes de decir algo asi ya q tengo bastante tiempo trabajando bajo ,net .. pero aun asi no lo veo como una opcion de prioridad para PHP6

aunque bueno leyendo tu blog...y talvez pensandolo desde ese punto de vista talvez...

Cita:
No es lo mismo decir en nuestro código:

namespace dominio;
namespace persistencia;

Que tener que hacer referencia a cada uno de los archivos que vamos a utilizar de nuestro "paquete":

require_once 'persistencia/BaseDeDatos.class.php';
require_once 'dominio/Clientes.class.php';
require_once 'dominio/Acreedores.class.php';
require_once 'dominio/Factura.class.php';
require_once 'dominio/LineaFactura.class.php';

Lo más grave de todo es que nos debilita el diseño al no permitirnos cumplir con lo básico de los "principios del diseño orientado a objetos". Nosotros deberíamos reusar "paquetes" y no partes concretas de esos paquetes (en este caso, serían las clases).

Esperemos que se implemente en PHP6 y demos un nuevo gran paso.
aunq para lograr eso me parece que necesitariamos de los famosos configs que se unsa en ASPX, para definir ese tipo de cositas... para que cada clase sepa que contiene cada namespace entre otras cosas.... pero solo son conjeturas mias
__________________
Siempre hay algo nuevo que aprender

Última edición por HIa; 03/12/2006 a las 23:21