Gatear y luego Caminar (Entendiendo el MVC) parte II

miércoles, 30 de mayo de 2007

Bueno un saludo antes de comenzar, hola gentita latina; en la primera parte de "Entendiendo el MVC", el Modelo Vista Controlador para los que aun no se ubiquen con las siglas, pues viene a ser el punto de partida de donde deberíamos comenzar a hablar; lo diré de este modo: si entiendes el MVC y con mas razón el MVC del Rails pues déjame decirte q ya estas en muy muy buen camino de hacer aplicaciones alucinantes…

Como ya lo comente en un anterior post, pues esto del MVC no es tan nuevo q digamos, ya hubo implementaciones al respecto, un gran ejemplo de esto es Java y sus famosas librerías JavaSwing, (cuando no Java, verdad?).

El Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa todo nuestra aplicación en tres componentes distintos:

El patrón MVC se ve frecuentemente en aplicaciones web y esto hablando ya sobre Rails esta formado por tres componentes como ya lo mencionamos:

  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un número de unidades negativo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o portes en un carrito de la compra.
  • Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario, como estamos hablando de sitios Web, pues se trataría de las plantillas hechas en código HTML.
  • Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista.

En otras palabras lo diré así:

  • Si quieres mostrar información ya sea estática o dinámica en tu sitio web, pues lo haces en la VISTA.
  • Para jalar la data de la Base de Datos (cualquiera), y realizar toda una capa q controla esto, desde validación de enlaces, restricciones, cumplimiento de llenado de algunos datos nulos, etc.; pues para esto utilizas un MODELO.

  • Se dan cuenta q esta faltando algo… exactamente entre la VISTA y el MODELO, quien es el entre el manejador q pasa todo lo q traes de la BD y lo muestra bonito como para q la VISTA lo único q haga sea mostrarlo???, claro, ese es, el CONTROLADOR, su trabajo es hacer eso, manejar las peticiones del usuario y según eso, sacar o introducir datos de la BD (si es necesario), o simplemente modificar la plantilla q maneja la VISTA y solo mostrarlo.

Creo q con la siguiente imagen se entenderá mejor, es el flujo q información q se da cuando un usuario desea algo de tu aplicación web.

Explicaremos un poco:

  1. el usuario pide algo por ejemplo de la BD, por ejemplo listar todos los productos q hay en este momento en almacén, vale? (paso 1 en el grafico)
  2. Quien recibe esto es el controlador (por eso también su nombre, no?), si solo hubiese q modificar algo en la plantilla pues mandaría una orden a la Vista para q modificase esto (paso 3 en el grafico).
  3. Pero como en este caso debemos de traer algo de la BD, el controlador ordena a el Modelo q traiga dicha información, (ojo, el controlador no sabe como hacer eso, es por eso q delega a alguien mas para q lo haga, en este caso al Modelo). (paso 2 en el grafico)
  4. Una vez q tenemos ya en memoria cargada toda la información q nos pidieron y debemos mostrar, pues lo q hace el Controlador es pedir estos datos al modelo para posteriormente ser enviados a la Vista para q los muestre de una manera mas entendible para el Usuario. (paso 3 en el grafico).
  5. El paso 4 del grafico es simplemente mandar toda esta información ya dibujada con HTML al navegador del usuario.

Creo q por hoy se entendió, no?. Espero q les haya servido, para más información visiten los siguientes links:

Gatear y luego Caminar (entendiendo el MVC) parte I

jueves, 24 de mayo de 2007

Gatear y luego caminar dice el titulo del post, aunque como van las cosas parece que iremos de gatear a correr, pues la tecnologia que esta apareciendo nos permite hacer este cambio radical.

Ruby on rails realmente abrio una brecha entre lo tradicional (como por ejm: RUP y lo del Carbajal - un docente de mi universidad -) y lo Agil (como por ejm: TestDriverDeveloper, ActiveRecord, Modelo Vista Controlador), y aunque ya otros han tratado de hacer de lo AGIL, su trabajo, pues nadie lo a conseguido, debido a muchos factores siendo uno de los mas trascendestes la misma sociedad informatica. Les contare que aqui (Cusco-Perú), mi sociedad, la gente esta mas metida en el desarrollo tradicional, en el que debes de hacer tus casitos de uso, y asi documentarte arto arto arto, y hasta quizas perder mucho tiempo (claro que eso no es tan malo como suena o como lo digo yo), pero seamos realistas, las empresas lo que quieren es algo bueno, rapido, y quizas barato, verdad?.

Alguna vez lei por alli, q no se puede hacer clic en papeles y tampoco en diagramas, necesitamos hacer algo rapido, verlo en nuestro monitor, poder hacerle clic, y asi visualizar mas rapido lo q necitamos, verdad?...

Que harian todas esas personas que asi como yo buscan cubrir sus necesidades de desarrollo a algo mas rapido, y ahora que haras tú, si te digo que hay un framework que nos hace todo este trabajo, ya lo adivinaste?, claro, es el Rails y Ruby.

Despues del jalon de orejas que creo que les dí, pues solo me queda decirles que no se cierren en una idea, habran su mente, habran los ojos, el Rails es un claro ejemplo de esto, el ActiveRecord (que a propo, tambien hay para .NET, para los C#adictos) tambien le puede dar vuelta al famoso ADO.NET, no les pido que cambien, solo que lo vean, pruebenlo y luego juzguen. Vale?

Para ir metiendonos un poquito mas en este tema tan interesante, mostrare un videito del funcionamiento del RoR (RubyOnRails), el ya comentando MVC.



En realidad el MVC (Modelo Vista Controlador) no es tan nuevo que digamos, ni tampoco el Rails fue el primero en lanzarlo al mercado, en realidad fue una idea (solo teorica) q se dio alla en los años 70s a 80s, por un tipo q ni recuerdo su nombre. Java (cuando no) fue tambien uno de los primeros en implentar esto en sus famosas librerias JavaSwing, al parecer este tema esta muy interesante, quieres seguir leyendo al respecto?, saber como, cuando, donde y quienes implementan todo esto, pues entra aqui o AQUI o Aqui

Ver es creer, checkalo tu mismo

Desarrollo de aplicaciones rapidas?, muy rapidas?, 15 minutos o quizas menos?... No esperes mas; ver es creer, cierto?

Aqui lo tienes.. 3..... 2...... 1...... Accion...


No lo distingues muy bien? checkalo en pantalla gigante AQUI

Es hora de partir, todos abordo

martes, 22 de mayo de 2007

Hola gente latina, después de mucho tiempo decidí que volveré a escribir temas relacionados a esto q me apasiona tanto como es mi carrera… y la de Uds., también claro esta, LA INFORMATICA.

Para esta ocasión encontré por allí navegando algo q parece q todo el mundo le esta echando un ojo, es el famoso ("en tan corto tiempo ya es famoso") Ruby on Rails.

Y como para comenzar a entender q es todo esto... lean estito… ahí los dejo…

Personalmente una de las mejores introducciones a Rails hecha por las personas de la empresa "The Cocktail"



De seguro q tienen aun mas dudas q al inicio, pues entonces os invito a q revisen estos links:


Y bueno nunca debe faltar el gran lenguaje q viene por detras de toda esta ola: Ruby, de nuevo por TheCocktail, sigan asi muchachos...

Despues de haber visto quereis jugar con ruby, pero no lo tienen en casa... esto no es problema... practiquen Aqui