Este documento presenta una introducción a Ruby, incluyendo sus características principales como lenguaje orientado a objetos, dinámico e interpretado. Explica conceptos como la falta de necesidad de usar paréntesis, la orientación a objetos, estructuras condicionales como if/unless, asignaciones, clases y métodos. También proporciona ejemplos prácticos de uso de arrays y cálculos con ellos. El objetivo es mostrar la expresividad de Ruby y cómo escribir código de manera idiomática.
Diapositivas de la introducción al lenguaje ruby en el curso de extensión universitaria "Desarrollo Web Avanzado" del programa de Extensión Universitaria de la Universidad de Oviedo (2010)
De toda la documentación de WordPress hay una página muy importante que vela por la seguridad de nuestra salud mental: “PHP Coding Standards”, una guía con 19 consejos muy simples sobre cómo escribir código PHP bonito, del bueno, ese del cual podemos jactarnos de “Code is Poetry”.
Veremos en esta charla los puntos más importantes de la guía aplicados a casos reales de proyectos heredados y sus posibles resoluciones.
Charla introductoria a Ruby y Ruby on Rails impartida durante las III Jornadas de Informática de la Universidad Europea de Madrid, en la primavera de 2008
Diapositivas de la introducción al lenguaje ruby en el curso de extensión universitaria "Desarrollo Web Avanzado" del programa de Extensión Universitaria de la Universidad de Oviedo (2010)
De toda la documentación de WordPress hay una página muy importante que vela por la seguridad de nuestra salud mental: “PHP Coding Standards”, una guía con 19 consejos muy simples sobre cómo escribir código PHP bonito, del bueno, ese del cual podemos jactarnos de “Code is Poetry”.
Veremos en esta charla los puntos más importantes de la guía aplicados a casos reales de proyectos heredados y sus posibles resoluciones.
Charla introductoria a Ruby y Ruby on Rails impartida durante las III Jornadas de Informática de la Universidad Europea de Madrid, en la primavera de 2008
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
24. Return o no return
●
Cualquier expresión retorna un valor
●
Rara vez usas return*
* Es una opinión personal
25. Return o no return
class UserKarma
def reset
# Do stuff
total = 0
end
end
26. Estructuras
condicionales
@user = nil
if params[:id]
@user = User.find(params[:id])
else
@user = User.new
end
De “Ruby mola y por qué” de Sergio Gil - http://www.slideshare.net/sergio.gil/ruby-mola-y-por-qu
27. Estructuras
condicionales
@user = if params[:id]
User.find(params[:id])
else
User.new
end
De “Ruby mola y por qué” de Sergio Gil - http://www.slideshare.net/sergio.gil/ruby-mola-y-por-qu
33. Asignaciones
@post = Post.find(params[:id])
if @post
@post.destroy
end
if @post = Post.find(params[:id])
@post.destroy
end
De “Ruby mola y por qué” de Sergio Gil - http://www.slideshare.net/sergio.gil/ruby-mola-y-por-qu
34. Asignaciones
En paralelo:
first, last, street = "Pi", "Filemon", "13 rue del percebe"
# => ["Pi", "Filemon", "13 rue del percebe"]
first, last = last, first
# => ["Filemon", "Pi"]
44. Otros métodos
[1, 2, 3, 4].find {|n| n % 3 == 0}
# => 3
[1, 2, 3, 4].find_all {|n| n % 2 == 0}
# => [2, 4]
45. Ejemplos prácticos
De “Ruby mola y por qué” de Sergio Gil - http://www.slideshare.net/sergio.gil/ruby-mola-y-por-qu
46. Ejemplo 1
●
Calcular el precio con IVA de la lista de precios:
precios = [10, 12, 20, 50]
pvp
= []
precios.each do |precio|
pvp << precio * 0.21
end
pvp
# => [2.1, 2.52, 4.2, 10.5]
47. Ejemplo 1
●
Calcular el precio con IVA de la lista de
precios:
precios = [10, 12, 20, 50]
pvp = precios.map {|precio| precio * 0.21 }
48. Ejemplo 2
●
Calcula la suma total de una lista de precios:
precios = [2.1, 2.52, 4.2, 10.5]
total
= 0
precios.each do |precio|
total += precio
end
total
# => 19.32
49. Ejemplo 2
●
Calcula la suma total de una lista de
precios:
precios = [2.1, 2.52, 4.2, 10.5]
total
= precios.inject{|sum, precio| sum + precio}
52. Clases y métodos
class Car
def initialize(brand=nil, model=nil)
@brand = brand
@model = model
end
def brand
@brand
end
def model
@model
end
def color
@color
end
def color=(new_color)
@color = new_color
end
def brand=(new_brand)
@brand = new_brand
end
def model=(new_model)
@model= new_model
end
end
53. Clases y métodos
class Car
def initialize(brand=nil, model=nil)
@brand = brand
@model = model
end
...
end