Mostrando entradas con la etiqueta ideas. Mostrar todas las entradas
Mostrando entradas con la etiqueta ideas. Mostrar todas las entradas

viernes, 17 de junio de 2011

Ideas para mejorar el framework

   
En esta página de la wiki, dejé algunas ideas para mejorar el framework, su usabilidad y funcionalidad: http://code.google.com/p/yupp/wiki/IdeasDeMejoras

Me gustaría hacer una evaluación de las cosas que más les gustaría que el framework incluya, a modo de "lluvia de ideas", para luego poder elegir las más interesantes y poder implementarlas como parte del framework.

Lo que más valor puede agregar en este momento al framework, creo que es la "arquitectura de plugins" (descrita en el link previo). La idea es poder extender el framework indefinidamente, pero de forma controlada y gestionable, mediante "plugins" o "agregados". Por ejemplo, en el Yupp Connect que hicimos hace pocos días, hablamos de poder contar con un "módulo" de gestión de usuarios y permisos, que cualquier aplicación pudiera usar. Este es un claro ejemplo de lo que llamo "plugin": algo que no es parte del core o núcleo del framework, pero que tampoco es una aplicación, sino que es algo que está en el medio y que las aplicaciones pueden usar.


¿Cómo seguimos?
  1. Lee las "ideas de mejoras" que hay publicadas en la wiki, comenta al respecto en la misma wiki o respondiendo a este hilo. Los comentarios se convertirán en mejoras a las ideas propuestas. 
  2. Proponé nuevas ideas para extender y mejorar el framework respondiendo a este hilo de discusión. Todas las ideas serán tomadas en cuenta y debatidas para lograr especificarlas lo más posible, luego haremos una votación en la comunidad para detectar las ideas más útiles o novedosas. Estas serán en las que nos concentraremos para su desarrollo.
  3. Si tienes algún desarrollo ya hecho, que pueda servir para integrar con el framework, también puedes proponerlo, y entre todos los podemos evaluar. Lo que se debe considerar en este caso, es que el dueño del código debe dar soporte al mismo y documentación, además deberá ayudar en la integración con el framework. Esto es para mantener el nivel del framework y no integrar código que no tiene documentación y al que nadie puede dar soporte.

¡Espero sus comentarios e ideas!
  
 

sábado, 5 de diciembre de 2009

ORM de nivel enterprise

Si bien nos falta recorrer un largo camino vamos hacia ese objetivo: llegar a un ORM de nivel "enterprise". YORM, el ORM de Yupp Framework hoy está soportando las siguientes características:

  • Mapeo de clases con atributos de diversos tipos (TEXT, DATE, BOOLEAN, INT, FLOAT, entre otros)
  • Mapeo de estructuras de herencia en 2 sabores: cuando la clase A hereda de la clase B se puede optar por "mapeo de herencia en tabla única", entonces A y B se mapean a la misma tabla, o por "mapeo de herencia de múltiple tabla" donde A y B se mapean a distintas tablas, cualquiera de las opciones es transparente para el programador.
  • Mapeo de relaciones entre clases: estamos soportando relaciones unidireccionales y bidireccionales con cardinalidades 1-1, 1-N y N-N.
  • Las relaciones múltiples pueden ser de 3 tipos: colecciones, listas o conjuntos. Las colecciones pueden tener elementos repetidos y desordenados, las listas tienen elementos ordenados, y los conjuntos no tienen repetidos.
  • Estamos soportando 3 bases de datos: MySQL, SQLite y el último agregado PosgreSQL.
  • Podemos definir restricciones sobre los datos y esas restricciones se verifican antes de ingresar cualquier dato a la base.
  • Salvado en cascada: simplifica el código PHP al salvar en la base una estructura compleja de clases relacionadas a partir de la invocación al método save() en la clase principal.
  • Carga perezosa: cuando se carga una clase desde la base no se cargan sus clases asociadas, las mismas son cargadas una vez que son referenciadas, o sea que si no se usan, no se cargan, ahorrando tiempo.
  • Creación automática del esquema de en la base de datos: crea todas las tablas necesarias haciendo un clic.
Qué esperamos para el futuro en ORM:
  • Soporte para más bases de datos: Oracle, SQLServer, Access, etc.
  • Soporte para persistencia de colecciones de valores simples (Strings, Integers, Dates, etc).
  • Soporte para transacciones y rollback.
  • Capacidad de especificar los nombres de las columnas donde se guardan los campos de las clases.
  • muchas otras características...
¡Aceptamos sugerencias!
-

sábado, 1 de noviembre de 2008

Nuevas ideas para Yupp PHP Framework v0.1.6

Ya empezamos a trabajar en la próxima versión del framework. Estuvimos pensando en varios temas para hacer las tareas más sencillas para quienes recién empiezan a utilizar el framework, algunas son:
  • Bootstrap: La idea es tener por cada componente y script de bootstrap. Un bootstrap es un código que se corre previamente a la operación del sistema, básicamente sirve para ingresar información a la base de datos, información que el componente necesita precargada para su correcto funcionamiento.
  • Modos de ejecución: Esta idea ya está vista en varios frameworks y no nos podíamos quedar atrás. Se tendrían los tres modos de ejecución clásicos: development (desarrollo), testing (test) y production (producción), y posiblemente agreguemos un cuarto modo que podría ser algo como de administración y configuración.
  • Interfaz de generación de tablas en la base de datos: una interfaz simple donde se pueda ver que tablas están creadas y cuales no, y poder crear desde ahí las tablas que falten, y también borrar las que ya hay y generarlas de nuevo. Esto puede ser útil en modo "development" donde es necesario o útil a veces, empezar con una tabla vacía y si hacemos cambios al modelo, poder regenerar la tabla y que esos cambios se vean plasmados en la base de datos. La idea es de a poquito ir tendiendo a un generador automático de bases de datos, que pueda no solo generar (ya hay un generador automático que solo genera), si no ver cambios y actualizar la base sin modificar los datos, o hacerlo lo suficientemente inteligente como para que también pueda migrar datos de una tabla a otra versión más nueva de la misma tabla.
Estas son algunas ideas que intentaremos tener implementadas para Yupp PHP Framework v0.1.6, más las tareas de la hoja de ruta para llegar a dicha versión:
  • TICKET #38: terminar las funcionalidades para inspeccionar la base de datos.
  • Agregar interfaz para generar las tablas de la base de datos.
  • Implementar helpers para formularios y formularios ajax.
  • Implementar custom validators para validación automática de información.