SlideShare une entreprise Scribd logo
1  sur  59
( in ) signia ,[object Object]
Juan María   Martinez Arce Carlos   Kozuszko
Descubriendo   Ruby on Rails Desarrollo Agil de Aplicaciones Web
> tiempo  > productividad
¡Tiempo!
¿Desarrollo Web?
[object Object],[object Object]
+ Cobertura Global
+ Bajos requerimientos de Hardware
+ Fácil de Usar
+ Mantenimiento
- Seguridad
Desktop vs Web
Mejores Prácticas
D R Y Don’t Repeat Yourself!
MVC Model View Controller
 
ORM Object Relational Mapping
ORM – Active Record
Control de Versiones
 
Convention over Configuration Convención sobre configuración
Frameworks
Frameworks & Libraries
Frameworks tradicionales ,[object Object],[object Object],[object Object],[object Object]
Frameworks ágiles ,[object Object],[object Object],[object Object]
 
Conociendo  ( in ) signia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿ Cómo hacemos ?
( in ) signia elige
( in ) signia elige
( in ) signia elige
( in ) signia elige
¿ Por qué Ruby on Rails ?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object]
¡Nos gusta mucho!
Puntos fuertes de Rails
Open Source
Plataformas soportadas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Convención sobre Configuración
Ventajas ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],class   Usuario < ActiveRecord::Base belongs_to   :empresa end class   Persona < ActiveRecord::Base has_many   :empresas end
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],http://www.demo.com   -> LoginController.index http://www.demo.com/empresas/show/1   -> EmpresasController.show http://www.demo.com/empresas/edit/1   -> EmpresasController.edit http://www.demo.com/personas/show/5   -> PersonasController.show http://www.demo.com/personas/edit/5   -> PersonasController.edit
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Plugins ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Menos conversación…   Más acción ,[object Object]
¿dudas, consultas, opiniones? ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Muchas gracias!

Contenu connexe

Tendances

Security in MVC Core by Hugo Biarge
Security in MVC Core by Hugo BiargeSecurity in MVC Core by Hugo Biarge
Security in MVC Core by Hugo BiargePlain Concepts
 
Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetEsteban Soraire
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera apiCloudAppi
 
6. Validando Las Entradas De Usuario
6.  Validando Las Entradas De Usuario6.  Validando Las Entradas De Usuario
6. Validando Las Entradas De Usuarioguest3cf6ff
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJSCarlos Azaustre
 
Taller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaTaller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaOpenExpoES
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersJavier Suárez Ruiz
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsJavier Suárez Ruiz
 
Introduccion a AngularJS
Introduccion a AngularJSIntroduccion a AngularJS
Introduccion a AngularJSOscar Gensollen
 
Presentacion moodler
Presentacion moodlerPresentacion moodler
Presentacion moodlercarmensp
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerCloudAppi
 
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsdotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsJavier Suárez Ruiz
 

Tendances (14)

Security in MVC Core by Hugo Biarge
Security in MVC Core by Hugo BiargeSecurity in MVC Core by Hugo Biarge
Security in MVC Core by Hugo Biarge
 
Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.Net
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
 
6. Validando Las Entradas De Usuario
6.  Validando Las Entradas De Usuario6.  Validando Las Entradas De Usuario
6. Validando Las Entradas De Usuario
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJS
 
Taller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaTaller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfecta
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI Handlers
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.Forms
 
6.angular js
6.angular js6.angular js
6.angular js
 
Introduccion a AngularJS
Introduccion a AngularJSIntroduccion a AngularJS
Introduccion a AngularJS
 
Presentacion moodler
Presentacion moodlerPresentacion moodler
Presentacion moodler
 
Angularjs
AngularjsAngularjs
Angularjs
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsdotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
 

En vedette

administrate_me
administrate_meadministrate_me
administrate_meINSIGNIA4U
 
Del Freelancing a la Empresa. La historia de INSIGNIA.
Del Freelancing a la Empresa. La historia de INSIGNIA.Del Freelancing a la Empresa. La historia de INSIGNIA.
Del Freelancing a la Empresa. La historia de INSIGNIA.INSIGNIA4U
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingINSIGNIA4U
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 
Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012INSIGNIA4U
 
Software Factory 2.0: El Modelo Agil
Software Factory 2.0: El Modelo AgilSoftware Factory 2.0: El Modelo Agil
Software Factory 2.0: El Modelo AgilINSIGNIA4U
 

En vedette (9)

Spinach
SpinachSpinach
Spinach
 
administrate_me
administrate_meadministrate_me
administrate_me
 
Html5 offline
Html5 offlineHtml5 offline
Html5 offline
 
Web basics101
Web basics101Web basics101
Web basics101
 
Del Freelancing a la Empresa. La historia de INSIGNIA.
Del Freelancing a la Empresa. La historia de INSIGNIA.Del Freelancing a la Empresa. La historia de INSIGNIA.
Del Freelancing a la Empresa. La historia de INSIGNIA.
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile Prototyping
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012
 
Software Factory 2.0: El Modelo Agil
Software Factory 2.0: El Modelo AgilSoftware Factory 2.0: El Modelo Agil
Software Factory 2.0: El Modelo Agil
 

Similaire à Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Airespeterpunk
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"www.encamina.com
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Nelson Rojas Núñez
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microserviciosPedro J. Molina
 
02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intixRoger CARHUATOCTO
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guestd24c393
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPHP Vigo
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APICloudAppi
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guest976d083
 
Drupal 7 a través Drupal Commerce
Drupal 7 a través Drupal CommerceDrupal 7 a través Drupal Commerce
Drupal 7 a través Drupal CommercePedro Cambra
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 

Similaire à Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web) (20)

Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
 
Servicios web
Servicios webServicios web
Servicios web
 
Diseño web
Diseño webDiseño web
Diseño web
 
Diseño web
Diseño webDiseño web
Diseño web
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
 
Cien usos con serverless
Cien usos con serverlessCien usos con serverless
Cien usos con serverless
 
02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix
 
Liferay 6.1 Service Builder
Liferay 6.1  Service BuilderLiferay 6.1  Service Builder
Liferay 6.1 Service Builder
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
 
RAML
RAMLRAML
RAML
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Drupal 7 a través Drupal Commerce
Drupal 7 a través Drupal CommerceDrupal 7 a través Drupal Commerce
Drupal 7 a través Drupal Commerce
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Salesforce Bilbao Elevate '15 - 4th developer workshop
Salesforce Bilbao Elevate '15 - 4th developer workshopSalesforce Bilbao Elevate '15 - 4th developer workshop
Salesforce Bilbao Elevate '15 - 4th developer workshop
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 

Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Notes de l'éditeur

  1. A lo largo de esta charla vamos a mostrar cómo el uso de herramientas basadas en los conceptos más sólidos de la &amp;quot;ingenieria del software&amp;quot; pueden ayudarnos a aprovechar mejor el tiempo del que disponemos habitualmente a fin de alcanzar una mayor productividad. Es justo aclarar que todos los conceptos que desarrollaremos a lo largo de esta presentación, si bien están bien consolidados a través de varias horas de estudio e investigación, estarán enfocados prioritariamente en nuestras propias conclusiones, surgidas del uso cotidiano de estas tecnologías en proyectos concretos . En definitiva, al final de esta presentación tendrán una idea clara de aquellos conceptos y tecnologías que les ayudarán a convertirse en profesionales del software más productivos.
  2. ¡Atención a este concepto! El tiempo es el factor con mayor influencia en nuestras vidas como proveedores  de tecnología informática. La gran realidad del mercado de hoy, es que TODO SE ENCUENTRA LIMITADO POR EL TIEMPO . Tiempo de desarrollo. Tiempo de respueta ante una falla. Tiempo de adaptación al cambio. Tiempo de implementación. Tiempo de capacitación. Cada una de estas variables afectan y determinan el éxito o el fracaso de un proyecto, exclusivamente ante los ojos del cliente . Lo interesante es que han surgido numerosas metodologías y tecnologías orientadas a aprovechar mejor el tiempo, muchas de estas las trataremos a lo largo de esta presentación.
  3. ¡Antes de continuar es preciso aclarar algunos conceptos! En este punto, hablar del crecimiento de Internet es prácticamente redundante. Es indispensable remarcar la tendencia del mercado a orientar sus requerimientos al terreno del desarrollo web. De hecho, la mayoría de los requerimientos de las empresas se están planteando como aplicaciones web. Sin embargo, se hace indispensable tener bien claro de qué hablamos cuando nos referimos a desarrollo web, y más precisamente a aplicación web.
  4. Podemos definir a una aplicación web, como cualquier aplicación de software que accedida a través de internet, utilizando un browser como cliente. Y es en la definición de este concepto, donde encontramos las principales ventajas por las que este tipo de aplicaciones de software son tan requeridas hoy en dia:
  5. 1) Acceso Global : aprovechando Internet, una aplicación web puede ser accedida desde cualquier punto del planeta.
  6. 2) Bajos requerimientos de hardware : bajo esta arquitectura, cualquier PC que disponga de una conexión a Internet es potencialmente un puesto de trabajo.
  7. 3) Fácil de usar : dada las limitaciones de esta tecnología y el gran campo al que están destinadas, las aplicaciones web en general son muy fáciles de usar.
  8. 4) Mantenimiento : al encontrarse centralizada la aplicación en un servidor, su mantenimiento o actualización se hace más sencillo que el de una aplicación de escritorio. En este modelo no nos importa la cantidad de clientes que consuman la aplicación.
  9. Seguridad : este tópico todavía sigue siendo la gran desventaja de este modelo. Dado que a pesar de la gran difusión de Internet, no ha desaparecido en la gente el tabú de la &amp;quot;inseguridad&amp;quot; de la red.
  10. Esta tendencia se encuentra bien fundamentada en numerosos estudios estadísticos. Aunque si nos llevamos de Google Trends, es evidente que hoy el volúmen de búsquedas está volcado a favor de las aplicaciones web.
  11. Ahora voy a comenzar a hablar de un conjunto de “mejoras prácticas” o “buenas prácticas!” que nos dieron resultado a la hora de desarrollar aplicaciones web. Son prácticas que marcan una diferencia cualitativa en el desarrollo de aplicaciones. Se puede trabajar sin usarlas? De hecho sí, pero nuestra vida cambió a la hora de empezar a hacerlo. Somos más felices, dormimos más tranquilos, somos menos propénsos a ataques de pánico y cosas así. Algunas de estas prácticas son nuevas, algunas tienen muchos años de trayectoria. En estos casos no estamos descubriendo ninguna nueva tecnología, simplemente aplicando técnicas probadas por mucho tiempo, que siempre dan buenos resultados.
  12. Don’t Repeat Youself! Consiste simplemente en evitar las duplicaciones en las tareas que se realizan en un proyecto de software. Puede incluir actividades que van desde evitar el código duplicado a través de la eliminación de procedimientos o funciones repetidas, hasta la escritura de scripts que automaticen la realización de tareas repetidas. Es una filosofía que enfatiza que ningún tipo de información debe ser duplicada, ya que eso conduce a reducir la claridad y a problemas de inconsistencia. Es un concepto que surge del libro “El programador pragmático” [1], de Dave Thomas y Andy Hunt. Trata el tema de las mejores prácticas en el desarrollo de software. [1] http://www.pragmaticprogrammer.com/ppbook/extracts/rule_list.html
  13. El Modelo-Vista-Controlador es un patrón que se usa en el desarrollo de software para separar las distintas areas de una aplicación. Consiste en separar los datos (el modelo) de la interfaz de usuario (la vista), para que los cambios en la interfaz no impliquen cambios en la forma en que se manejan los datos de la aplicación. El patrón MVC soluciona este problema introduciendo un intermediario entre los datos y la interfaz, el controlador. Veamos un esquema.
  14. Cuando ingresa una petición a un servidor web, el controlador se encarga de “manejarla”, es decir, la descifra, determina la acción que tiene que realizar, obtiene los datos necesarios consultando al modelo, y luego realiza la presentación de los datos, comunicándoselos a la vista. En rails estos componentes del patrón tienen nombres específicos, ActionRecord, ActionView y ActionController.
  15. El mapeo objeto-relacional es un técnica de programación para convertir datos entre sistemas incompatibles de datos, entre una base de datos relacional y un modelo de objetos. Podría decirse que se crea una base de datos orientada a objetos virtual que puede ser accedida desde el lenguaje de programación. La principal ventaja de esta técnica es que puede lograrse en muchos casos una independencia del motor de base de datos que está utilizando la aplicación. Al acceder a los datos como si fueran objetos, es posible hacer una abstracción y dejar de utilizar el SQL que normalmente se utiliza para acceder a la base de datos. Existen distintas implementaciones según el lenguaje que se esté utilizando. Por ejemplo, para Java, una de las más conocidas es Hibernate [1]. Para Rails tenemos ActionRecord, que utiliza un modelo denomado ActiveRecord [1], que mapea un registro de la base de datos, a una instancia de un objeto en el lenguaje de programación. [1] http://www.hibernate.org [2] http://en.wikipedia.org/wiki/Active_record_pattern
  16. Este es un esquema de cómo se mapea un objeto a la base de datos. Una instancia de la clase Persona es equivalente a un registro en la tabla del mismo nombre.
  17. El control de versiones consiste en el manejo de múltimes versiones de una misma unidad de información. Los cambios que se van realizando a un documento tienen asignado un código, por ejemplo, un número de versión y está asociado a la persona que hace el campo. Ejemplos de sistemas que utilizan control de versiones son GoogleDocs y la mayoría de los motores para Wikis.
  18. Convención sobre configuración significa que el desarrollador solo tiene que especificar los aspectos no convencionales de su aplicación. Por ejemplo, si hay una clase Cliente en el modelo, la tabla correspondiente en la base de datos se llamará clientes por defecto. Solo si alguien se desvía de esta convención, como por ejemplo, como por ejemplo llamando a la tabla clientes_activos , entonces tendrá que escribir el código necesario para indicar que la tabla tiene un nombre particular.
  19. Que es un framework? Un framework es un diseño reusable para un sistema de software. Generalmente es expresado como un conjuntos de clases abstractas y la forma en que sus instancias colaboran para un tipo específico de software. Generalmente los frameworks incluyen programas de soporte y bibliotecas de código para ser utilizados por los desarrolladores. Básicamente proveen un esqueleto sobre el cual construir nuestra aplicación. Como se diferencia de una “librería”
  20. Las bibliotecas son un concepto más viejo, y son solamente una colección de clases y/o métodos utilitarios, que pueden ser llamados por nuestro código para obtener cierta funcionalidad. En cambio los frameworks, contienen principalmente llamadas a nuestro código, que permiten extender cierta funcionalidad que el framework provee por defecto.
  21. “ tradicionales” es una apreciación nuestra a falta de un mejor nombre.
  22. El punto principal que nos hace llamar a estos frameworks como frameworks ágiles es el hecho de que siempre utilizan Convención sobre configuración.
  23. (in)signia lleva ya cuatro años en el mercado, y tenemos el honor de haber participado en más de 25 proyectos tecnológicos con algunas de las empresas más importantes del mercado regional. Desde hace ya un año y medio, decidimos estratégicamente dedicarnos exclusivamente al desarrollo de aplicaciones web. Actualmente contamos con un equipo compuesto por 2 diseñadores y 4 desarrolladores, quienes se encuentran avocados al desarrollo de 7 proyectos en curso.
  24. Y la respuesta es simple. ( ...Alejados de la exclavitud y la explotación laboral por supuesto... ) Invertimos bastante tiempo en investigar y estudiar aquellas metodologías y tecnologías disponibles que nos permitan mantenernos a la altura de las cirscunstancias, en todo momento. Gracias a esta inversión en I+D, hoy podemos afirmar que contamos con la capacidad productiva más avanzada del mercado local . Al final fue todo una cuestión de elección. Pero ¿cuáles son las elecciones que tomó insignia?
  25. Elegimos Subversion como Sistema de Control de Versiones. Actualmente contamos con un repositorio central online al que podemos acceder desde cualquier parte. De este modo, aseguramos que cualquier miembro de insignia pueda acceder a una copia de trabajo específica, trabajar sobre ella y confirmar los cambios, desde cualquier lugar donde este se encuentre.
  26. Elegimos desarrollar aplicaciones basadas en los estándares propuestos para XHTML y CSS.
  27. Principalmente, elegimos no atarnos a una plataforma en particular, ni para desarrollar ni para producción. Gracias a esta desición, hoy podemos afirmar que las aplicaciones que desarrollamos pueden correr perfectamente tanto en una plataforma de Microsoft, Mac o Linux. Con respecto al ambiente de desarrollo en si, lo levantamos en estas tres plataformas. Cada plataforma presenta su desafio a la hora de configurarla como un ambiente de desarrollo.
  28. Con respecto al uso de un framework para el desarrollo de aplicaciones… De todas las alternativas que evaluamos, Ruby on Rails (… o simplemente Rails) fue la opción que más se ajustó a nuestros objetivos corporativos.
  29. Simplemente, dejemos que Rails se revele a nosotros a través de su código…
  30. Este es el código necesario para especificar un modelo en Rails. Por convención, el modelo “Empresa” se mapea directamente con una tabla llamada “empresas”. Para especificar las validaciones y las relaciones con otros modelos, Rails cuenta con DSL’s bastantes declarativos.
  31. Una vez establecido el modelo, contamos con varios métodos para acceder los datos. Find es uno de ellos. Lo interesante que además contamos con métodos como “find_or_create_” que son generados dinámicamente. Capacidad que es únicamente posible de lograr (facilmente) sobre Ruby.
  32. Asimismo, podemos acceder muy facilmente al contenido de un registro en particular.
  33. Gracias a un plugin que construimos (luego ampliaremos este concepto). Este sería el codigo necesario para generar todo el soporte web dentro de un panel de administración para usuarios autenticados para la tabla “empresas”.
  34. Este es el comando necesario para poner en producción una aplicación Rails.
  35. La principal ventaja de Rails es que se trata de un framework open source. Es decir, no es necesario adquirir licencias para trabajar. Tiene la ventaja principal de reducir el costo. Si se tratara de una aplicación que hay que instalar en los servidores del cliente, habría que incurrir en los respectivos gastos de licencia. No solo el framework es open-source, sino que lo son también la mayoría de las aplicaciones que utilizamos para trabajar con Rails. * El lenguaje Ruby * Los entornos de desarrollo (Como RadRails y Aptana) * Los plugins para incorporar en los proyectos. http://wiki.rubyonrails.org/rails/pages/OpenSource
  36. Una vez establecido el modelo, contamos con varios métodos para acceder los datos. Find es uno de ellos. Lo interesante que además contamos con métodos como “find_or_create_” que son generados dinámicamente. Capacidad que es únicamente posible de lograr (facilmente) sobre Ruby.
  37. http://agilewebdevelopment.com/plugins