Download - Examen de Sofware 3 Parcial
Concepto de API Conjunto de funciones y procedimientos (o métodos, en P.O.O.) que ofrece cierta biblioteca (SDK) para ser utilizado
por otro software como una capa de abstracción
Uno de sus propósitos 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, evitándose el trabajo de programar
todo desde el principio
Sin embargo, las APIs de alto nivel generalmente pierden flexibilidad; por ejemplo, resulta mucho más difícil 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 pérdida de flexibilidad
Ruby on Rails Es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación 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 código que con otros
frameworks y con un mínimo de configuración Ruby permite la metaprogramación, de la cual rails hace uso, lo que resulta en una
sintaxis que muchos usuarios encuentran legible
No te repitas significa que las definiciones deberían hacerse una sola vez. Dado que Ruby on Rails es un framework de pila completa,
los componentes están 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 código como en el programa sería redundante.
Convención sobre configuración significa que el programador sólo necesita definir aquella configuración 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
convención (por ejemplo blogposts) debe ser especificada manualmente (set_table_name "blogposts”). Así, cuando se diseña una
aplicación partiendo de cero sin una base de datos preexistente, el seguir las convenciones de Rails significa usar menos código (aunque
el comportamiento puede ser configurado si el sistema debe ser compatible con un sistema heredado anterior)
El patrón MVC (Flujo de control)
1. El usuario realiza una acción en la interfaz 2. El controlador trata el evento de entrada - Previamente se ha registrado
3. El controlador notifica al modelo la acción 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 interacción del usuario, que comenzará otro nuevo ciclo
¿Cómo funciona MVC? El controlador interpreta las entradas del usuario (tanto teclado como el ratón), enviado el mensaje de acción al
modelo y a la vista para que se proceda con los cambios que se consideren adecuados
Modelo, Vista, Controlador Modelo (Objetos de negocio) = Organización de los datos Vistas (Interfaz de usuario) = Interfaz de usuario y
presentación Controlador (Control de flujo de trabajo de la App, lógica 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 código abierto, y lenguaje específico del
dominio escrita en Ruby. Depende de Rack interfaz de servidor web. No sigue el típico patrón modelo vista controlador que se ve en
otros frameworks, como Ruby on Rails. En su lugar, Sinatra se enfoca en la "rápida creación de aplicaciones web en Ruby con el mínimo
esfuerzo. GitHub y Songbird usan Sinatra.
J2EE -> Una plataforma de programación 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 ejecutándose 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 comercialización, telecomunicaciones, defensa, etc. Oracle Times Ten y Sybase ASE IMDB son ejemplos
de IMDB. Problemas: fallo de energía
Data Mapper asocia asignador independiente con cada modelo - Idea: mantener la cartografía independiente de especial almacén de datos Usado => trabaja con más tipos de bases de datos - Utilizado por Google App Engine