Introducción a la arquitectura de software – un enfoque práctico

Introducción a la arquitectura de software – un enfoque práctico

Desde los inicios de la ingeniería software, los científicos de la computación lucharon por tener formas más simples de realizar su trabajo, ya que las cuestiones más simples, cómo imprimir un documento, guardar un archivo o compilar el código, era una tarea que podría tardar desde un día hasta una semana.

Hoy en día, contamos con herramientas que van indicando en tiempo real si tenemos un error de sintaxis en nuestro código, pero no solo eso, además, son los suficientemente inteligentes para a completar lo que vamos escribiendo, incluso, nos ayudan a detectar posibles errores en tiempo de ejecución.

La realidad es que a medida que la tecnología avanza, tenemos cada vez más herramientas a nuestra disposición, como lenguajes de programación, IDE’s, editores de código, frameworks, librerías, plataformas en la nube y una gran cantidad de herramientas que nos hacen la vida cada vez más simple, y por increíble que parezca, los retos de hoy en día no son compilar el código, imprimir una hoja, guardar en una base de datos; tareas que antes eran muy difíciles; lo curioso es que hoy en día hay tantas alternativas para hacer cualquier cosa, que por increíble que parezca, el reto de un programador hoy en día es decidirse por qué tecnología irse, eso es increíble, tenemos tantas opciones para hacer lo que sea, que el reto no es hacer las cosas, si no con que tecnologías la aremos.

Ahora bien, yo quiero hacerte una pregunta, ¿crees que hacer un programa hoy en días es más fácil que hace años?

Seguramente a todos los que les haga esta pregunta concordarán con que hoy en día es más fácil, sin embargo, y por increíble que parezca, el hecho de que las tecnologías sean cada vez más simples, nos trae nuevas problemáticas y justo aquí donde quería llegar.

A medida que las tecnologías son más simples y más accesibles para todas las personas del mundo, las aplicaciones se enfrentan a retos que antes no existían, como la concurrencia, la seguridad, la alta disponibilidad, el performance, la usabilidad, la reusabilidad, testabilidad, funcionalidad, modificabilidad, portabilidad, integridad, escalabilidad, etc, etc. Todos estos son conceptos que prácticamente no existían en el pasado, porque las aplicaciones se desarrollaban para una audiencia muy reducida y con altos conocimientos técnicos, además, se ejecutaban en un Mainframe, lo que reducía drásticamente los problemas de conectividad o intermitencia, pues todo se ejecuta desde el mismo servidor.

 

Peso:18MB

Español

PDF

[privado]

MEGAUP

RACATY

MEGA

MEDIAFIRE

[/privado]