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
1.093 visualizaciones desde el 15 de Enero del 2017
1,0 MB
138 paginas
Creado hace 18a (24/11/2005)
Ruby on Rails: la revolución del desarrollo web

Esteban Manchado Velázquez

[email protected]

24 de noviembre de 2005

Índice

1 Introducción

La revolución del desarrollo web
MVC
Otras comodidades
Conclusión

2 Demo

Preparación
Ejecución

Índice

1 Introducción

La revolución del desarrollo web
MVC
Otras comodidades
Conclusión

2 Demo

Preparación
Ejecución

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 (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
Conclusión

2 Demo

Preparación
Ejecución

Modelo

• Para acceder a los datos

Modelo

• Para acceder a los datos
• Módulo: ActiveRecord

Modelo

• Para acceder a los datos
• Módulo: ActiveRecord
• Descubre automáticamente los campos...

Modelo

• Para acceder a los datos
• Módulo: ActiveRecord
• Descubre automáticamente los campos...
• ...y la tabla (Alumno → alumnos)

Modelo

• Para acceder a los datos
• Módulo: ActiveRecord
• Descubre automáticamente los campos...
• ...y la tabla (Alumno → alumnos)
• Se puede personalizar y añadir métodos

Modelo

• Para acceder a los datos
• Módulo: ActiveRecord
• Descubre automáticamente los campos...
• ...y la tabla (Alumno → alumnos)
• Se puede personalizar y añadir métodos
• Se crean con script/generate model alumno

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: Embedded Ruby, erb

Vista

• Para decidir el aspecto
• Módulo: Embedded Ruby, erb
• Ruby embebido en HTML

Vista

• Para decidir el aspecto
• Módulo: Embedded Ruby, erb
• Ruby embebido en HTML
• Simple, potente

Vista

• Para decidir el aspecto
• Módulo: Embedded Ruby, erb
• Ruby embebido en HTML
• Simple, potente
• HTML repetitivo, a funciones externas (helpers)

Vista

• Para decidir el aspecto
• Módulo: Embedded Ruby, erb
• Ruby embebido en HTML
• Simple, potente
• HTML repetitivo, a funciones externas (helpers)
• Ficheros .rhtml en app/views/controlador

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

• Lógica de la aplicación (negocio)

Controlador

• Lógica de la aplicación (negocio)
• Módulo: ActionPack

Controlador

• Lógica de la aplicación (negocio)
• Módulo: ActionPack
• ((Bisagra)) del MVC

Controlador

• Lógica de la aplicación (negocio)
• Módulo: ActionPack
• ((Bisagra)) del MVC
• Clases de Ruby

Controlador

• Lógica de la aplicación (negocio)
• Módulo: ActionPack
• ((Bisagra)) del MVC
• Clases de Ruby
• Un método, una acción

Controlador

• Lógica de la aplicación (negocio)
• Módulo: ActionPack
• ((Bisagra)) del MVC
• Clases de Ruby
• Un método, una acción
• ((Andamios)) (scaffold) para avanzar más rápido

Controlador

• Lógica de la aplicación (negocio)
• Módulo: ActionPack
• ((Bisagra)) del MVC
• Clases de Ruby
• Un método, una acción
• ((Andamios)) (scaffold) para avanzar más rápido
• Se crean con script/generate controller

alumno

Ejemplo de controlador

class CursoController < ApplicationController

scaffold :curso
layout
’base’
def nueva_accion

render(:text => "Nueva acción")

end

end

Ejemplo de controlador

class CursoController < ApplicationController

scaffold :curso
layout
’base’
def nueva_accion

render(:text => "Nueva acción")

end

end

Definición base

Ejemplo de controlador

class CursoController < ApplicationController

scaffold :curso
layout
’base’
def nueva_accion

render(:text => "Nueva acción")

end

end

Crear andamio dinámico para el modelo ’curso’

Ejemplo de controlador

class CursoController < ApplicationController

scaffold :curso
layout
’base’
def nueva_accion

render(:text => "Nueva acción")

end

end

Declarar una plantilla ((general)) alternativa

Ejemplo de controlador

class CursoController < ApplicationController

scaffold :curso
layout
’base’
def nueva_accion

render(:text => "Nueva acción")

end

end

Nueva acción

Índice

1 Introducción

La revolución del desarrollo web
MVC
Otras comodidades
Conclusión

2 Demo

Preparación
Ejecución

Utilidades

• Para empezar, rails

Utilidades

• Para empezar, rails
• Y las de ./script/foo :

Utilidades

• Para empezar, rails
• Y las de ./script/foo :

• generate (genera código)

Utilidades

• Para empezar, rails
• Y las de ./script/foo :

• generate (genera código)
• server (servidor simple para desarrollo)

Utilidades

• Para empezar, rails
• Y las de ./script/foo :

• generate (genera código)
• server (servidor simple para desarrollo)
• console (consola interactiva)

Utilidades

• Para empezar, rails
• Y las de ./script/foo :

• generate (genera código)
• server (servidor simple para desarrollo)
• console (consola interactiva)
• runner (ejecuta trozos de Ruby)

Utilidades

• Para empezar, rails
• Y las de ./script/foo :

• generate (genera código)
• server (servidor simple para desarrollo)
• console (consola interactiva)
• runner (ejecuta trozos de Ruby)
• breakpointer (engancha con puntos de ruptura)

Rakefile

• Una especie de Makefile...

Rakefile

• Una especie de Makefile...
• ...pero escrito en Ruby

Rakefile

• Una especie de Makefile...
• ...pero escrito en Ruby
• Viene un Rakefile de serie, con varios objetivos:

Rakefile

• Una especie de Makefile...
• ...pero escrito en Ruby
• Viene un Rakefile de serie, con varios objetivos:

• stats

Rakefile

• Una especie de Makefile...
• ...pero escrito en Ruby
• Viene un Rakefile de serie, con varios objetivos:

• stats
• doc

Rakefile

• Una especie de Makefile...
• ...pero escrito en Ruby
• Viene un Rakefile de serie, con varios objetivos:

• stats
• doc
• test

Rakefile

• Una especie de Makefile...
• ...pero escrito en Ruby
• Viene un Rakefile de serie, con varios objetivos:

• stats
  • Links de descarga
http://lwp-l.com/pdf1922

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