PDF de programación - Ruby on Rails: Porque hay mejores maneras de cortarse las venas que escribiendo PHP

Imágen de pdf Ruby on Rails: Porque hay mejores maneras de cortarse las venas que escribiendo PHP

Ruby on Rails: Porque hay mejores maneras de cortarse las venas que escribiendo PHPgráfica de visualizaciones

Publicado el 2 de Mayo del 2017
1.058 visualizaciones desde el 2 de Mayo del 2017
362,8 KB
41 paginas
Creado hace 16a (23/11/2007)
Definiciones

Ruby

Rails

Ok... ¿y los demás?

Ruby on Rails: Porque hay mejores maneras de

cortarse las venas que escribiendo PHP

Gunnar Wolf — [email protected]
http://www.gwolf.org/soft/rails

Instituto de Investigaciones Económicas, UNAM

Desarrollador del proyecto Debian

Encuentro Nacional de Linux y Software Libre

Octubre 19, 2007

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Bien. Veo que tengo tu atención

Bien. Veo que ya tengo tu atención.
No, pese a lo que el título te de a pensar, esta no es una plática
orientada a hablar mal de PHP.

Esta es una plática orientada a hablar bien de las buenas prácticas
de programación hacia las cuales nos orilla el framework Ruby on
Rails — Y como parte de ello, desmenuzaremos parte de las
razones de por qué una tan gran parte del código escrito en PHP
resulta ser una sopa inmantenible.

Pero no adelantemos vísperas. Vamos a lo que esta presentación
sí es.

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Temas

1 Definiciones

2 Ruby: Un lenguaje pragmático

3 Rails: Un framework para el desarrollo Web

4 Ok... ¿y los demás?

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

¿Qué es Ruby on Rails?

Un framework para el desarrollo de aplicaciones Web

Basado en el patrón MVC

Orientado a aplicaciones modeladas sobre una base de datos
relacional

Utilizando el lenguaje Ruby

Fuertemente opinioneado

...Una de tantas palabrejas de moda

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

¿Framework?

Muchos comenzamos a escribir aplicaciones Web procesando,
generando e integrando cada uno de los componentes de
nuestro sistema

Un framework nos evita tener que encargarnos de las partes
más repetitivas del desarrollo, de la integración de nuestro
sistema

Y al hacerlo, se asegura de que sigamos la lógica general de
sus desarrolladores

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

El patrón MVC

Patrón Modelo, Vista, Controlador (Trygve Reenskaug, 1979)

Patrón de arquitectura de sistemas que separa los
componentes de un sistema en tres roles claramente separados
— Modelo, Vista y Controlador

Este patrón no se limita a sistemas Web (fue descrito
formalmente por primera vez en 1979), aunque estos
típicamente se ajustan a él a la perfección

No hace falta trabajar dentro de un framework para escribir
sistemas MVC - Pero ayuda a mantener la separación y el
flujo de información presentes.

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

El patrón MVC

http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

Modelo La representación de los datos y las relaciones entre

ellos (llamado también lógica de negocios)

Vista La interfaz al usuario

Controlador Quien recibe los eventos solicitados a través de la
vista, los empuja al modelo, y genera/refresca a la
vista

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Sobre una base de datos relacional

Los modelos en Rails (casi siempre) utilizan una base de datos
relacional como medio de persistencia

Una parte fundamental de Rails es su ORM (mapeo
objeto-relacional), ActiveRecord; nos permite tratar
directamente a cada uno de los registros como objetos de
Ruby. Trabajando con Rails, es muy poco frecuente escribir
SQL (aunque siempre es importante poder hacerlo).
ActiveRecord es un ORM muy inteligente, permitiéndonos
expresar fácilmente relaciones y validaciones complejas

Rails asume una base de datos tonta, al estilo MySQL —
Busca que las validaciones y restricciones radiquen en los
modelos, no en la base. Es posible utilizar bases de datos más
potentes y aprovechar sus ventajas — aunque a costa de
repetirnos (ver más adelante: DRY)

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Fuertemente opinioneado

Los desarrolladores de Rails decidieron impulsar toda una cultura

de desarrollo de software, a través de diversos principios de

desarrollo (que detallaremos un poco más adelante), entre ellos:

Metodologías de desarrollo ágil

Convención sobre configuración

DRY: ¡No te repitas!

Andamiaje

Generadores

Desarrollo basado en pruebas

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Frameworks: ¿Buenos? ¿Malos? ¿Feos?

Muchas veces, nos cuesta cambiar de nuestra forma
tradicional de desarrollo para ajustarnos al estilo de
pensamiento de un framework. Sin embargo, muy
probablemente lo terminaremos agradeciendo

Por definición, comenzar a trabajar con un framework implica
aprender un muy extenso API. Vale la pena invertir el tiempo,
para poder realmente aprovechar las ventajas (y comprender
la idiosincracia) de un framework

A diferencia de un lenguaje (que no debe tomarnos como tope
más que un par de días aprender), aprender a usar un
framework de modo óptimo nos puede tomar varios meses.

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Frameworks: ¿Buenos? ¿Malos? ¿Feos?

Particularmente el framework Ruby on Rails es muy extenso,
inclusive comparando con otros de propósitos similares

La documentación disponible en línea
(http://api.rubyonrails.org), típicamente instalada
además junto con Rails, es muy extensa y amigable

Hay excelentes recursos, tanto en línea como en forma de libro
impreso.

Lo repito: Comenzar a emplear un framework puede ser un
paso difícil para quien está acostumbrado a trabajar a mano
alzada... Pero las ventajas comienzan a aparecer casi de
inmediato.

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Temas

1 Definiciones

2 Ruby: Un lenguaje pragmático

3 Rails: Un framework para el desarrollo Web

4 Ok... ¿y los demás?

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

¿Ruby? ¿Qué es eso?

Un lenguaje de programación

Limpia y completamente orientado a objetos

Dinámicamente extensible

Con una fuerte dosis de programación funcional

Libre de paradigmas

Con fuerte influencia de Perl, Smalltalk, Python, Lisp, Dylan y
CLU (http://es.wikipedia.org/wiki/Ruby)
Creado por Yukihiro Matz Matsumoto, a partir de 1993

Enfatiza en la comodidad al programador más que a la
máquina

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Limpia y completamente orientado a objetos

Lenguajes como Java dicen ser el epítome del purismo de la
programación orientada a objetos — Pero no lo son.
Constantemente manipulamos cosas que no son objetos (por
ejemplo, los mismos números)

En Ruby, todo es un objeto, y toda operación que hagamos
sobre un objeto será llamando a uno de sus métodos
Desde los operadores base del lenguaje (+, -, [], []=,
etc.), todo está implementado como métodos

...Y todos estos métodos admiten, claro, que modifiquemos su
comportamiento

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Limpia y completamente orientado a objetos

Ruby implementa únicamente herencia simple

Para lograr comportamientos similares al de la herencia
múltiple, tenemos el mecanismo de mixins, que nos permite
mezclar módulos dentro de la definición de una clase

El estilo de orientación a objetos de Ruby es conocida como
Duck Typing:
Si tiene cara de pato, camina como pato y hace “cuac” como
un pato, ¡es un pato!

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Dinámicamente extensible

Una clase en Ruby no es algo cerrado, terminado

Ni siquiera las clases del sistema, que pueden ser ampliadas en
cualquier momento
Hay unas simples convenciones para los nombres de los
métodos

Un método terminado en ? entrega resultado booleano
Un método terminado en ! es destructivo (altera el contenido
original del objeto, perdiendo lo que tuviera antes)
Un método que inicia con to entrega la transformación del
contenido del objeto a otra clase (por ejemplo, to s entrega
una cadena, to i un entero). Muchas clases base ofrecen estos
métodos, pero siempre podemos extenderlos (incluso en la
clase original)

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Limpia y completamente orientado a objetos

Example (Modificando una clase en vivo)

irb(main):001:0> class Fixnum
irb(main):002:1> def lastDigit; self %10; end
irb(main):003:1> def isEven?; self %2 == 0; end
irb(main):004:1> end
=> nil
irb(main):005:0> 105.lastDigit
=> 5
irb(main):006:0> 105.isEven?
=> false
irb(main):007:0> 106.isEven?
=> true

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Con una fuerte dosis de programación funcional

Una parte importante de la cultura de Ruby es aprovechar la
programación funcional a través de funciones anónimas,
closures y continuaciones

Toda expresión entrega un resultado; el resultado de una
función es el último valor evaluado en ella (no requiere un
return explícito, aunque sí lo admite)
Fuerte soporte a la introspección y metaprogramación

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Con una fuerte dosis de programación funcional

La sintaxis funcional se integra de manera muy natural con la
sintaxis orientada a objetos del lenguaje, a través de los bloques

Example (Uso de programación funcional en Ruby)

irb(main):005:0> class Fixnum
irb(main):006:1> def countDown; return 0 if self<=0;
[self, *(self-1).countDown]; end
irb(main):007:1> def isEven?; self %2 == 0; end
irb(main):008:1> end
=> nil
irb(main):009:0> 10.countDown.select {|num|
num.isEven?}.map {|num| num.to f}
=> [10.0, 8.0, 6.0, 4.0, 2.0, 0.0]

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Libre de paradigmas

El que todo sea un objeto no nos obliga a mantenerlo en
mente constantemente

Podemos escribir código completamente procedimental,
funcional, o no estructurado

...Aunque a fin de cuentas, todo termina siendo convertido a
objetos al ser evaluado por la máquina virtual

debian-logo

Definiciones

Ruby

Rails

Ok... ¿y los demás?

Enfatiza en la comodidad al programador más que a la
máquina

Yukihiro Matsumoto
Often people, especially computer engineers, focus on the machines. They think, ”By

doing this, the machine will run faster. By
  • Links de descarga
http://lwp-l.com/pdf3278

Comentarios de: Ruby on Rails: Porque hay mejores maneras de cortarse las venas que escribiendo PHP (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