PDF de programación - Ruby on Rails: la revolución del desarrollo web

Imágen de pdf Ruby on Rails: la revolución del desarrollo web

Ruby on Rails: la revolución del desarrollo webgráfica de visualizaciones

Publicado el 15 de Enero del 2017
755 visualizaciones desde el 15 de Enero del 2017
1,5 MB
181 paginas
Creado hace 18a (15/05/2006)
Ruby on Rails: la revolución del desarrollo web

Esteban Manchado Velázquez

[email protected]

15 de mayo de 2006

Índice

1 Introducción

La revolución del desarrollo web
MVC
Otras comodidades

2 Cada componente en detalle

ActiveRecord
ActionPack
Enlaces

Índice

1 Introducción

La revolución del desarrollo web
MVC
Otras comodidades

2 Cada componente en detalle

ActiveRecord
ActionPack
Enlaces

Desarrollo web tradicional

• Separación de conceptos

Desarrollo web tradicional

• Separación de conceptos
• Duplicación de código

Desarrollo web tradicional

• Separación de conceptos
• Duplicación de código
• Por separado, ((maduro)), pero no muy bien integrado

Desarrollo web tradicional

• Separación de conceptos
• Duplicación de código
• Por separado, ((maduro)), pero no muy bien integrado
• MVC de moda últimamente

Desarrollo web tradicional

• Separación de conceptos
• Duplicación de código
• Por separado, ((maduro)), pero no muy bien integrado
• MVC de moda últimamente
• Hay poca cosa preparada para la Web 2.0

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco
• Programaba en PHP

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco
• Programaba en PHP (me estoy repitiendo)
• Intentó escribir Rails en PHP...

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco
• Programaba en PHP (me estoy repitiendo)
• Intentó escribir Rails en PHP...
• ...pero fracasó miserablemente

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco
• Programaba en PHP (me estoy repitiendo)
• Intentó escribir Rails en PHP...
• ...pero fracasó miserablemente
• Necesitaba algo más

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco
• Programaba en PHP (me estoy repitiendo)
• Intentó escribir Rails en PHP...
• ...pero fracasó miserablemente
• Necesitaba algo más →

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco
• Programaba en PHP (me estoy repitiendo)
• Intentó escribir Rails en PHP...
• ...pero fracasó miserablemente
• Necesitaba algo más →
• Un amigo le había nombrado Ruby y...

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco
• Programaba en PHP (me estoy repitiendo)
• Intentó escribir Rails en PHP...
• ...pero fracasó miserablemente
• Necesitaba algo más →
• Un amigo le había nombrado Ruby y...
• ...ahora todos se quieren copiar...

Nacimiento de RoR

• David Heinemeier Hansson (Dinamarca)
• Está loco
• Programaba en PHP (me estoy repitiendo)
• Intentó escribir Rails en PHP...
• ...pero fracasó miserablemente
• Necesitaba algo más →
• Un amigo le había nombrado Ruby y...
• ...ahora todos se quieren copiar...
• ...¡incluso en PHP!

Los cinco pilares del Islam^WRails

• Productividad máxima

Los cinco pilares del Islam^WRails

• Productividad máxima
• Sentido estético

Los cinco pilares del Islam^WRails

• Productividad máxima
• Sentido estético
• Herramientas más o menos buenas...

Los cinco pilares del Islam^WRails

• Productividad máxima
• Sentido estético
• Herramientas más o menos buenas...
• ...muy bien integradas (todo > partes)

Los cinco pilares del Islam^WRails

• Productividad máxima
• Sentido estético
• Herramientas más o menos buenas...
• ...muy bien integradas (todo > partes)
• Simplicidad, DRY (Don’t Repeat Yourself)

Los cinco pilares del Islam^WRails

• Productividad máxima
• Sentido estético
• Herramientas más o menos buenas...
• ...muy bien integradas (todo > partes)
• Simplicidad, DRY (Don’t Repeat Yourself)
• ¡Abajo la configuración, arriba las convenciones!

Índice

1 Introducción

La revolución del desarrollo web
MVC
Otras comodidades

2 Cada componente en detalle

ActiveRecord
ActionPack
Enlaces

MVC a grandes rasgos

• Modelo, Vista y Controlador

MVC a grandes rasgos

• Modelo, Vista y Controlador

MVC a grandes rasgos

• Modelo, Vista y Controlador
• Modelo para los datos

MVC a grandes rasgos

• Modelo, Vista y Controlador
• Modelo para los datos
• Vista para la interfaz (HTML en este caso)

MVC a grandes rasgos

• Modelo, Vista y Controlador
• Modelo para los datos
• Vista para la interfaz (HTML en este caso)
• Controlador para atraerlos a todos y atarlos a las... errhhh

MVC a grandes rasgos

• Modelo, Vista y Controlador
• Modelo para los datos
• Vista para la interfaz (HTML en este caso)
• Controlador para hacer cálculos y unir todas las piezas

MVC a grandes rasgos

• Modelo, Vista y Controlador
• Modelo para los datos
• Vista para la interfaz (HTML en este caso)
• Controlador para hacer cálculos y unir todas las piezas
• De invención bastante reciente

MVC a grandes rasgos

• Modelo, Vista y Controlador
• Modelo para los datos
• Vista para la interfaz (HTML en este caso)
• Controlador para hacer cálculos y unir todas las piezas
• De invención bastante reciente (1979)

MVC a grandes rasgos

• Modelo, Vista y Controlador
• Modelo para los datos
• Vista para la interfaz (HTML en este caso)
• Controlador para hacer cálculos y unir todas las piezas
• De invención bastante reciente (1979)
• Muy popular actualmente para plataformas de desarrollo web

Modelo

• Para acceder a los datos (BBDDs)

Modelo

• Para acceder a los datos (BBDDs)
• Módulo: ActiveRecord

Modelo

• Para acceder a los datos (BBDDs)
• Módulo: ActiveRecord
• Una clase representa una tabla

Modelo

• Para acceder a los datos (BBDDs)
• Módulo: ActiveRecord
• Una clase representa una tabla
• Se descubren automáticamente los campos...

Modelo

• Para acceder a los datos (BBDDs)
• Módulo: ActiveRecord
• Una clase representa una tabla
• Se descubren automáticamente los campos...
• ...y la tabla (Alumno → alumnos)

Modelo

• Para acceder a los datos (BBDDs)
• Módulo: ActiveRecord
• Una clase representa una tabla
• Se descubren automáticamente los campos...
• ...y la tabla (Alumno → alumnos)
• Se pueden declarar relaciones con otros

modelos/tablas

Modelo

• Para acceder a los datos (BBDDs)
• Módulo: ActiveRecord
• Una clase representa una tabla
• Se descubren automáticamente los campos...
• ...y la tabla (Alumno → alumnos)
• Se pueden declarar relaciones con otros

modelos/tablas

• Se puede personalizar y añadir métodos

Ejemplo de modelo

class Alumno < ActiveRecord::Base

has_many :cursos
def socio?

not num_socio.nil?

end

end

Ejemplo de modelo

class Alumno < ActiveRecord::Base

has_many :cursos
def socio?

not num_socio.nil?

end

end

Definición base

Ejemplo de modelo

class Alumno < ActiveRecord::Base

has_many :cursos
def socio?

not num_socio.nil?

end

end

Declaración de relación

Ejemplo de modelo

class Alumno < ActiveRecord::Base

has_many :cursos
def socio?

not num_socio.nil?

end

end

Nuevo método

Vista

• Para decidir el aspecto

Vista

• Para decidir el aspecto
• Módulo: ActionView

Vista

• Para decidir el aspecto
• Módulo: ActionView
• Plantillas en formato Embedded Ruby

Vista

• Para decidir el aspecto
• Módulo: ActionView
• Plantillas en formato Embedded Ruby
• HTML con Ruby embebido

Vista

• Para decidir el aspecto
• Módulo: ActionView
• Plantillas en formato Embedded Ruby
• HTML con Ruby embebido
• Una por cada acción de cada controlador

Vista

• Para decidir el aspecto
• Módulo: ActionView
• Plantillas en formato Embedded Ruby
• HTML con Ruby embebido
• Una por cada acción de cada controlador
• Corolario: dependen de los controladores

Vista

• Para decidir el aspecto
• Módulo: ActionView
• Plantillas en formato Embedded Ruby
• HTML con Ruby embebido
• Una por cada acción de cada controlador
• Corolario: dependen de los controladores
• HTML repetitivo, a funciones externas

(helpers)

Ejemplo de vista

<h1>Añadir alumno del curso < %= @curso.titulo %></h1>
< % Alumno.find_all(nil, ’nombre’).each do |a| %>
< %= radio_button(’alumno’, ’elegido’, a.id) %>

< % end %>

Ejemplo de vista

<h1>Añadir alumno del curso < %= @curso.titulo %></h1>
< % Alumno.find_all(nil, ’nombre’).each do |a| %>
< %= radio_button(’alumno’, ’elegido’, a.id) %>

< % end %>

Imprimir el resultado de la expresión

Ejemplo de vista

<h1>Añadir alumno del curso < %= @curso.titulo %></h1>
< % Alumno.find_all(nil, ’nombre’).each do |a| %>
< %= radio_button(’alumno’, ’elegido’, a.id) %>

< % end %>

Ejecutar código Ruby, sin imprimir

Ejemplo de vista

<h1>Añadir alumno del curso < %= @curso.titulo %></h1>
< % Alumno.find_all(nil, ’nombre’).each do |a| %>
< %= radio_button(’alumno’, ’elegido’, a.id) %>

< % end %>

Helpers

Controlador

• ((Bisagra)) del MVC y lógica de cálculos

Controlador

• ((Bisagra)) del MVC y lógica de cálculos
• Módulo: ActionPack

Controlador

• ((Bisagra)) del MVC y lógica de cálculos
• Módulo: ActionPack
• Cada controlador, una clase de Ruby

Controlador

• ((Bisagra)) del MVC y lógica de cálculos
• Módulo: ActionPack
• Cada controlador, una clase de Ruby
• Cada método, una acción

Controlador

• ((Bisagra)) del MVC y lógica de cálculos
• Módulo: ActionPack
• Cada controlador, una clase de Ruby
• Cada método, una acción
• ((Andamios)) (scaffold) para avanzar más rápido

Ejemplo de controlador

class CursoController < ApplicationController

layout
def nueva_accion

’base’

@curso = Curso.find(params[:id])

end

end

Ejemplo de controlador

class CursoController < ApplicationController

layout
def nueva_accion

’base’

@curso = Curso.find(params[:id])

end

end

Definición base

Ejemplo de controlador

class CursoController < ApplicationController

layout
def nueva_accion

’base’

@curso = Curso.find(params[:id])

end

end

Declarar una plantilla ((general)) alternativa

Ejemplo de controlador

class CursoController < ApplicationController

layout
def nueva_accion

’base’

@curso = Curso.find(params[:id])

end

end

Nueva acción

Ejemplo de controlador

class CursoController
  • Links de descarga
http://lwp-l.com/pdf1919

Comentarios de: Ruby on Rails: la revolución del desarrollo web (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad