You are on page 1of 1

Concepto de API Conjunto de funciones y procedimientos (o mtodos, en P.O.O.

) que ofrece cierta biblioteca (SDK) para ser utilizado


por otro software como una capa de abstraccin
Uno de sus propsitos consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas. De esta
forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitndose el trabajo de programar
todo desde el principio
Sin embargo, las APIs de alto nivel generalmente pierden flexibilidad; por ejemplo, resulta mucho ms difcil en un navegador web
hacer girar texto alrededor de un punto con un contorno parpadeante que programarlo a bajo nivel. Al elegir usar una API se debe
llegar a un cierto equilibrio entre su potencia, simplicidad y prdida de flexibilidad
Ruby on Rails Es un framework de aplicaciones web de cdigo abierto escrito en el lenguaje de programacin Ruby. Utiliza el
paradigma de la arquitectura Modelo-Vista-Controlador (MVC)
Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos cdigo que con otros
frameworks y con un mnimo de configuracin Ruby permite la metaprogramacin, de la cual rails hace uso, lo que resulta en una
sintaxis que muchos usuarios encuentran legible
No te repitas significa que las definiciones deberan hacerse una sola vez. Dado que Ruby on Rails es un framework de pila completa,
los componentes estn integrados de manera que no hace falta establecer puentes entre ellos. Por ejemplo, en ActiveRecord, las
definiciones de las clases no necesitan especificar los nombres de las columnas; Ruby puede averiguarlos a partir de la propia base de
datos, de forma que definirlos tanto en el cdigo como en el programa sera redundante.
Convencin sobre configuracin significa que el programador slo necesita definir aquella configuracin que no es convencional. Por
ejemplo, si hay una clase Historia en el modelo, la tabla correspondiente de la base de datos es historias, pero si la tabla no sigue la
convencin (por ejemplo blogposts) debe ser especificada manualmente (set_table_name "blogposts). As, cuando se disea una
aplicacin partiendo de cero sin una base de datos preexistente, el seguir las convenciones de Rails significa usar menos cdigo (aunque
el comportamiento puede ser configurado si el sistema debe ser compatible con un sistema heredado anterior)
El patrn MVC (Flujo de control)
1. El usuario realiza una accin en la interfaz 2. El controlador trata el evento de entrada - Previamente se ha registrado
3. El controlador notifica al modelo la accin del usuario, lo que puede implicar un cambio del estado del modelo (si no es una mera
consulta) 4. Se genera una nueva vista. La vista toma los datos del modelo - El modelo no tiene conocimiento directo de la vista
5. La interfaz de usuario espera otra interaccin del usuario, que comenzar otro nuevo ciclo
Cmo funciona MVC? El controlador interpreta las entradas del usuario (tanto teclado como el ratn), enviado el mensaje de accin al
modelo y a la vista para que se proceda con los cambios que se consideren adecuados
Modelo, Vista, Controlador Modelo (Objetos de negocio) = Organizacin de los datos Vistas (Interfaz de usuario) = Interfaz de usuario y
presentacin Controlador (Control de flujo de trabajo de la App, lgica interna) = Manejan los eventos que se producen en las vistas
Alternativas a MVC Ruby Sinatra -> Es un framework para aplicaciones web de software libre y cdigo abierto, y lenguaje especfico del
dominio escrita en Ruby. Depende de Rack interfaz de servidor web. No sigue el tpico patrn modelo vista controlador que se ve en
otros frameworks, como Ruby on Rails. En su lugar, Sinatra se enfoca en la "rpida creacin de aplicaciones web en Ruby con el mnimo
esfuerzo. GitHub y Songbird usan Sinatra.
J2EE -> Una plataforma de programacin para desarrollar y ejecutar software de aplicaciones en lenguaje Java. Permite utilizar
arquitecturas de N capas distribuidas y se apoya ampliamente en componentes de software modulares ejecutndose sobre un servidor
de aplicaciones.
Elementos asociados a la capa de Modelo
Datos en memoria vs datos en disco? (IMDB o DBMS)
IMDB -> Maximizar el rendimiento, minimizar la latencia, emplea la RAM para almacenar los datos (lo normal es almacenar en HDD).
Usos comunes en: sistemas de comercializacin, telecomunicaciones, defensa, etc. Oracle Times Ten y Sybase ASE IMDB son ejemplos
de IMDB. Problemas: fallo de energa
Data Mapper asocia asignador independiente con cada modelo
- Idea: mantener la cartografa independiente de especial almacn de datos
Usado => trabaja con ms tipos de bases de datos
- Utilizado por Google App Engine