PDF de programación - Ruby & Ruby on Rails

Imágen de pdf Ruby & Ruby on Rails

Ruby & Ruby on Railsgráfica de visualizaciones

Publicado el 21 de Mayo del 2018
282 visualizaciones desde el 21 de Mayo del 2018
646,3 KB
25 paginas
Creado hace 11a (10/01/2009)
RUBY & RUBY ON RAILS

Lucía Holguín Labajo

100056186

Héctor Murcia Carbonell

100048647

Ana Belén Mejía Ocaña

100061878

Mª Antonia Ávila Jiménez 100056180

Departamento de Ingeniería Telemática
Universidad Carlos III de Madrid

Contenido

 ¿Que es?
 Historia
 Breve descripción
 Características





Ventajas y puntos fuertes
Desventajas y limitaciones

 Desarrollo
 Ruby on Rails













¿Que es?
Principios
Arquitectura MVC
Componentes de Rails
Soporte de servidores web
Ejemplo de Aplicación

 Uso de Ruby y on Rails
 Conclusiones
 Referencias

RUBY

 ¿Qué es?

 Es un lenguaje de programación interpretado , reflexivo,

orientado a objetos y con un balance cuidado.

 Historia

 Creado por Yukihiro “Matz” Matsumoto (1993,1995)
 2006: Reconocimiento masivo  grupos activos.
 2007: versión 1.8.6 1.9.0
 Rendimiento diferente  diferentes maquinas virtuales:

- JRuby.
- Rubinius.

 TIOBE posiciona a Ruby en la posición 13 del ranking

mundial.

RUBY

 Viene de…

- Perl
- Python



 Lo imitan…

- Groovy on Grails

De Perl (perla) Ruby (rubí), de Ruby on Rails  Groovy on Grails

Breve descripción

Explicación de las principales características (I)

Garbage
Collector

Dynamic

Typing

Familiar
Syntax

Features
of Ruby

Single
Inherita

nce

Open
Source

Object

Oriented

Breve descripción

Explicación de las principales características (II)

Ejemplo de tipos dinámicos

Java (sin tipo dinámico)

Ruby

int[ ] a = {1,2,3};

a = [1,2,3]

Breve descripción

Explicación de las principales características (III)

ADEMÁS…

 manejo de excepciones

 altamente portable

 hilos de ejecución simultáneos (green threads)

 carga Librerías ( Estándar, DLL y Lib compartidas)

 se interpreta: sin compilador

 introspección, reflexión y metaprogramación

 inyección de dependencias

 alteración de objetos en tiempo de ejecución

 redefinición de operadores (sobrecarga)

Breve descripción

Explicación de las principales características (IV)

Ejemplo redefinición de operadores

class Numeric
def sumar(x)

self.+(x)

end

end

y = 5.sumar 6
# ahora ‘y’ vale 11

Breve descripción

Ventajas y puntos fuertes (I)

 Fácilmente integrable (en módulos)

 Flexibilidad

 Simplicidad (hacer más con menos)

 Cercano al lenguaje natural

 Productividad

 Principio de menor sorpresa

Cambio de paradigma:

“Del humano al servicio de la máquina a la máquina al servicio del humano”

Breve descripción

Ventajas y puntos fuertes (II)

Ejemplo de simplicidad

# Ruby knows what you mean,
#even if you want to do math on
# an entire Array

cities = %w[ London

Oslo
Paris
Amsterdam
Berlin ]

visited = %w[Berlin Oslo]

puts "I still need " +

"to visit the " +
"following cities:",
cities - visited

Breve descripción

Desventajas y limitaciones













Tipos dinámicos  problemas inesperados

Metaprogramming  “Monkey patching” de las Librerias Estándar de Ruby

Hilos de Ruby son “green threads”

Sin soporte Unicode

Problemas de compatibilidad hacia atrás

Ruby más lento que sus “hermanos” compilados

Ruby 2.0 llega a resolver:



Hilos nativos en lugar de “green threads”

Problemas sin resolver:



Falta especificación ( ¿Especificación ISO?)

Desarrollo

 Dos maneras de programar en Ruby:

 Interprete IRB
 Archivo .rb

 ¿Cómo desarrollar?

 Palabras clave (def, end, if, do…)
 Módulos predefinidos:

módulo.método(parámetros)  Math.sqrt(9).

 Definición de variables y métodos: a = 3 ** 2
 Delimitadores de instrucción (;).
 #Comentario de una sola línea

=begin
Esto es un comentario de varias líneas
=end

Desarrollo

#!/usr/bin/env ruby

Class MegaAnfitrion

attr_accessor:nombres

def initialize(nombres = "Mundo")

@nombres = nombres

end

def decir_hola

if @nombres.nil?

puts "..."

elsif @nombres.respond_to?("each")

@nombres.each do |nombre|

puts "Hola #{nombre}"

end

else

puts "Hola #{@nombres}"

end

end

def decir_adios

if @nombres.nil?

puts "..."

elsif @nombres.respond_to?("join")

puts "Adiós #{@nombres.join(", ")}.

Vuelvan pronto."

else

puts "Adiós #{@nombres}. Vuelva

pronto."

end

end

end

Desarrollo

if __FILE__ == $0

ma = MegaAnfitrion.new
ma.decir_hola
ma.decir_adios

ma.nombres = “Pablo"
ma.decir_hola
ma.decir_adios

ma.nombres = [“Javi", “Ruben",

“Celia",

“Juan", “Alvaro"]

ma.decir_hola
ma.decir_adios

ma.nombres = nil
ma.decir_hola
ma.decir_adios

end

Hola Mundo
Adiós Mundo. Vuelve pronto.

Hola Diego
Adiós Diego. Vuelve pronto.

Hola Javi
Hola Rubén
Hola Celia
Hola Juan
Hola Álvaro
Adiós Javi, Rubén, Celia, Juan,
Álvaro. Vuelvan pronto.

...
...

Ruby on Rails

 ¿Qué es?

Framework de aplicaciones web de código abierto

escrito en Ruby.

 Principios

 DRY - "Don't Repeat Yourself“


Convención sobre configuración
REST - Representational State Transfer
Arquitectura MVC





Ruby on Rails

 Arquitectura MVC (I)

 Modelo

o Clases que representan las bases de datos.

o Usar SGDB para almacenamiento de datos
(MySQL, SQLite, Oracle, ...).

o Gestionadas por ActiveRecord:

• Extender de ActiveRecord::Base

• No declarar propiedades

Ruby on Rails

 Arquitectura MVC (II)

 Vista

o Lógica de visualización

• Ruby Embebido: HTML+código Ruby

• HTML,XML

 Controlador

o Control total de la aplicación.

o Proceso de respuesta a la interacción del usuario.

o Manejado por el ActionPack de Rails  heredar

de ActionController::Base.

Ruby on Rails

 Componentes de Rails

Action Controller

Action View

Active Record

Action Mailer

Active Resource

Railties

Active Support

Ruby on Rails

 Soporte de Servidores Web

 Para desarrollo y pruebas:

o Mongrel o WEBrick.



Para producción:

o Nginx, Mongrel, Apache, Lighttpd.

o Uso extendido de Passenger.

Ejemplo Aplicación

 Se encuentra en el subdirectorio app

 Directorios que la componen:

 apis - librerías
 controllers
 helpers
 models
 views - archivos rhtml (como JSP o

ASP).

 views/layouts – diseños (cabeceras y

pies de página)

 config
 script
 public - raíz del directorio virtual
 test - pruebas funcionales y de unidad

$ rails direcciones
create
create app/apis
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
create db
create doc
create lib
create log
create public/images
create public/javascripts
create public/stylesheets
create script
create test/fixtures
create test/functional
create test/mocks/development
create test/mocks/test
create test/unit
....

Ejemplo Aplicación

 Ejemplo de código: controllers/principal_controller.rb

class PrincipalController < ApplicationController

def index

mensaje = "Hola a todos...<br>"
["Pedro", "Pablo", "Juan"].each do |nombre|
mensaje += "y a "+nombre+" tambien<br>"
end
render :text => mensaje

end

end

 Resultado:

Hola a todos...
y a Pedro tambien
y a Pablo tambien
y a Juan tambien

http://www.hackerdude.com/courses/rails/PrimeraAplicacion.html

Uso de Ruby y on Rails

 Se encuentra en un momento de gran éxito

 Simulación:

 Redes:

NASA Langley Research Center, Motorola …

Open Domain Server

 Modelado 3D:
Google SketchUp

 Telefonía:

Lucent 3G



Aplicaciones web (on Rails):

Basecamp:

Control

de proyectos

La Coctelera:

Crea tu blog

43things:

Consigue tus metas

en la vida

ODEO:

Graba y comparte

audio

Conclusiones

 Tecnología útil, de fácil implementación.

 Su éxito radica en la rapidez de sus aplicaciones.

 Planteamiento distinto al resto de tecnologías.

 Aprendizaje más rápido que en otros lenguajes.

 En expansión.

 No se dispone de mucha documentación al ser

relativamente nuevo.

Referencias

 http://www.ruby-lang.org/es/
 http://es.wikipedia.org/wiki/Ruby
 http://www.demiurgo.org/src/ruby/
 http://www.ruby-lang.org/es/documentation/quickstart
 http://rubytutorial.wikidot.com
 http://meshplex.org/wiki/
 http://rubyargentina.soveran.com/
 http://www.rubycentral.com/
 http://www.artima.com/intv/ruby.html
 http://www.informit.com/articles/article.aspx?p=18225
 http://en.wikipedia.org/wiki/Ruby_on_Rails
 http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials
 http://www.slideshare.net/vishnu/workin-on-the-rails-road
 http://guides.rubyonrails.org/getting_started_with_rails.html
 http://www.hackerdude.com/courses/rails/PrimeraAplicacion.html
 http://tryruby.hobix.com/

RUBY & RUBY ON RAILS

Gracias por su atención

¿Alguna duda?
  • Links de descarga
http://lwp-l.com/pdf11162

Comentarios de: Ruby & Ruby on Rails (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad