Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Ruby

No description
by

Emmanuel Diaz Sanz

on 16 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Ruby

Ruby
EL MEJOR AMIGO DE
UN DESARROLLADOR

Los ideales del
creador de Ruby
Ruby fue creado por Yukihiro “Matz” Matsumoto en 1993 y presentado en 1995. Mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada, y Lisp) para formar un nuevo lenguaje que incorporara tanto la programación funcional como la programación imperativa
Ruby es de
tipado dinámico, de alto nivel y
multiparadigma:
orientado a objetos, funcional y procedural.
Soporta reflexión y metaprogramación
Es un lenguaje
de programación interpretado en una sola pasada y posee un intérprete interactivo 'irb' (Interactive Ruby Shell)
Viendo todo
como un objeto
En Ruby, todo es un objeto
Incluso las clases y los enteros

Se le puede asignar propiedades y acciones a toda información y código
Constantes y variables

Las variables son referencias a objetos. Se utilizan convenciones simples para nombrar y determinar el alcance de las mismas.
var
puede ser una variable local
@var
es una variable
de instancia

Sólo pueden ser leídas/escritas por el propio objeto
$var
es una variable global


@@var
es una variable de clase

La flexibilidad de Ruby
Ruby es considerado un lenguaje flexible, ya que permite a sus usuarios alterarlo libremente. Las partes esenciales de Ruby pueden ser quitadas o redefinidas a placer. Se puede agregar funcionalidad a partes ya existentes. Ruby intenta no restringir al desarrollador
Por ejemplo, la suma se realiza con el operador suma (+). Pero si prefieres usar la palabra 'sumar', puedes agregar un método llamado
sumar
a la clase
Numeric,
que viene incorporada:
La orientación a objetos pura de Ruby se suele demostrar con un simple código que aplica una acción a un número:
La mayoría de los operadores en Ruby son simples simplificaciones sintácticas para llamar a ciertos métodos. Puedes, por ejemplo, redefinir el método
Fixnum#+
:
Módulos / Mixins
Además de la herencia simple, Ruby incorpora el concepto de MÓDULOS, que son colecciones de métodos.

Las clases pueden mezclar un módulo(mixin) e incorporar todos sus métodos gratuitamente.
Un módulo es una agrupación de métodos, clases y constantes.
No se pueden instanciar ni tienen subclases.
Usos: organizar todas las partes de un programa que estén en relación en un repositorio, y "herencia múltiple" mediante mixins.

Ruby es totalmente libre. No sólo gratis, sino también libre para usarlo, copiarlo, modificarlo y distribuirlo
Y... hasta Ringo Starr
es fanático de Ruby!
Ana Pereyra Puente - 92421
Elias Joel Pringles - 95380
Emmanuel Diaz Sanz - 95413
¡Gracias!
En Ruby el manejo de memoria está completamente oculto al usuario y todo está almacenado en el heap, incluso las variables locales

Manejo de memoria y
recolección de basura.
El lenguaje posee un recolector de basura del tipo "marcado y barrido", que consiste en 2 fases:
Marcado
En la primera, recorre y marca todos los objetos accesibles desde el stack
Barrido
En la segunda, escanea a través del heap y busca todos los objetos que estén sin marcar para liberarlos
“Esto es mejor para tu salud”.
(Matz)
Los métodos Singleton
Los métodos Singleton son métodos-por-objeto.
No son definidos en las clases, y sólo están disponibles en el objeto en el que los defines:
También se puede redefinir los métodos de clase:
Es fácilmente portable: se desarrolla mayoritariamente en GNU/Linux, pero corre en varios tipos de UNIX, Mac OS X, Windows 95/98/XP, DOS, etc.
Tipos de datos
Números
Cadenas
Arrays
Hashes
Booleanos
Ruby cuenta con una extensa cantidad de librerías
Entre ellas destacamos:
Hash
Cadenas
Arreglos
Métodos
Cadenas
Las constantes deben escribirse en mayúsculas y deben definirse sólo una vez
Ejemplos: CANTIDAD_DE_FICHAS, FECHALIMITE, etc.
Existen únicamente en la clase, y son compartidas por todos los objetos
Bloques
Símbolos
Un símbolo es el objeto más básico que se puede crear en Ruby: es un nombre y una ID interna

No contienen valores como las variables

Se refiere al mismo objeto en todo el programa
Se utiliza en lugar de un string si la identidad del objeto es lo importante y no su contenido
Números
Los números en Ruby son objetos
Los enteros descienden de la clase Fixnum o Bignum, según su tamaño, y ambas clases descienden de la clase Integer

+ -
* / %
**

> >= < <=
== === <=> != =~ !~
Suma, Resta
Multiplicación, División
Exponentes
Comparadores
Igualadad, inegualdad
Algunos operadores:
Son mutables
Se almacenan como secuencias de bytes
como objetos
Comillas simples
vs
comillas dobles
Con comillas simples, Ruby toma el contenido como un literal
Con comillas dobles, Ruby busca hacer sustituciones o interpolaciones
Pueden empezar con letra minúscula o guión bajo
Todo en Ruby es un objeto y la única forma que tenemos de manipular los objetos, es a través de los métodos
Métodos Bang
Los métodos que acaban con un '!' son métodos que modifican al objeto
Por cada método con '!', existe el mismo método sin '!'
mientras que en los arrays los índices son números, en los hashes se puede indexar con objetos de cualquier tipo: strings, expresiones regulares, etc.
Un array puede ser un conjunto de elementos distintos
Métodos para arreglos
Porción de código encerrada entre paréntesis {} o entre do…end
Un método puede usar un bloque mediante la palabra yield
En el momento que el intérprete llega al yield, se ejecuta el código dentro del bloque, y luego se retorna al método
Podemos definir: proc =
lambda
{ bloque } donde 'proc' es un objeto de la clase Proc que puede ser utilizado como parámetro en métodos
Uso de un bloque:
Estructuras de Control
If, else
While
Times
El método 'times' necesita dos cosas:
un número entero y un bloque
Case
Construcción de una clase
Construcción de una clase
creación de métodos
Construcción de una clase
instanciación y reflexión
Construcción de una clase
reflexión
definición y constructor
El método 'new' se usa para crear un nuevo objeto de la clase
Se pueden obtener todos los métodos de un objeto recién creado usando el método 'methods'
Se puede conocer de antemano si un objeto posee cierto método usando 'respond_to?'
Y su clase, usando 'class'
Objetos y Clases
Reutilización de código
Herencia
Todas las clases heredan de 'Object', cuyos métodos están disponibles para todas las clases.
Sobrescritura de métodos
Super
Cuando uno usa super dentro de un método, Ruby manda un mensaje a la clase madre del objeto al que pertence el método, buscando un método con el mismo nombre
Si se invoca con argumentos, super(a, b, c), se mandan los argumentos a, b, c.
podemos crear alias
o sinónimos para métodos (útil en la sobrecarga), de la forma:
alias nuevoNombre viejoNombre
Excepciones
Una excepción es un tipo especial de objeto de la clase Exception
Lanzando una excepción:
Atrapando la excepción:
la instrucción 'raise' crea una excepción de la clase RuntimeError
Al escribir rescue sin parámetros, el parámetro StandardError se toma por defecto

En el caso de poner múltiples rescues:
Operaciones de hilos
.

Ruby on Rails
Rails se distribuye a través de "RubyGems"
Ruby on Rails se está convirtiendo en uno de los frameworks de aplicaciones web más populares debido a que promueve la metodología de prototipado rápido y además es un proyecto de código abierto.
Un entorno de desarrollo web de código abierto optimizado para la satisfacción de los programadores y para la productividad sostenible
Rails es un conjunto de librerías, automatismos y convenciones para construir aplicaciones web que acceden a bases de datos.
Se utiliza para ayudar a construir aplicaciones modernas de internet como: Twitter, Scribd, Hulu, Xing, Soundcloud, Basecamp, Github…

RoR es un framework de aplicaciones web escrito en el lenguaje de programación Ruby.
RubyGems es un gestor de paquetes para el lenguaje de programación Ruby que permite distribuir programas o librerías
Abriendo un archivo y tratando posibles errores...
Hilos (Threads)
Ruby no es un lenguaje basado en la concurrencia, pero permite programas con multi-hilos.

Éstos se ejecutan en paralelo en máquinas de más de 1 núcleo.

En máquinas de nucleo único el paralelismo se simula intercalando la ejecución de los hilos.
Los hilos se crean con Thread.new().

Los métodos de instancia y de clase (Thread)
más importantes son:



* Thread.current
* Thread.exit
* Thread.stop
* Thread.main
* Thread.pass
* thr.join
* thr.priority
* thr.alive?
Uso de bloque como argumento
Utilizando objetos
Congelando objetos: Los objetos inmutables son
aquellos que no pueden cambiar de estado después de ser creados.
Son thread-safe (los threads no pueden corromper lo que no pueden cambiar), facilitan implementar la encapsulación y son buenos índices en los hashes

Freeze
El método freeze evita que un objeto pueda modificarse, convirtiéndolo en una constante. Después de "congelar" el objeto, cualquier intento de modificarlo da como resultado un TypeError.
Marshaling
propiedad de los objetos, no de una clase entera
Serializando objetos: Ruby puede almacenarlos, para luego reutilizarlos cuando sea necesario
Se codifica un objeto en un medio de almacenamiento (memoria o archivo) para poder transmitirlo a través de la red. Se usa para intercambiar datos entre sistemas
El método frozen? nos dice si un objeto está congelado o no.
Full transcript