Presentación dada en el año 2007 en Perl Mongers sobre la interesante tecnología que desplegamos para el sitio http://inmobiliarios.com.ve/, que nos permitió demostrar la aplicación de técnicas de búsqueda vertical sobre sitios web inmobiliarios del mercado venezolano.
3. Motor... Caja... Carrocería... Accesorios... Estadísticas
Software de Inmobiliarios.com.ve
Todo el software que usamos es libre
Todos los procesos de la operación son automáticos . . .
. . . la instalación
Todo el software está en paquetes Debian.
. . . despliegue
Las estructuras de base de datos se generan
programáticamente.
. . . las pruebas de regresión
Pruebas automatizadas sobre todos los aspectos del sitio web.
No, no necesitamos ISO-9000, gracias
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
4. Motor... Caja... Carrocería... Accesorios... Estadísticas
PostgreSQL
Motor de base de datos
El mejor y más completo manejador
de base de datos relacional, libre . . .
. . . cumple con todos los estándares
. . . 100 % ACID, fuera de la caja
. . . se inicia el desarrollo en los 80 –
más de 7 años de evolución en el core
Replicación SM-MS con promoción
automática – 3 seg de latencia
observada sobre Internet público
Procedimientos almacenados en varios
lenguajes, incluyendo Perl
Manejo eficiente de contenido
no-escalar, como fotos
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
5. Motor... Caja... Carrocería... Accesorios... Estadísticas
Debian/GNU Linux
Libertad bajo el capó
No tenemos que preocuparnos por la
licencia: Todo es libre
La más ámplia cobertura de CPAN en
sistemas Linux – lo que falta se instala
con dh-make-perl
Abundantes herramientas de control
de calidad
Soporte multi-plataforma perfecto:
Servidores idénticos bajo arquitecturas
Intel y PPC
Herramientas para construcción y
distribución de paquetes
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
6. Motor... Caja... Carrocería... Accesorios... Estadísticas
DBIx::Class + SQL Fairy
Aceleración del desarrollo
Nuestros programas no contienen SQL
– sólo Perl
Crear el esquema de base de datos es
muy simple. . .
$ ch−d e p l o y −−w i t h −d r o p
Podemos usar bases de datos más
livianas en nuestros equipos personales
y de desarrollo sin cambiar el
código. . .
. . . de hecho, cualquier base de datos
soportada por DBI
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
7. Motor... Caja... Carrocería... Accesorios... Estadísticas
mod_perl + Apache Web Server
Más kilómetros por litro
Seguridad y confiabilidad
Hacemos modificaciones profundas en
la forma de atender las peticiones web
Persistencia. . .
. . . conexiones a la base de datos
. . . en los programas
. . . en las plantillas, ayudando a
HTML::Template
Configuración simple, junto a la de
Apache
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
8. Motor... Caja... Carrocería... Accesorios... Estadísticas
CGI::Application
¿Para qué retroceso?
Aplicaciones web simples, basadas en
estados
Menú de plugins para muchas
funciones . . .
. . . autenticación
. . . CAPTCHA
Mínima exposición de información
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
9. Motor... Caja... Carrocería... Accesorios... Estadísticas
Template::Toolkit + HTML::Template
Latonería y pintura
El layout del sitio se genera
estáticamente, cuando hay cambios
que lo requieren
Las aplicaciones mantienen la
separación con la vista – look & feel
uniforme
El contenido puede guardarse donde
tenga más sentido: Archivos planos o
base de datos
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
10. Motor... Caja... Carrocería... Accesorios... Estadísticas
Test::More
Arnés de prueba que acompaña a las aplicaciones
Fácil de usar – muchas pruebas en poco código . . .
@ r s = $schema−>r a t e _ d a t a ( ’ n1 ’ ) ;
i s ( $ r s [ 0 ] , 5 , ’ Correct count of r a t i n g s ’ ) ;
i s ( $rs [ 1 ] , 3 , ’ Correct average of r a t i n g s ’ ) ;
i s ( $ r s [ 2 ] , 1 5 , ’ C o r r e c t sum o f r a t i n g s ’ ) ;
. . . no sólo prueban el software . . .
l i k e ( $msg−>head−>g e t ( ’ R e p l y −To ’)−>u n f o l d e d B o d y ,
q r /^<? i c v . t e s t e r @foo . com>?/ i ,
" $ s : R e p l y −To s e t t o t h e s e n d e r " ) ;
l i k e ( $msg−>head−>g e t ( ’ To ’)−>u n f o l d e d B o d y ,
q r /^<? i c v . t e s t e r @foo . com>?/ i ,
" $ s : To s e t t o t h e i n v i t e e " ) ;
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
11. Motor... Caja... Carrocería... Accesorios... Estadísticas
WWW::Mechanize
Fácil acceso al contenido web, siguiendo todos los estándares
Integración elemental con otros módulos útiles . . .
Útil para generar casos de prueba . . .
my $ j a r 1 = HTTP : : C o o k i e s −>new ( ) ;
my $mech1 = T e s t : :W W: : Mechanize −>new
W
( c o o k i e _ j a r => $ j a r 1 ) ;
$mech1−>get_ok ( " h t t p : / / $ s . i n m o b i l i a r i o s . com . v e / " ,
" $s : Hit 1" ) ;
$ j a r 1 −>s c a n (& c b _ c h e c k _ c o o k i e ) ;
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
12. Motor... Caja... Carrocería... Accesorios... Estadísticas
La magia de /quiero. . .
Espacio web virtual, generado para ayudar al usuario y a
Google
Manipulación del URL para mantener legibilidad – REST
El más rápido acceso posible a la búsqueda
http://inmobiliarios.com.ve/quiero/apartamento/ya
Compatible con cualquier navegador web
Implementación ligera – mínimo consumo de recursos
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV
13. Motor... Caja... Carrocería... Accesorios... Estadísticas
Algunas estadísticas...
. . . al 14 de agosto del 2007
Líneas de código: 9987
Funciones / métodos: 144
Líneas / método: 6.3
Complejidad de McCabe: 6.35 (main), 1.6 (métodos)
Pruebas
Calidad y correctitud de código: 3577
Regresión: 794
Líneas de código: 8626
Velocidad de desarrollo
Aproximadamente 180 horas hombre en ingeniería de software
Primer commit: enero 28, 2007
Último commit: agosto 14, 2007
639 revisiones (Una nueva versión cada 3 días)
Hernández-Novich, Muñoz Inmobiliarios.com.ve
ICV