Herramientas ORM-Object Relational Mapping

A falta de una buena foto del puente de la presa del infiernillo, colocamos aqui una foto del emblematico Golden Gate.

San Francisco Golden Gate
San Francisco Golden Gate

Object Relational Mapping (ORM) es la herramienta que nos sirve para transformar representaciones de datos de los Sistemas de Bases de Datos Relacionales, a representaciones (Modelos) de objetos. Dado a que los RDBMS (Realational Data Base Management Systems) carecen de la fexibilidad para representar datos no escalares, como lo son arreglos, la existencia de un ORM es fundamental para el desarrollo de sistemas de software robustos y escalables.

Las herramientas ORM pues, actuan como un puente que conecta las ventajas de los RDBMS con la belleza de la representacion de estos en un lengujae Orientado a Objetos, o, dicho en otras palabras, nos lleva de la base de datos al lenguaje de programación.

El Podcast

Ventajas de los ORM

  • Ayudan a reducir el tiempo de desarrollo de software.
  • Permiten la produccion de mejor codigo.
  • No hay necesidad de saber SQL
  • Incentivan la portabilidad y escalabilidad de los programas de software.
  • Independencia de la Base de Datos

Desventajas

  • El desempeño esta ligado a la eficiencia del ORM.

Recomendaciones

¿Donde queremos estar? cuano hablamos del uso de ORMs, recomendamos que se tome en cuenta que siempre existiran exepciones, donde la latencia agregada por la libreria o framework al desempeño general del software. Por tal motivo debemos escoger una libreria o framework que nos facilite modos alternativos de acceder a datos.

Vinculos relacionados

Producido por: Iaax Page y Cesar Reyes, para RockDeveloper.com

Si te gusto este capitulo. Recuerda escuchar la serie sobre Extreme Programming en Rock Developer.

Extreme Programming Parte 3 de 3

Extreme programming parte 3 de 3
Extreme programming parte 3 de 3

Esta es la ultima entrega en nuestra serie de programacion extrema. Esperamos hayan disfrutado el contenido y sigan regresando pora mas sobre desarrollo de software en RockDeveloper, el podcast.

Programacion Extrema Parte 3 de 3

Para saber mas sobre programacion extrema no te olvides de visitar

XP Org

Y si no has escuchado los podcast anteriores de la serie, hazlo ahora en

Programacion Extrema Parte 1 de 3 y Programacion Extrema Parte 2 de 3

El podcast es producido por

Iaax Page y Cesar Reyes

Ruby On Rails

Cuello Ruby
Cuello Ruby

Me encuentro desarrollando un proyecto de Bolsa de Trabajo para la comunidad de Rock Developer. Alex Gomez y yo hemos tenido algunas charlas sobre que lenguaje y framework utilizar para el desarrollo de proyectos comunes. El se inclina por PHP y ZendFramework, yo… Prefiero estar alejado de PHP. Así pues empece ayer a estudiar Ruby y Rails, y decidí hacer la beta 1 de la bolsa de trabajo de Rock Developer en Rails.

Hasta ahora. Ruby parece ser mas poderoso que Rails y creo que tiene muchos años de futuro en el desarrollo de software, es pues algo que llego para quedarse.

El desarrollo de software ha venido creciendo a pasos agigantados, hay muchos esfuerzos de millones de personas por desarrollar las mejores tecnologías que provean no solo infraestructuras robustas, sino también agilidad en el desarrollo. RAD (Rapid Application Development) o Desarrollo Rapido de Aplicaciones, ha sido una de las áreas de mayor atención.

Pero, ¿Que determina la capacidad de hacer RAD?

Basicamente la capacidad de apoyarse en Frameworks para lenguajes de programación dinamicos como Ruby y Rails.

Ruby: Es un lenguaje de programación dinámico (Un lenguaje de programacíon dinámico es aquel lenguaje que te permite extender funcionalidad en tiempo de ejecución. Hablaremos mas sobre lenguajes dinamicos en otro artículo) creado en Japón, donde es muy usado y tiene una base de admiradores bastante grande. Algo sorprendente y grato es que la comunidad detras de Ruby es mas colaborativa y menos segmentada que en otros lenguajes. Quiza debido a que su popularización vino con Rails. Un Framework para habilitar RAD en ruby.

Rails, nos brinda una serie de scripts que nos permiten generar codigo para las tareas mas comunes de nuestras aplicaciones. Despues de instalar Ruby y Rails en tu equipo, usando NetBeans puedes virtualmente desarrollar una aplicación para administración de catalogos en una forma muy sencilla. Mucha gente con un marco teorico de Clipper y DataBase Driven Development puede creer que ha encontrado el lugar perfecto, sinembargo hay algunas desventajas en el modelo de Rails. Aunque la integración del ORM (Active Record) y su generador de codigo (Scaffold) estan hechas en una forma muy compacta, Rails presenta detalles complejos a la hora de relacionar entidades.

Es cierto. Si leemos los manuales de Ruby, nos encontraremos con documentación que dice que Ruby esta orientado a permitir a los desarrolladores de software usar un solo lenguaje y olvidarse de pensar en bases de datos y archivos de configuración XML. Esto es pues, estan concientes de sus limitaciones.

Claro esta, que Ruby y Rails son extendibles y modificables debido a que son Open Source, ademas el manejo de rutas y la capacidad de diseñar basado en templates hacen de Ruby on Rails una gran herramienta. Eso sin contar la gran comunidad afuera, soportando y apoyando el desarrollo, la penetración que tiene en el mercado de IDE’s es también considerable.

Ruby on Rails hace un trabajo decente para apoyarnos en RAD. Sin embargo, para poder realmente sentir un nivel de poder de desarrollo maximo deberemos invertir muchas horas en el framework.

Es, excelente para desarrollar aplicaciones de nivel medio. Applicaciones de tipo empresarial o con requerimientos mas especificos en la DB, pueden pues pasarlo por alto. A menos claro que deseen desarrollar todo su front en Ruby on Rails y sus prcoesos criticos en Java o algo igual de robusto.

RAD no es solo un gran lenguaje como Ruby y un buen Framework como Rails. Pero es una gran promesa, si la gente detras de Rails puede desarrollar una versión que entre otras cosas cumpla las demandas del Sr. Joel Spolski (Joel Spolski, en 2006 se encontro usando Ruby on Rails para desarrollar un sistema de seguimiento de fallas. Y tiene una opiniones que si bien pueden parecer duras, estan fundamentadas) podemos decir que su base de desarrolladores creceria mucho más, y más rapido.

Iaax Page

La arena del Desarrollo Web.

Pelea de Mike Tyson
La busqueda del mejor peleador en la arena

En una inesperada serie de eventos que me conducen hacia el mundo Indi, me encuentro desarrollando para Ruby on Rails, y para meter un poco de dinamismo y equilibrio al blog, dado a que hablamos mucho de Java (Eso de hablar mucho de Java no va a cambiar, pero ya hablaremos de mas lenguajes de programación), he decidido, instalar probar y desarrollar una misma aplicación, con tareas basicas, en 5 Lenguajes con sus frameworks más populares.

Los competidores

  1. Lenguaje Ruby usando Rails
  2. Lenguaje Java usando Forza Framework
  3. Lenguaje Python usando Django
  4. Lenguaje C# usando MVC
  5. Lenguaje PHP usando…. No se que framework vamos a usar aquí

Las pruebas

  • Facilidad de instalación.
  • Soporte de IDE’s
  • Aporte de la comunidad
  • Pruebas de Estres
  • Servicios de persistencia de datos
  • Dependencia del Entorno
  • Licencia
  • Flexibilidad del Framework

En este momento he terminado de instalar Ruby on Rails, y estoy desarrollando la primera aplicación, la cual sera replicada en los demas lenguajes y frameworks.

Para el gusto de pocos, estoy usando una MacBook Black con dos gigas de memoria, algo vieja en verdad, el hecho es que la mayoria de las instalaciones aqui se hacen en entorno de consola, al menos para los lenguajes de programación. Ides como RubyMine y NetBeans ya han superado esos problemas. Así que cuando decimos facilidad de instalación nos referimos a ambiente consola y no ambiente Windows.

Saludos,

Iaax Page

El mito del programador Genio. Google IO

Me encanto esta charla. Procura un acercamiento al desarrollo de software y manejo de proyectos que me recuerda las practicas de programacion extrema, de las cuales hemos estado hablando en el podcast.

Aunque Brian Fitzpatrick y Ben Collins-Sussman no hacen mucha programacion en parejas, sino mas bien Revisiones de Codigo, ellos saben que es muy importante para la salud de un proyecto de software, el tener mas de un par de ojos en el codigo que se libera a produccion. Las mensiones sobre que el los erroes suelen suceder y la iteracion rapida tambien estan relacionadas con el mundo de la programacion extrema.

Algo que es cierto y que mencionan al final del video, es que al practicar el desarrollo en parejas uno debe procurar conocer muy bien a su contraparte, estar abierto a la retroalimentacion y ser tolerante con los comentarios del otro. Ya que de esto depende en gran medida el exito de esta practica.

La mayoria de los desarrolladores de software aman desarrollar por si mismos, pero recordemos que siempre debemos incentivar la practica de la propiedad comun del codigo. (Community Code Ownership) Para ello, las revisiones de codigo y la programacion en pares son muy buenas alternativas.

Podemos aprender mucho de los puntos de vista sobre como abordar la colaboracion en proyectos de Software abierto que estos personajes nos comparten en este video de Google,

Espero que les guste tanto como a mi, aqui les dejo el vinculo al post original en google code

Saludos

Iaax Page.

Ahora estamos tambien en Facebook

La pagina en facebook
La pagina en facebook

Si eres un usuario de facebook, te encantara saber que ya contamos con la pgina de rockdeveloper en facebook done podras interactuar con nosotros subir fotografias y decirnos cuanto se te venga en mente, en frente de ciento de miles de personas. A demas de recibir actualizaciones automaticas cada vez que tengamos algo nuevo en el sitio.

Asi que no lo pienses mas y visitanos en Rock Developer Facebook, conviertete en fan e interactua.

Extreme Programming Parte 2 de 3

Moto Cross Super Man
Moto Cross Super Man

Día de elecciones en México, prometí no meterme en politica en este espacio, así que no lo haré.

Solo dire que hubo un monton de cosas gratis para los que si votamos. El problema es que me acabo de enterar. 😀

Lo prometido es deuda, y dejamos con ustedes la segunda entrega de la serie Extreme Programming.

XP Parte 2

Empezamos haciendo un brevario del articulo anterior: Extreme Programming Parte 1 de 3, y entonces partimos hacia la definición de Martin Fowler,  Continous Integration (Integración Continua), para despues seguir con mas de XP. Esperamos que les guste.

Y si te sientes con flojera de ir al post anterior. Aqui te dejamos los vinculos del show!

Presentado por

Cesar ReyesIaax Page para RockDeveloper.com

Actualizacion: La ultima entrega de la serie esta aqui en Extreme Programming Parte 3