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.
Introducción a la
La promo termina en: 3d 16h 26m 59s 🔥
Obtendras:
Incluye:
Código disponible:
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.
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.
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.
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.
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.
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.
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.
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.
Por donde empezar
Comprendiendo algunos conceptos
Atributos de calidad
Estilos arquitectónicos
Proyecto E-Commerce
Patrones arquitectónicos
Conclusiones
Incluye un proyecto final basado en Microservicios
Finaliza en: 3d 16h 26m 59s 🔥
45.00 USD
25.00 USD
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ásCliente-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ásPeer-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ásArquitectura 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ásMicrokernel
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ásService-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ásMicroservicios
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ásEvent 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ásRepresentational 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ásData 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ásData 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ásPolling
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ásWebhook
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ásLoad 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ásService 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ásService 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ásAPI 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ásAccess 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ásSingle 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ásStore 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ásCircuit 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ásLog 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ásEl 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.
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.
Este es el único libro en español que te enseña como convertirte en arquitecto de software mediante la enseñanza de los principales patrones y estilos arquitectónicos, enseñados con un proyecto final que te permitirá pasar de la teoría a un ejemplo real.
SI, Al comienzo de esta página podrás encontrar el botón de descarga.
SI, tienes un plazo de 30 días para solicitar tu reemisor total en caso de que el libro no alcance tus expectativas.
Es recomendable contar conocimientos en cualquier lenguaje de programación y patrones de diseño.
El libro se conforma de casi 500 páginas, dividido en 9 estilos arquitectónicos, 13 patrones arquitectónicos, 13 principios de diseño, los principales atributos de calidad y más de una centena de nuevos conceptos que te ayudarán a comprender los términos más utilizados por los arquitectos de software.
NO, el libro está en constante evolución, y todas las actualizaciones estarán disponibles de forma gratuita.
La compra del libro incluye acceso a un grupo privado para resolver dudas, donde yo personalmente respondo todas las preguntas.
SI, todo el libro gira al rededor un proyecto final para crear una aplicación completa con API REST y una arquitectura de microservicios.
Arquitectura de software
La oferta finaliza en: 3d 16h 26m 59s 🔥
Descuento por tiempo limitado
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
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.
© 2021, Copyright - Oscar Blancarte. All rights reserved.