Transcript
Page 1: Presentación de Be Ruby en la conferencia Rails

23 Noviembre, 2007

Page 2: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L. 2

Introducción

Lanzamos en España a finales de julio y en el Reino Unido a principios de octubre

Esperamos lanzar en USA, Alemania y Francia antes de finales de año

Principales socios en el proyecto:

Agustín Cuenca de ASPgems

Miguel Acosta y Samuel Arenas de ASK.com

Socios en cada uno de los países donde vamos a lanzar: Reino Unido, Francia, Alemania y Estados Unidos

Page 3: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L. 3

Remunera al usuario por su

navegar

Remunera al usuario por invitar a sus

amigos

Portal o página de inicio

¿Qué es BeRuby.com?

Page 4: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L. 4

BeRuby paga al usuario por navegar

Page 5: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L. 5

BeRuby paga al usuario por recomendar

El usuario ganará dinero no sólo por la actividad que él realiza sino también por la actividad que realicen aquellas personas a las que invite a formar parte de su red

Page 6: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L. 6

BeRuby como portal o página de inicio

Page 7: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L. 7

¿Cómo se eligió Rails?

Precio

Tiempo

Concebido para lanzar casi en simultáneo en varios países

Agustín como socio (no option!)

Page 8: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L.

Desde un punto de vista de negocio, como cliente:

Flexibilidad: cambio de marca, cambio en el orden de categorías, base de datos, etc.

Poder que se da a no programadores (capacidad para realizar pequeñas modificaciones en la plataforma)

Plataforma multi-idioma (de forma rápida)

Pocos errores de bucle… de hecho ninguno

Page 9: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L.

La aplicación: funcionalmente

Personalización página

Gestión de tu red: envío invitaciones

Gestión de servicios

Gestión reparto ingresos

Conexión proveedores

Conexión con Paypal

Backoffice de administración

Carga de informes

Gestión usuarios, servicios y proveedores

Page 10: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L. 10

El desarrollo

Dos desarrolladores + 1 diseñador

Desarrollo iterativo

Cambio continuo de especificaciones

Algunas decisiones críticas

Una aplicación por pais

Page 11: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L.

Algunas característcas

Aplicación multi-idioma

Aplicación multi-pais

Cada País una BBDD

Cada País una instancia en ejecución

Escalabilidad por la arquitectura

Redundancia con simplicidad

Page 12: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L.

Arquitectura de producción

2 servidores front

Varias aplicaciones:

Una por cada pais.

Todo con capistrano

2 servidores bases de datos con fail over

Memcache

Balanceador de carga

La relevancía del share-nothing.

Web 1Web 1

BBDD 1BBDD 1 BBDD 2BBDD 2

Web 2Web 2

Firewall y balanceadorFirewall y balanceador

Page 13: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L.

pluginsAction Mailer Layouts. Presentación de los mails

Active Merchant. Integración con PayPal

Acts As Authenticated. Login

Acts As Paranoid. Borrado Lógico de Registros

Calendar Date Select. Helper para selección de fechas

Content. Plugin interno para gestión de páginas y fragmentos de HTML

FckEditor. Editor gráfico de HTML

Foreign Key Migrations. Creación automática de Foreign Keys

Gems. Permite empaquetar las gemas como plugins (facilita el deployment)

Google Analytics

ParseExcel. Tratamiento de ficheros Excel

PseudoCursors. Permite simulación de cursores sobre ActiveRecord

responds_to_parent. Facilita la subida de ficheros desde AJAX.

El multilenguaje se consigue mediante una librería interna similar al plugin Gibberish (estábamos en pleno desarrollo cuando se publicó Gibberish). Soportamos modificaciones en caliente de los ficheros de literales.

Page 14: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L.

Gemas

Mechanize. Permite el crawling de páginas web

FasterCSV. Parseo de ficheros en formato CSV

MemCached. Conexión con memcached. Extendida con una librería propia

Contacts. Importación de contactos de yahoo, msn y gmail

HtmlEntities. Traducción de entidades html por su código (á == á)

Page 15: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L.

Ejemplos de bondad

No ha petado

Los bugs han sido fáciles de corregir

Horas

Cambios en requerimientos

Servicios co-branded

Cambio estrategias de reparto

Flexibilidad de negocio sin cambios de software.

Page 16: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L.

+----------------------+-------+-------+---------+---------+-----+-------+| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |+----------------------+-------+-------+---------+---------+-----+-------+| Controllers | 2943 | 2152 | 20 | 210 | 10 | 8 || Helpers | 669 | 533 | 0 | 110 | 0 | 2 || Models | 2555 | 1775 | 28 | 165 | 5 | 8 || Libraries | 1808 | 1394 | 25 | 141 | 5 | 7 || Components | 0 | 0 | 0 | 0 | 0 | 0 || Integration tests | 0 | 0 | 0 | 0 | 0 | 0 || Functional tests | 1025 | 819 | 30 | 108 | 3 | 5 || Unit tests | 531 | 403 | 14 | 50 | 3 | 6 |+----------------------+-------+-------+---------+---------+-----+-------+| Total | 9531 | 7076 | 117 | 784 | 6 | 7 |+----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 5854 Test LOC: 1222 Code to Test Ratio: 1:0.2

Rake Stats

Page 17: Presentación de Be Ruby en la conferencia Rails

MiRubi Internet S.L. 17

Los críticos de Ruby on Rails siempre

cuestionan la escalabilidad, os

agradecería que nos ayudáseis a

demostrar que esto no es una

preocupación....

Registraos en BeRuby.comGRACIAS!!

[email protected]

[email protected]


Recommended