Ruby on Rails (Introducción a Ruby)
Esteban Manchado Velázquez
[email protected]
20 de mayo de 2006
Índice
1 Introducción
Presentación
Ejemplos de Rails
Sobre el lenguaje
2 El lenguaje
Variables
¿Pato qué?
Orientación a objetos
Estructuras de control
3 Ejercicios
Ejercicio 1
Ejercicio 2
Ejercicio 3
Índice
1 Introducción
Presentación
Ejemplos de Rails
Sobre el lenguaje
2 El lenguaje
Variables
¿Pato qué?
Orientación a objetos
Estructuras de control
3 Ejercicios
Ejercicio 1
Ejercicio 2
Ejercicio 3
De qué va todo esto
• Ruby on Rails: plataforma de desarrollo web muy productiva
De qué va todo esto
• Ruby on Rails: plataforma de desarrollo web muy productiva
• Ruby: Lenguaje interpretado orientado a objetos
De qué va todo esto
• Ruby on Rails: plataforma de desarrollo web muy productiva
• Ruby: Lenguaje interpretado orientado a objetos
• Ruby on Rails está escrito en Ruby, claro
De qué va todo esto
• Ruby on Rails: plataforma de desarrollo web muy productiva
• Ruby: Lenguaje interpretado orientado a objetos
• Ruby on Rails está escrito en Ruby, claro
• Durante los dos primeros días, un poquito de Ruby
De qué va todo esto
• Ruby on Rails: plataforma de desarrollo web muy productiva
• Ruby: Lenguaje interpretado orientado a objetos
• Ruby on Rails está escrito en Ruby, claro
• Durante los dos primeros días, un poquito de Ruby
• Suficiente para que no se pierdan, sólo lo más básico
De qué va todo esto
• Ruby on Rails: plataforma de desarrollo web muy productiva
• Ruby: Lenguaje interpretado orientado a objetos
• Ruby on Rails está escrito en Ruby, claro
• Durante los dos primeros días, un poquito de Ruby
• Suficiente para que no se pierdan, sólo lo más básico
• A la larga, recomendable aprovechar la potencia del lenguaje
Índice
1 Introducción
Presentación
Ejemplos de Rails
Sobre el lenguaje
2 El lenguaje
Variables
¿Pato qué?
Orientación a objetos
Estructuras de control
3 Ejercicios
Ejercicio 1
Ejercicio 2
Ejercicio 3
Ajax y Javascript integrados en Rails
• Autocompletar:
http://demo.script.aculo.us/ajax/autocompleter
• Autocompletar personalizado:
http://demo.script.aculo.us/ajax/autocompleter customized
• Listas ordenables:
http://demo.script.aculo.us/ajax/sortable elements
• Mini tienda:
http://demo.script.aculo.us/shop
Demo de Backpack
• Backpack: aplicación real escrita en Rails
pages.mov
Índice
1 Introducción
Presentación
Ejemplos de Rails
Sobre el lenguaje
2 El lenguaje
Variables
¿Pato qué?
Orientación a objetos
Estructuras de control
3 Ejercicios
Ejercicio 1
Ejercicio 2
Ejercicio 3
Nacimiento de Ruby
• Diseñado por Yukihiro Matsumoto (matz)
• ((Ruby)) viene de Perl → Pearl
• I wanted a scripting language that was more powerful
than Perl, and more object-oriented than Python
• They are focusing on machines. But in fact we need to
focus on humans, on how humans care about doing
programming or operating the application of the
machines. We are the masters. They are the slaves
• Don’t underestimate the human factor. Even though we
are in front of computers, they are media. We are
working for human, with human
• You want to enjoy life, don’t you? If you get your job
done quickly and your job is fun, that’s good, isn’t it?
That’s the purpose of life, partly. Your life is better
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
• Tipado dinámico (Duck typing)
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
• Tipado dinámico (Duck typing)
• Sintaxis limpia, modo poético, ((sufijos)) de sentencias
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
• Tipado dinámico (Duck typing)
• Sintaxis limpia, modo poético, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
• Tipado dinámico (Duck typing)
• Sintaxis limpia, modo poético, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
• Tipado dinámico (Duck typing)
• Sintaxis limpia, modo poético, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
• Se usan mucho los bloques (funciones anónimas)
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
• Tipado dinámico (Duck typing)
• Sintaxis limpia, modo poético, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
• Se usan mucho los bloques (funciones anónimas)
• Documentación empotrada
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
• Tipado dinámico (Duck typing)
• Sintaxis limpia, modo poético, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
• Se usan mucho los bloques (funciones anónimas)
• Documentación empotrada
• Inmaduro (cambios, pocos módulos de desarrollo
activo)
Características generales
• ((Perl orientado a objetos)), ((Smalltalk con sintaxis
familiar))
• Completamente orientado a objetos (¡hasta nil!)
• Tipado dinámico (Duck typing)
• Sintaxis limpia, modo poético, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
• Se usan mucho los bloques (funciones anónimas)
• Documentación empotrada
• Inmaduro (cambios, pocos módulos de desarrollo
activo)
• Comunidad abierta (muchos ((refugiados)))
Para aprender...
• Entre Perl y Python en cuanto a integración
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
• Documentación empotrada de referencia: rdoc
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
• Documentación empotrada de referencia: rdoc
• Consulta de documentación, ayuda interactiva: ri e ihelp
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
• Documentación empotrada de referencia: rdoc
• Consulta de documentación, ayuda interactiva: ri e ihelp
• Consulta de documentación en web:
http://www.ruby-doc.org/find/pickaxe/string
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
• Documentación empotrada de referencia: rdoc
• Consulta de documentación, ayuda interactiva: ri e ihelp
• Consulta de documentación en web:
http://www.ruby-doc.org/find/pickaxe/string
• En el caso de Rails y otros, de moda los vídeos
Índice
1 Introducción
Presentación
Ejemplos de Rails
Sobre el lenguaje
2 El lenguaje
Variables
¿Pato qué?
Orientación a objetos
Estructuras de control
3 Ejercicios
Ejercicio 1
Ejercicio 2
Ejercicio 3
Tipado en Ruby
• Dinámico pero fuerte
Tipado en Ruby
• Dinámico pero fuerte
• Las variables no tienen tipo
Tipado en Ruby
• Dinámico pero fuerte
• Las variables no tienen tipo
• Son como referencias/punteros en otros lenguajes
Tipado en Ruby
• Dinámico pero fuerte
• Las variables no tienen tipo
• Son como referencias/punteros en otros lenguajes
• Los objetos a los que apuntan sí tienen tipo
Tipado en Ruby
• Dinámico pero fuerte
• Las variables no tienen tipo
• Son como referencias/punteros en otros lenguajes
• Los objetos a los que apuntan sí tienen tipo
• Las variables no se declaran, ((aparecen)) al asignarles un valor
Tipado en Ruby
• Dinámico pero fuerte
• Las variables no tienen tipo
• Son como referencias/punteros en otros lenguajes
• Los objetos a los que apuntan sí tienen tipo
• Las variables no se declaran, ((aparecen)) al asignarles un valor
• No hay conversiones automáticas entre distintos tipos
Ruby básico (I)
irb(main):001:0> lista = [3,2,1]
=> [3, 2, 1]
irb(main):002:0> lista2 = lista
=> [3, 2, 1]
irb(main):003:0> lista.sort!
=> [1, 2, 3]
irb(main):004:0> lista
=> [1, 2, 3]
irb(main):005:0> lista2
=> [1, 2, 3]
Ruby básico (I)
irb(main):001:0> lista = [3,2,1]
=> [3, 2, 1]
irb(main):002:0> lista2 = lista
=> [3, 2, 1]
irb(main):003:0> lista.sort!
=> [1, 2, 3]
irb(main):004:0> lista
=> [1, 2, 3]
irb(main):005:0> lista2
=> [1, 2, 3]
Ruby básico (I)
irb(main):001:0> lista = [3,2,1]
=> [3, 2, 1]
irb(main):002:0> lista2 = lista
=> [3, 2, 1]
irb(main):003:0> lista.sort!
=> [1, 2, 3]
irb(main):004:0> lista
=> [1, 2, 3]
irb(main):005:0> lista2
=> [1, 2, 3]
Ruby básico (I)
irb(main):001:0> lista = [3,2,1]
=> [3, 2, 1]
irb(main):002:0> lista2 = lista
=> [3, 2, 1]
irb(main):003:0> lista.sort!
=> [1, 2, 3]
irb(main):004:0> lista
=> [1, 2, 3]
irb(main):005:0> lista2
=> [1, 2, 3]
Ruby básico (I)
irb(main):001:0> lista = [3,2,1]
=> [3, 2, 1]
irb(main):002:0> lista2 = lista
=> [3, 2, 1]
irb(main):003:0> lista.sort!
=> [1, 2, 3]
irb(main):004:0> lista
=> [1, 2, 3]
irb(main):005:0> lista2
=> [1, 2, 3]
Ruby básico (I)
irb(main):001:0> lista = [3,2,1]
=> [3, 2, 1]
irb(main):002:0> lista2 = lista
=> [3, 2, 1]
irb(m
Comentarios de: Ruby on Rails (Introducción a Ruby) (0)
No hay comentarios