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