Beruflich Dokumente
Kultur Dokumente
1. Que es Ruby
2. que es rails
Rails es un framework para el desarrollo de aplicaciones web, software libre por naturaleza, está
basado en el patrón de diseño Modelo Vista Controlador (MVC). Fue creado por David Heinemeier
Hansson, empleado de la empresa 37signals.
Fue liberado por primera vez al público en julio del 2004, y lo implemento en una aplicación
orientada a la administración de proyectos llamada Basecamp. Actualmente se unieron más
personas al desarrollo de Rails podemos visualizar aquí a los integrantes. Rails está basado en
estos principios de desarrollo:
3. Defina la arquitectura MVC, ayúdese con una gráfica y explique sus componentes
Modelo/Vista/Controlador
El Modelo: Es el objeto que representa los datos del programa. Maneja los datos y controla todas
sus transformaciones. El Modelo no tiene conocimiento específico de los Controladores o de las
Vistas, ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la
responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando
cambia el Modelo.
La Vista: Es el objeto que maneja la presentación visual de los datos representados por el Modelo.
Genera una representación visual del Modelo y muestra los datos al usuario. Interactúa con el
Modelo a través de una referencia al propio Modelo.
El Controlador: Es el objeto que proporciona significado a las órdenes del usuario, actuando sobre
los datos representados por el Modelo. Cuando se realiza algún cambio, entra en acción, bien sea
por cambios en la información del Modelo o por alteraciones de la Vista. Interactúa con el Modelo
a través de una referencia al propio Modelo.
5. Framework
Un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con
artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede
ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un
lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes
componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las entidades del
dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las
aplicaciones del dominio.
6. GEM
7. Clase
Una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de
ese tipo. El modelo describe el estado y el comportamiento que todos los objetos de la clase
comparten. Un objeto de una determinada clase se denomina una instancia de la clase. La clase
que contiene (y se utilizó para crear) esa instancia se puede considerar como del tipo de ese
objeto, por ejemplo, una instancia del objeto de la clase "Personas" sería del tipo "Personas".
Una clase por lo general representa un sustantivo, como una persona, lugar o (posiblemente
bastante abstracta) cosa - es el modelo de un concepto dentro de un programa de computadora.
Fundamentalmente, encapsula el estado y el comportamiento del concepto que representa.
Encapsula el estado a través de marcadores de datos llamados atributos (o variable miembro o
variables de instancia), encapsula el comportamiento a través de secciones de código reutilizables
llamados métodos.
La característica más destacable de un proyecto Rails es la división física de los archivos, para
fortalecer la división de sus funciones siguiendo el patrón Modelo-Vista-Controlador. Veamos los
directorios más empleados de los que componen esta estructura.
App
Esta carpeta contiene los archivos que forman el sitio, repartidos según sus características en los
subdirectorios controllers, helpers, models y views.
Models: la función principal de los modelos es la obtención de datos, almacenados en una base
de datos, un fichero, etc., y de controlar la integridad de estos datos.
Views: en una página web, las vistas son las distintas interfaces del usuario. A su vez, contiene
una carpeta denominada Layout. Aquí, están unos ficheros que incluyen, básicamente, el apartado
head de un archivo html. Después, por medio de bloques Ruby, se añade el cuerpo de las vistas
para conformar el fichero completo.
Controllers: guarda los archivos correspondientes a los controladores del sistema. Su trabajo
consiste en recibir eventos del usuario (envío de formulario, pulsación de un enlace), invocar al
modelo para recuperar los datos que necesita, y trasladarlos a la vista, para que los muestre.
Cuando se definen las acciones de un controlador, se debe crear una vista para cada una de estas
acciones. Cuando se invocan estos métodos, tras su ejecución, se muestra automáticamente la
vista correspondiente al método ejecutado. A su vez, si es necesario, se puede crear un modelo
para el controlador.
config
En esta carpeta, se almacenan los archivos de configuración del proyecto. Los archivos que
nosotros solemos modificar son routes.rb y database.yml. En el primero, es posible modificar el
controlador y su acción que se ejecutarán al acceder al sitio. En el otro, podemos modificar el
nombre de la base de datos asociada al proyecto.
db
Principalmente, esta carpeta incluye las migraciones, es decir, los archivos de creacion y edición de
la base de datos relacionada con el proyecto.
doc
Aquí se almacena la documentación del proyecto.
Los log
archivos guardados en este directorio son registros de la ejecución del sitio.
public
Este directorio tiene las imágenes que se muestran en las distintas vistas del proyecto, así como
las hojas de estilo empleadas.DEFINICION DE CONCEPTOS SOBRE RUBY ON RAIL
Debemos señalar que para seleccionar el modelo de una arquitectura, hay que partir del contexto
tecnológico y organizativo del momento y, que la arquitectura Cliente/Servidor requiere una
determinada especialización de cada uno de los diferentes componentes que la integran.
QUE ES UN CLIENTE
QUE ES UN SERVIDOR
Es cualquier recurso de cómputo dedicado a responder a los requerimientos del cliente. Los
servidores pueden estar conectados a los clientes a través de redes LANs o WANs, para proveer de
múltiples servicios a los clientes y ciudadanos tales como impresión, acceso a bases de datos, fax,
procesamiento de imágenes, etc.
Para configurar la conexión a la base de datos, rails pone a nuestra disposición el archivo
“database.yml” ubicado en config -> database.yml. Este archivo nos permite configurar la
conexión a tres bases de datos. Tres bases de datos para tres entornos: development (desarrollo),
test (prueba) y production (producción).
Es un paradigma para definir rutas en aplicaciones web. En base a REST, las aplicaciones de Rails
determinan qué parte de aplicación mostrar y cómo responder a las solicitudes del usuario.
El ORM es un componente de software que me permite trabajar con los datos persistidos como si
ellos fueran parte de una base de datos orientada a objetos (en este caso virtual). Debido a que lo
standard es trabajar con BD relacionales, se deben realizar operaciones que permitan transformar
un registro en objeto y viceversa. A esta funcionalidad se la llama Mapeo objeto-relacional (ORM).
Uno de los componentes ORM más utilizado (sino el más...) es el Hibernate, surgido del ambiente
Java y llevado al uso del framework .NET con la versión NHibernate
Para poder explicar el porqué de la existencia de esta tecnología, nada mejor que un ppt que
preparé para una clase sobre este tema a los alumnos del último año de TSSI, que les dejo
disponible a continuación.
17. Que es Active Record
Definición:
Es un objeto que representa una fila en una tabla de una base de datos, encapsula su acceso a la
base de datos y añade lógica de negocio.
Es la aproximación más obvia, poniendo el acceso a la base datos en el propio objeto de negocio.
De este modo es evidente como manipular la persistencia a través del mismo.
Explicación:
Gran parte de este patrón viene de un Domain Model y esto significa que las clases están muy
cercanas a la representación en la base de datos. Cada Active Record es responsable de sí mismo,
tanto en lo relacionado con persistencia como en su lógica de negocio.
• Construir una instancia de la clase desde una fila de un resultado de una consulta.
• Construir una nueva instancia para insertarlo posteriormente en la tabla.
• Un método estático para buscar.
• Actualización e inserción en la tabla.
• Getter y Setters o bien Propiedades.
• Implementará algunas piezas de la lógica de negocio.
Aunque no todos son totalmente necesarios, ni mucho menos. Sirva el caso del método estático
de búsqueda que los puedes extraer a otra clase, si así es necesario y te aclaras mejor, esto viene
dado por su acoplamiento a la base de datos relacional que habrá por detrás.
CSS, es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a
las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas
cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra,
fondos, colores...
CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada. En este
reportaje vamos a ver algunos de los efectos que se pueden crear con las CSS sin necesidad de
conocer la tecnología entera.
EL Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos
de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El
patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el
código que provee de datos dinámicos a la página, el modelo es el Sistema de Gestión de Base de
Datos y la Lógica de negocio y el controlador es el responsable de recibir los eventos de entrada
desde la vista.
19. que es jquery y para qué sirve
jQuery es un framework Javascript, pero quizás muchos de los lectores se preguntarán qué es un
framework. Pues es un producto que sirve como base para la programación avanzada de
aplicaciones, que aporta una serie de funciones o códigos para realizar tareas habituales. Por
decirlo de otra manera, framework son unas librerías de código que contienen procesos o rutinas
ya listos para usar. Los programadores utilizan los frameworks para no tener que desarrollar ellos
mismos las tareas más básicas, puesto que en el propio framework ya hay implementaciones que
están probadas, funcionan y no se necesitan volver a programar.
20. Defina los 3 entornos rails y para que se usa cada uno.
Hay muchas alternativas para trabajar con Ruby on Rails, tanto libres y gratuitas como de pago. A
continuación se listan las principales:
Aptana: Multiplataforma. Nació como plugins de eclipse para la edición y desarrollo web.
Actualmente puedes instalarlo como plugins o autónomo de forma independiente. Las últimas
versiones están muy bien integradas con Ruby on Rails. En este momento Aptana 3 está en una
versión BETA
Netbeans: Uno de los más usados, libre y totalmente gratuito. Viene muy bien integrado con
JRuby (lo cual es algo lógico pues es un programa de Sun).
TextMate: Sólo para Mac. Es el entorno más usado entre la comunidad Rails. Es pago pero su
potencia y forma de trabajo favorece la producción y desarrollo con Ruby on Rails.
Gmate: Un proyecto libre y gratuito para convertir Gedit -el editor de texto de escritorio Gnome
de linux- en un clon muy aproximado de Textmate. Esto se consigue instalando diferentes plugins,
temas y retocando algunas opciones. Al ser gratuito es una opción que está cogiendo muchos
adeptos hoy en día.
21. Como se llama el archivo donde se visualizan los errores
Para los no iniciados en Ruby on rails, las migraciones permiten establecer el esqueleto de una
base de datos, tablas y campos, al igual que hacemos con sentencias de SQL, sin utilizar
directamente SQL. Además Ruby on rails, nos permite tener un control de las versiones de
migraciones a ejecutar.
Una vez que hemos hecho rails proyecto (siendo proyecto el nombre del proyecto rails) y cd
proyecto (para colocarnos dentro del proyecto de rails recién creado) creamos nuestras
migraciones.
Comentar para recordar, un proyecto rails tiene tres tipos de entornos: desarrollo, pruebas y
producción. El entorno Rails llamado “desarrollo” vuelve a cargar las clases cada vez que llame a
una nueva acción, por lo que siempre tiene una copia actualizada de las clases incluyendo los
cambios más recientes. Mientras que en el entorno de producción carga las clases una vez.
Cuando se crea un nuevo proyecto rails, se crea un archivo database.yml, con los tres entornos
desarrollo, pruebas y producción, dicho archivo se encuentra dentro de la carpeta config.
development:
adapter: mysql
encoding: utf8
database: proyecto_development
username: root
password:
socket: /var/run/mysqld/mysqld.sock
Por defecto el nombre de la base de datos en cada uno de los entornos, es el del
proyecto_entorno, en este caso proyecto_development para el proyecto en desarrollo.
Para la realización, de la migración escribimos por consola Ruby script/generate migration nombre
migración, también se genera migraciones al crear los modelos de rails con Ruby script/generate
model nombre modelo.
Cada migración tiene un número ejemplo 001_create_nombremigracion.rb, dicho archivo
aparece en la carpeta “db”, que cuelga del proyecto principal.
Toda migración tiene un método “up” donde se hace un cambio, y un método “down”, donde se
deshace ese cambio. Si creo una tabla en “up”, la destruyo en el “down”, si añado un campo a la
tabla en el “up”, lo elimino en el “down”.
Para ejecutar una migración, es necesario escribir rake db:migrate, si tenemos cinco migraciones y
hacemos rake db:migrate se ejecutan las cinco. Si queremos volver a un estando anterior, a la
segunda migración eliminando las tres siguientes, solo tenemos que poner, rake db:migrate
VERSION = 2, si queremos eliminar todo lo realizado, bastaría con poner rake db:migrate
VERSION=0.
Versión 1
1
2
3 class CreateProjects < ActiveRecord::Migration
4 def self.up
5 create_table :projects do |t|
6 t.column :name, :string
7 end
8 end
9
10 def self.down
11 drop_table :projects
12 end
13 end
Versión 2.0
1 class CreateUsers < ActiveRecord::Migration
2 def self.up
3 create_table :users do |t|
4 t.string :nombre, :apellidos, :login, :email, :nombreblog, :fotografia
5 t.boolean :inactiva, :default => false
6 t.timestamps
7 end
8 end
9
10 def self.down
11 drop_table :users
12 end
13 end
En la versión dos, se pueden declarar varios campos de las tablas al mismo tiempo siempre que
sean del mismo tipo, con el ahorro de líneas de código que supone. Cambia la definición del tipo
de dato t.tipo : lista de campos.
Para los que recién comienzan en el mundo del diseño, el layout es un esquema de distribución de
los elementos dentro de nuestro diseño, el cual presentaremos al cliente para vender la idea y, a
partir de su aceptación, realizar el trabajo final en base a éste. En otras palabras, vendría a ser el
boceto que ofrecemos inicialmente.
Pero el tema pasa por como presentarlo. Para hacerlo de manera profesional, en el mismo
deberemos indicar imágenes y sus significados, textos, tipografías utilizadas, paleta cromática
(colores) y todos los elementos que creemos relevantes para la información hacia nuestro cliente.
Debemos venderle nuestro trabajo y explicar qué y cómo comunicará la idea.
Front-end y back-end son términos que se relacionan con el principio y el final de un proceso.
Estos términos adquieren una relevancia mayor en ciertas áreas particulares
29. Enuncie y explique brevemente metodologías de desarrollo una ágil y otra tradicional
Teniendo en cuenta la filosofía de desarrollo de las metodologías, aquellas con mayor énfasis en la
planificación y control del proyecto, en especificación precisa de requisitos y modelado, reciben el
apelativo de Metodologías Tradicionales o Pesadas. [27]
Estas metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de desarrollo
del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la
planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo
de desarrollo del producto software. Se centran especialmente en el control del proceso,
mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para
el modelado y documentación detallada [42]. Además, las metodologías tradicionales no se
adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja
en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.
• Iconix
Pero sin dudas adaptarse a la agitada sociedad actual implica ser “ágil”, es decir, tener la
capacidad de proveer respuestas rápidas y ser adaptables al cambio. Ambas cualidades siempre
han sido deseables, pero en el entorno de negocio actual resultan indispensables. Este
requerimiento de agilidad en las empresas, gobiernos y cualquier otra organización provoca que el
software también deba ser desarrollado de manera ágil.
Las necesidades de un cliente pueden sufrir cambios importantes del momento de contratación de
un software al momento de su entrega; y es mucho más importante satisfacer estas últimas que
las primeras. Esto requiere procesos de software diferentes que en lugar de rechazar los cambios
sean capaces de incorporarlos.
Los procesos ágiles son una buena elección cuando se trabaja con requisitos desconocidos o
variables. Si no existen requisitos estables, no existe una gran posibilidad de tener un diseño
estable y de seguir un proceso totalmente planificado, que no vaya a variar ni en tiempo ni en
dinero. En estas situaciones, un proceso adaptativo será mucho más efectivo que un proceso
predictivo. Por otra parte, los procesos de desarrollo adaptativos también facilitan la generación
rápida de prototipos y de versiones previos a la entrega final, lo cual agradará al cliente.
Las metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas
que puede que no curen todos los males pero harán la entrega del proyecto menos complicada y
más satisfactoria tanto para los clientes como para los equipos de entrega.
Entre las metodologías ágiles más destacadas hasta el momento se pueden nombrar:
• XP (Extreme Programming)
• Scrum
• Crystal Clear
• XBreed
• Extreme Modeling
(Plug-in) Programa que puede anexarse a otro para aumentar sus funcionalidades (generalmente
sin afectar otras funciones ni afectar la aplicación principal). No se trata de un parche ni de una
actualización, es un módulo aparte que se incluye opcionalmente en una aplicación.
El plugin crea una lista de tareas, notas, ideas, etc. desde el código de nuestra aplicación.
Lee todos los archivos .rb de nuestro proyecto buscando por las etiquetas aceptadas por el plugin
y crea las listas correspondientes.
Formato soportado
Instalación
Como se utiliza
En la vista que quiero insertar el menú que me lleva a las listas coloco: <%= todo_list %>
El plugin necesita Rails 1.2.0 o posterior para funcionar, si no lo tenemos instalado vamos a
necesitar el plugin engines.
32. Investigue las convenciones rails sobre sus objetos y construyan una entre todo el grupo
ADSI.
35. Ingrese por un browser a la aplicación que acaba de crear y poner a correr, copie el
pantallazo e insértelo en este documento
36. Explique los fundamentos de la web
El éxito de la web se basa en dos factores fundamentales: el protocolo HTTP y el lenguaje HTML. El
primero permite una implementación sencilla de un sistema de comunicaciones que permite
enviar cualquier fichero de forma fácil, simplificando el funcionamiento del servidor y
posibilitando que servidores poco potentes atiendan cientos o miles de peticiones y reduzcan de
este modo los costes de despliegue. El segundo, el lenguaje HTML, proporciona un mecanismo
sencillo y muy eficiente de creación de páginas enlazadas.
El protocolo HTTP
El protocolo HTTP (Hypertext Tranfer Protocol) es el protocolo principal de la World Wide Web. Es
un protocolo simple, orientado a conexión y sin estado. Está orientado a conexión porque emplea
para su funcionamiento un protocolo de comunicaciones (TCP, o Transport Control Protocol) de
modo conectado, que establece un canal de comunicaciones entre el cliente y el servidor, por el
cual pasan los bytes que constituyen los datos de la transferencia, en contraposición a los
protocolos denominados de datagrama (o no orientados a conexión) que dividen la serie de datos
en pequeños paquetes (o datagramas) antes de enviarlos, pudiendo llegar por diversas vías del
servidor al cliente. Este protocolo no mantiene estado o, dicho de otro modo, cada transferencia
de datos es una conexión diferente a la anterior, sin relación entre ellas. Por ejemplo, para
transferir una página web debemos enviar el código HTML del texto, por un lado, y las imágenes
que la componen por otro, pues en la especificación inicial 1.0 del protocolo HTTP se abrían y
utilizaban tantas conexiones como componentes tenía la página, trasfiriendo cada componente
por conexiones diferentes .
Existe una variante de HTTP denominada HTTPS (S significa "secure", o "seguro") que utiliza el
protocolo de seguridad SSL (o "Secure Socket Layer") para cifrar y autenticar el tráfico de datos,
muy utilizada por los servidores web orientados al comercio electrónico o por aquellos que
albergan información de tipo personal o confidencial. De forma esquemática, el funcionamiento
de HTTP es como sigue: el cliente establece una conexión TCP con el servidor, hacia el puerto por
defecto para el protocolo HTTP (o el indicado expresamente en la conexión), envía una orden
HTTP de solicitud de un recurso (añadiendo algunas cabeceras con información) y, utilizando la
misma conexión, el servidor responde enviando los datos solicitados y, además, añadiendo
algunas cabeceras con información.
El protocolo también define la forma de codificar el paso de parámetros entre dos páginas, la
tunelización de las conexiones (para sistemas de firewall), define la posible existencia de
servidores intermedios de caché, etc. Las directivas que se utilizan para la petición de información
según se definen en HTTP 1.1 (la versión considerada estable y ampliamente utilizada) son:
El lenguaje HTML
El otro factor principal del éxito del World Wide Web ha sido el lenguaje HTML ("Hypertext Mark-
up Language", o "Lenguaje de Marcado de Hipertexto"), que es un lenguaje de marcas (se insertan
marcas o etiquetas en el texto) que permite representar de forma rica el contenido y referenciar
otros recursos (por ejemplo, imágenes), o enlaces a otros documentos (que es, precisamente, la
característica más destacada de la web), mostrar formularios para su posterior procesamiento,
etc.
Un documento HTML está definido por una etiqueta de apertura <HTML> y una etiqueta de
cierre </HTML>. Dentro de este se dividen dos partes fundamentales la cabecera, delimitada por
la etiqueta<HEAD> y el cuerpo, delimitado por la etiqueta <BODY>. Por tanto la estructura de un
documento HTML será:
<HTML>
<HEAD>
Definiciones de la cabecera
</HEAD>
<BODY>
Instrucciones HTML
</BODY>
</HTML>