Introducción a la

|

La promo termina en: 3d 16h 26m 59s 🔥

$45.00 USD

$25.00 USD

Obtendras:

  • Libro digital
  • Video curso
  • Chuleta
  • Actualizaciones
  • Grupo privado

Incluye:

  • 500+ páginas
  • 8+ hrs
  • Incluida
  • Sin costo
  • Para dudas

Código disponible:

  • Java / React

Convierte en un arquitecto de software con la guía más completa en español, donde hablaremos de los principales estilos y patrones arquitectónicos.

Introducción a la Arquitectura de software

Algunos de nuestros lectores trabajan en

Acceenture
waveswaveswaves

¿Qué encontrarás en este libro?

Estilos y patrones de diseño

Principales estilos y patrones arquitectónicos

Analizaremos la diferencia entre patrones y estilos arquitectónicos, con más de 20 casos explicados a la perfección.

Estilos y patrones de diseño

Atributos de calidad

Aprenderemos a identificar y garantizar que el software cumpla con los principales atributos de calidad, los cuales son la base para crear aplicaciones robustas.

Estilos y patrones de diseño

Principales principio de diseño

Los principios de diseño son técnicas que nos ayudarán a diseñar soluciones más robustas, cohesivas, desacopladas, escalables y con una menor propensión a errores.

Estilos y patrones de diseño

Decenas de nuevos conceptos y términos

Este libro cuenta con varias decenas de nuevos conceptos y terminología que utilizamos en la arquitectura de software y que son fundamentales para tener un vocabulario común.

Estilos y patrones de diseño

Introducción a la arquitectura de software

Comenzaremos explicando los orígenes de la arquitectura de software y como este ha evolucionado hasta convertirse en lo que hoy es, incluyendo del rol del arquitecto de software en la actualidad.

Estilos y patrones de diseño

Proyecto final

Dado que la arquitectura es en su mayoría conceptos abstractos y difíciles de imaginar, hemos agregado un proyecto final que implementará muchos de los conceptos, patrones y estilos arquitectónicos que explicamos en este libro.

wavewave

Acerca del libro

Esta es una breve descripción del libro

Una breve reseña por parte del autor

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.

wavewave

Índice del libro

El libro cuenta con más de 500 páginas.

1

Por donde empezar

  • ¿Qué es la arquitectura de software?
  • ¿Qué son los patrones de diseño?
  • ¿Qué son los patrones arquitectónicos?
  • ¿Qué son los estilos arquitectónicos?
  • La relación entre patrones de diseño, arquitectónicos y estilos arquitectónicos
2

Comprendiendo algunos conceptos

  • Encapsulación
  • Acoplamiento
  • Cohesión
  • Don't repeat yourself (DRY)
  • Separation of concerns (SoC)
  • La Ley de Demeter
  • Keep it simple, Stupid! (KISS)
  • Inversion of control (IoC)
  • S.O.L.I.D
  • Single responsibility principle (SRP)
  • Open/closed principle (OCP)
  • Liskov substitution principle (LSP)
  • Interface segregation principle (ISP)
  • Dependency inversion principle (DIP)
3

Atributos de calidad

  • Importancia de los atributos de calidad
  • Clasificación de los atributos de calidad
  • Performance (rendimiento)
  • Security (Seguridad)
  • Availability (disponibilidad)
  • Functionality (funcionalidad)
  • Usabilidad
  • Modificabilidad
  • Portabilidad
  • Reusabilidad
  • Testabilidad
  • Escalabilidad
4

Estilos arquitectónicos

  • Monolítico
  • Cliente-Servidor
  • Peer-to-peer (P2P)
  • Arquitectura en Capas
  • Microkernel
  • Service-Oriented Architecture (SOA)
  • Microservicios
  • Event Driven Architecture (EDA)
  • Representational State Transfer (REST)
5

Proyecto E-Commerce

  • El Proyecto E-Commerce
  • Instalación
  • Iniciar la aplicación
  • Cómo utiliza la aplicación
6

Patrones arquitectónicos

  • Data Transfer Object (DTO)
  • Data Access Object (DAO)
  • Polling
  • Webhook
  • Load Balance
  • Service Registry
  • Service Discovery
  • API Gateway
  • Access token
  • Single Sign On (Inicio de sesión único)
  • Store and forward
  • Circuit Breaker
  • Log aggregation
7

Conclusiones

  • Comentarios finales del autor

Incluye un proyecto final basado en Microservicios

Finaliza en: 3d 16h 26m 59s 🔥

45.00 USD

25.00 USD

Estilos arquitectónicos

Un estilo arquitectónico establece un marco de referencia a partir del cual es posible construir aplicaciones que comparten un conjunto de atributos y características mediante el cual es posible identificarlos y clasificarlos.

wave

Monolítico

El estilo arquitectónico monolítico consiste en crear una aplicación autosuficiente que contenga absolutamente toda la funcionalidad necesaria para realizar la tarea para la cual fue diseñada, sin contar con dependencias externas que complementen su funcionalidad. En este sentido, sus componentes trabajan juntos, compartiendo los mismos recursos y memoria. En pocas palabras, una aplicación monolítica es una unidad cohesiva de código.

Leer más
Estilo monolítico

Cliente-Servidor

Cliente-Servidor es uno de los estilos arquitectónicos distribuidos más conocidos, el cual está compuesto por dos componentes, el proveedor y el consumidor. El proveedor es un servidor que brinda una serie de servicios o recursos los cuales son consumidos por el Cliente.

Leer más
Estilo monolítico
wave

Peer-to-peer (P2P)

El estilo arquitectónico Red entre iguales (Peer-to-peer, P2P) es una red de computadoras donde todos los dispositivos conectados a la red actúan como cliente y servidor al mismo tiempo. En esta arquitectura no es necesario un servidor central que administración

Leer más
Estilo monolítico
wave

Arquitectura en capas

La arquitectura en capas es una de las más utilizadas, no solo por su simplicidad, sino porque también es utilizada por defecto cuando no estamos seguros que arquitectura debemos de utilizar para nuestra aplicación.

Leer más
Estilo monolítico
wave

Microkernel

El estilo arquitectónico de Microkernel o también conocido como arquitectura de Plug-in, permite crear aplicaciones extensibles, mediante la cual es posible agregar nueva funcionalidad mediante la adición de pequeños plugins que extienden la funcionalidad inicial del sistema.

Leer más
Estilo monolítico

Service-Oriented Architecture (SOA)

SOA es un estilo arquitectónico que se apoya en la creación de servicios para lograr la integración de las aplicaciones, exponiendo servicios de alto nivel con ayuda de estándares abiertos para poder ser consumidos por cualquier cliente sin importar la tecnología.

Leer más
Estilo monolítico
wave

Microservicios

El estilo de Microservicios consiste en crear pequeños componentes de software que solo hacen una tarea, la hace bien y son totalmente autosuficientes, lo que les permite evolucionar de forma totalmente independiente del resto de componentes.

Leer más
Estilo monolítico
wave

Event Driven Architecture (EDA)

La arquitectura dirigida por eventos o simplemente EDA (por sus siglas en inglés) es una arquitectura asíncrona y distribuida, pensada para crear aplicaciones altamente escalables. En una arquitectura EDA los componentes no se comunican de forma tradicional, en la cual se establece comunicación de forma síncrona, se obtiene una respuesta y se procede con el siguiente paso. En esta arquitectura, se espera que las aplicaciones lancen diversos “eventos” para que otros componentes puedan reaccionar a ellos, procesarlos y posiblemente generar nuevos eventos para que otros componentes continúen con el trabajo.

Leer más
Estilo monolítico
wave

Representational State Transfer (REST)

REST es un conjunto de restricciones que crean un estilo arquitectónico y que es común utilizarse para crear aplicaciones distribuidas. REST fue nombrado por primera vez por Roy Fielding en el año 2000 donde definió a REST como.

Leer más
Estilo monolítico

Patrones arquitectónicos

Los patrones arquitectónicos se distinguen de los patrones de diseño debido a que tiene un alcance global sobre los componentes, ya que afectan su funcionamiento, su integración o la forma en que se comunican con otros componentes.

wave

Data Transfer Object (DTO)

El patrón DTO tiene como finalidad la creación de objetos planos (POJO) con una serie de atributos que puedan ser enviados o recuperados del servidor en una sola invocación, de tal forma que un DTO puede contener información de múltiples fuentes o tablas y concentrarlas en una única clase simple.

Leer más
Estilo monolítico

Data Access Object (DAO)

El patrón Arquitectónico Data Access Object (DAO) permite separar la lógica de acceso a datos de los Objetos de negocios (Bussines Objects), de tal forma que el DAO encapsula toda la lógica de acceso de datos al resto de la aplicación.

Leer más
Estilo monolítico
wave

Polling

El polling consiste en realizar una serie de consultar repetitivas y con una periodicidad programada en búsqueda de nueva información, de esta forma, el sistema interesado tendrá que ir al servidor y preguntar si hay nuevas actualizaciones, si las hay, el servidor las retornará, en otro caso, el cliente seguirá preguntando cada x tiempo hasta que encuentre nuevas actualizaciones.

Leer más
Estilo monolítico

Webhook

Un webhook o también llamado API de devolución de llamada web es un patrón que permite proporcionar notificaciones a otras aplicaciones en tiempo real.

Leer más
Estilo monolítico
wave

Load balancer

El patrón load balance o equilibrio de cargas consiste en repartir la carga de trabajo entre un conjunto de servidores que trabajan en conjunto para dar la impresión que trabajan como un solo servidor, incrementando el poder de procesamiento a medida que se agregan más servidores.

Leer más
Estilo monolítico

Service Registry

El patrón Service Registry propone crear un servidor centralizado donde todos los servicios se registren al momento de encender, de esta forma, cada servicio le tendrá que enviar la dirección IP, el puerto en el que responde al servidor y finalmente, el identificador del servicio, que por lo general es un nombre alfanumérico que ayude a identificarlo, de esta forma, el servidor central o registro, sabrá exactamente dónde está cada servicio disponible.

Leer más
Estilo monolítico
wave

Service discovery

El Service Discovery es un componente que se encarga de recuperar del Service Registry todas las instancias de los servicios disponibles y realizar el balance de cargas, sin embargo, existen dos formas en la que este descubrimiento se pueda dar, del lado del cliente y del lado del servidor.

Leer más
patrón service discovery

API Gateway

El API Gateway funciona como una compuerta del API al mundo, desde la cual podemos exponer nuestros Microservicios personalizando la experiencia para cada cliente, de esta forma, podemos indicar que servicios exponer, el formato de los datos retornados, e incluso, controlar el acceso, además, nos permite proporcionar un único punto de acceso para toda el API, lo que podemos aprovechar para agregar la seguridad que sea necesaria.

Leer más
patrón api gateway
waves

Access token

El acceso por Tokens es una estrategia que se utiliza para aumentar la seguridad de las aplicaciones, evitando que los usuarios tengan que enviar constantemente sus credenciales al servidor, al mismo tiempo que se reducen drásticamente la posibilidad de que sea interceptada o sea replicada a otros sistemas.

Leer más
Patrón single Sign On
wave

Single Sign On (Inicio de sesión único)

El SSO es una estrategia que permite separar la lógica de autenticación de la aplicación en un componente independiente que tiene cómo única responsabilidad la de autenticar a los usuarios, de esta forma, todos los usuarios son redireccionados al SSO para para la autenticación.

Leer más
Patrón single Sign On
wave

Store and forward

El patrón Store and forward consiste en el almacenamiento local de los mensajes para su envío a un servidor remoto, de esta forma, el mensaje se almacena primeramente de forma local para impedir que se pierda, luego, el mensaje local es reenviado al servidor remoto cuando este puede aceptar el mensaje, de esta forma se garantiza la entrega del mensaje incluso si la aplicación destino no está en condiciones de recibirlo en ese momento.

Leer más
Patrón store and forward
wave

Circuit breaker

El patrón Circuit Breaker es muy parecido a un fusible, el cual se funde para evitar que una descarga eléctrica afecte al circuito, de esta misma forma, Circuit Breaker permite abrir el circuito para evitar que un componente que está fallando se ejecute y en su lugar, realizamos una acción secundaria para mitigar el error.

Leer más
Patrón circuit breaker
wave

Log aggregation

El patrón Log Aggregation permite recopilar y homologar los logs producidos por diferentes servicios distribuidos de tal forma que puedan ser analizados de forma simple con una trazabilidad completa de punta a punta, evitando tener que ir a buscar los logs directamente al sistema operativo.

Leer más
Patrón log aggregation
bubblebubble

Proyecto final

Desarrollaremos una app completa con un backend basado en microservicios y usando gran parte del conocimiento adquirido en el libro

proyecto final del libro

El proyecto consta de una aplicación de comercio electrónico construido con un potente backend basado en microservicios, el cual es accedido por medio de un API Gateway y autenticación por medio de un Single Sign On (SSO) basado en Tokens.

La arquitectura está diseñada para escalar, por lo que soporta múltiples instancias de cada microservicio con la finalidad de balancear la carga, además, todos los servicios implementan el patrón Service Discovery, lo que hace que no sean dependientes de una dirección IP y puerto, lo que hace que podremos escalar el sistema sin necesidad de reiniciar el sistema.

El proyecto final está compuesto de un total de 8 microservicios e implementa un total de 13 patrones arquitectónicos que trabajan en perfecta sincronía para dar vida a un API totalmente robusto y escalable capaz de soportar aplicaciones para empresas de clase mundial.

waveswaveswaveswaves
Chuleta

Obten las chuletas definitivas (Grátis)

Descarga completamente gratis las chuletas definitvas de patrones arquitectónicos, estilos arquitectónicos y atributos de calidad. Imprímela, compártela y aprovéchala al máximo.

lineline

Preguntas frecuentes

Si no resolvemos tus dudas, puedes escribirnos por medio del chat de la página

¿Qué diferencia tiene este libro con el resto?
¿Puedo descargar una muestra gratis?
¿El libro cuenta con alguna garantía?
¿Qué conocimientos requiero?
¿Qué tan extenso es el libro?
¿Tengo que pagar por las actualizaciones?
¿Qué pasa si tengo una duda?
¿El libro cuenta con un proyecto final?

Precio

Recuerda que todos nuestros productos cuenta con la garantía de 30 días.

Reactive programmingReactive programmingReactive programming
bg

Arquitectura de software

$45.00$25.00/USD

La oferta finaliza en: 3d 16h 26m 59s 🔥

Descuento por tiempo limitado

wave
  • waveLibro electrónico (PDF)
  • waveCurso grabado (acceso 24x7)
  • waveChuleta de arquitectura de software
  • waveActualizaciones gratuitas de por vida
  • waveAcceso al grupo privado para resolución de dudas
precio
wave
Garantía

No tienes nada que perder...

Si en 30 días el libro no alcanza tus expectativas te regresamos el 100% de tu dinero, sin preguntas, sin excusas.

Ver condiciones

waveswaves

Un poco sobre el autor

Oscar Blancarte es un arquitecto de software con más de 18 años de experiencia en el mundo del desarrollo de software. Actualmente es arquitecto de software en Red Hat desde donde aporta su conocimiento y experiencia para clientes a nivel mundial.

Oscar Blancarte cuanta actualmente con varias certificaciones, como Java Programmer, Análisis y Diseño Orientado a Objetos (IBM) y Oracle IT Architect (Oracle), Red Hat Certified Specialist in Containers y Red Hat Certified Cloud-native Developer. A lo largo de su carrera ha trabajado para diversas empresas del sector de TI, entre las que destacan su participación en diseños de arquitectura de software y consultoría para clientes de los sectores de Retail, Telco y Health Care.

Oscar Blancarte es, además, autor de su propio blog https://www.oscarblancarteblog.com desde el cual está activamente publicando temas interesantes sobre Arquitectura de software y temas relacionados con la Ingeniería de Software en general. Desde su blog ayuda a la comunidad a resolver dudas y es por este medio que se puede tener una interacción más directa con el autor.

Además, es un apasionado por el emprendimiento, lo que lo ha llevado a emprender en diversas ocasiones, como es el caso de Codmind, una plataforma de educación online, Snipping Code, una plataforma de productividad para desarrolladores donde pueden guardar pequeños fragmentos de código repetitivos y Reactive Programming, la plataforma en la cual publica sus libros e invita a otros a desarrollar sus propias obras.

waveswaves
wave

Nuestros lectores dicen

Algunas de las personas que han tenido la oportunidad de leer mis libros.

wave

Otros de mis libros

Los siguientes libros también son de mi autoría.

Introducción a los patrones de diseño

Introducción a los patrones de diseño

La oferta finaliza en: 10d 12h 40m 🔥

$45$25 USD
Saber más
Documentación ágil de arquitectura de software

Documentación ágil de arquitectura de software

La oferta finaliza en: 10d 12h 40m 🔥

$45$25 USD
Saber más
Aplicaciones reactivas con React, NodeJS & MongoDB

Aplicaciones reactivas con React, NodeJS & MongoDB

La oferta finaliza en: 10d 12h 40m 🔥

$45$25 USD
Saber más
waveswaves

¿Tienes algo en mente?

Contáctame y haremos una llamada para ayudarte

Reactive programming
LinkedinYoutubeTwitterFacebook

© 2021, Copyright - Oscar Blancarte. All rights reserved.

Whatsapp