blog
Desarrollo Opinión tecnología

El Manifiesto reactivo

Existe en la red una preocupación para que la web sea un “lugar mejor”. No solo para los usuarios, si no, también para los mismos desarrolladores y profesionales relacionados con el mundo del Internet; una preocupación en ser reactivo.

Es decir, una necesidad en crear aplicaciones que satisfagan la demanda de hoy y estas aplicaciones se les llaman "Aplicaciones Reactivas". Son aplicaciones que permiten que los desarrolladores puedan construir sistemas que sean dirigidos por eventos, escalables, resilientes y responsivos. Para ello se redactó el Manifiesto Reactivo que describe las características para ser reactivo.

Aplicaciones Reactivas

Reactivo es algo que responde con “facilidad a un estímulo”. Los sistemas reactivos reaccionan a  los eventos (dirigidos por eventos), reaccionan a la carga (escalables), reaccionan a los fallos y errores (son resilientes) y reaccionan a los usuarios (son responsivos).

Dirigidas por eventos

Aplicaciones que reaccionan a los eventos son aplicaciones que ofrecen flexibilidad y ayudan a reducir los costes de mantenimiento, pues su diseño se basa en una comunicación asíncrona y donde el interfaz tiene la posibilidad de centrarse en el contenido de la comunicación. El destinatario y el remitente son implementados si tener en cuenta los detalles de la propagación del evento. El destinatario se activa en el momento en que un mensaje es recibido, o ocurre un evento. Esto permite un uso eficiente de los recursos y permite que un número importante de destinatarios puedan compartir un único subproceso de hardware. Sistemas dirigidos por eventos tienden a basarse en el push, en lugar del pull.

Escalables

Una aplicación escalable tiene la capacidad de expandirse de acuerdo con su utilización. Esto se hace añadiendo “elasticidad” a la misma. Entiéndase elasticidad por “opción de añadir, o remover nodes” según petición. La escalabilidad permite minimizar los costes de tener aplicaciones en la nube y gestionar los riscos: Tener pocos recursos de hardware lleva a la pérdida de clientes, tener demasiados recursos de hardaware puede resultar en gastos innecesarios.

Resilientes

Que nuestra aplicación esté inactiva puede ser un problema importante para nuestro negocio. En el momento que el sistema simplemente deja de funcionar, ganamos clientes descontentos y mala reputación. Se utilizan diferentes técnicas para intentar resolver este problema, pero algunos son demasiado caros y peligrosos.

En una aplicación reactiva la resiliencia es parte del diseño desde el inicio. De esta forma, estando los errores y fallos en el modelo de programación, es posible reaccionar a ellos y solucionarlos. Las aplicaciones reactivas son altamente tolerantes a los fallos y son capaces de repararse a ellas mismas  en el tiempo de ejecución.

Responsivas

Responsivo es algo que “responde y reacciona apropiadamente.”  Es importante recordar que esta palabra no define la misma que se utiliza en el Diseño Web Responsivo. Las aplicaciones responsivas son colaborativas, atractivas, ricas y se ejecutan en tiempo real. En ellas, los negocios se preocupan por providenciar experiencias interactivas a sus usuarios.  Esto crea un sentido de conexión, de internet, verdad? Un ejemplo puede ser el Google Docs, que permite que los usuarios editen documentos y colaboren en tiempo real.

Conclusión

Las cuatro cualidades de las aplicaciones reactivas forman un todo, pues están interconectadas entre ellas y se puede decir y/o discutir mucho más sobre ellas. Las aplicaciones reactivas quieren ser un abordaje equilibrado para satisfacer la demanda actual, en el desarrollo de software. La idea de futuro es que los sistemas desarrollados vayan ganando esta conciencia de construir sobre una base “dirigida por eventos”, providenciando herramientas necesarias para asegurar la escalabilidad y resiliencia para finalmente soportar interacciones responsivas. Por eso yo ya he firmado el manifiesto. ¿Y tu?

Fuentes:

http://www.reactivemanifesto.org/

Formularios Web: Select Boxes

Artículo anterior

Drupal y herramientas que simplifican

Siguiente artículo
I help Organizations to use Technology to improve people's lives

También te puede interesar

Los mejores software para gestión de proyectos

3 Herramientas DevOps

Maquetar en Drupal 7: Funciones del Tema

CodyHouse