D

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

CAPACITACIÓN CULTURA DE CALIDAD DEL SOFTWARE

Taller 1: Código Limpio y Arquitectura Limpia


PARTE 1 - ARQUITECTURA LIMPIA [25/50]

INSUMOS DE DESARROLLO DEL TALLER

1. Clean Architecture: A Craftsman's Guide to Software Structure and Design, First


Edition. Robert C. Martin, 2017. (https://learning.oreilly.com/library/view/clean-
architecture-a/9780134494272/)
2. Clean Code. Robert C. Martin, 2008. (https://learning.oreilly.com/library/view/clean-
code/9780136083238/)
3. Clean Coder (Clean Coders Video Series). Robert C. Martin, 2017.
(https://learning.oreilly.com/videos/clean-coder-clean/9780134843803)
4. Clean Code Applied (Clean Coders Video Series): Building a Java Web Application
with Software Craftsmanship. Robert C. Martin, 2017.
(https://learning.oreilly.com/videos/clean-code-applied/9780134843810)

De acuerdo con la lectura asignada de Arquitectura Limpia, desarrolle el presente taller:

Bases de datos

1. Identifique si son o no relevantes los siguientes aspectos para la arquitectura de un


sistema a nivel de datos. Justifique su respuesta:

Aspecto ¿Relevante Por qué


(Sí/No)?
La base de datos

La estructura que
se le da a los
datos
Las tablas
relacionales

Los sistemas de
bases de datos
(RDBMS)
El rendimiento

Tecnologías Web

2. ¿Por qué se considera que se debe separar la interfaz de usuario (UI) de la lógica de
negocio?

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

José Alejandro Sánchez, material exclusivo capacitación de Cultura de Calidad del Software
CAPACITACIÓN CULTURA DE CALIDAD DEL SOFTWARE
Taller 1: Código Limpio y Arquitectura Limpia
_____________________________________________________________________________
____________________________________________________________________________.

3. ¿Qué patrón o qué patrones de arquitectura justifican la separación de la UI de la


lógica de negocio? (Sugerencia: capítulo 13 de Software Architecture in Practice, Len
Bass). https://es.slideshare.net/rickkazman/sap3-chapter-13-36473136

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
____________________________________________________________________________.

Importancia de los Frameworks

4. ¿Describa 3 razones por las qué Robert C. Martin recomienda no casarse con un
Framework?

Razón 1:
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________

Razón 2:
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________

Razón 3:
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________

5. Escoja al menos 2 tácticas para no tener una dependencia considerable (casamiento)


con un framework:
a. Evitar el uso del framework en el código base o central de la aplicación
b. Incluir el framework como una decisión de arquitectura
c. Evitar el uso de anotaciones en los objetos de negocio
d. Utilizar proxies para aislar el framework del core de negocio de la aplicación
e. Utilizar una versión específica del framework

Caso de estudio: Ventas de videos

José Alejandro Sánchez, material exclusivo capacitación de Cultura de Calidad del Software
CAPACITACIÓN CULTURA DE CALIDAD DEL SOFTWARE
Taller 1: Código Limpio y Arquitectura Limpia
6. A qué hace referencia el principio de responsabilidad única (Sugerencia. Investigue en
la Web sobre este principio)

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
____________________________________________________________________________.

7. Explique el enfoque “Divide y vencerás” comúnmente recomendado en construcción


de software.

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
____________________________________________________________________________.

8. Explique la relación/similitud/complemento que ve entre el “principio de


responsabilidad única” y el enfoque “divide y vencerás”

_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
____________________________________________________________________________.

Arquitectura Limpia

Complemente la lectura del libro de Robert C. Martin con el siguiente Blog:

http://xurxodev.com/por-que-utilizo-clean-architecture-en-mis-proyectos/

https://www.genbeta.com/desarrollo/principios-de-una-arquitectura-limpia-mantenible-y-
testeable

José Alejandro Sánchez, material exclusivo capacitación de Cultura de Calidad del Software
CAPACITACIÓN CULTURA DE CALIDAD DEL SOFTWARE
Taller 1: Código Limpio y Arquitectura Limpia

9. Concepto de arquitectura limpia

_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
______________________________________________________________________.

Enuncie y describa 3 características de las arquitecturas limpias

a. ___________________________________________________________________
___________________________________________________________________
__________________________________________________________________.

b. ___________________________________________________________________
___________________________________________________________________
__________________________________________________________________.

c. ___________________________________________________________________
___________________________________________________________________
__________________________________________________________________.

10. Qué enfoque de arquitectura sigue arquitectura limpia:


a. Domain Driven Design (DDD)
b. Model Driven Architecture (MDA)
c. Test Driven Development (TDD)
d. Data Driven Desing
e. Model Diven Engineering

11. Describa cada uno de los anteriores enfoques y enuncie sus ventajas y desventajas

Descripción del enfoque Ventajas Desventajas


Domain Driven Design (DDD)
es…

José Alejandro Sánchez, material exclusivo capacitación de Cultura de Calidad del Software
CAPACITACIÓN CULTURA DE CALIDAD DEL SOFTWARE
Taller 1: Código Limpio y Arquitectura Limpia
Model Driven Architecture
(MDA) es …
Test Driven Development
(TDD) es..

Data Driven Desing es …


Model Diven Engineering es

El capítulo perdido

12. Describa con sus palabras los siguientes métodos de diseño:

Método de diseño Descripción Ventajas/Desventajas


Paquete por capas
Paquete por función
Puertos y adaptadores
Paquete por componente

Aplicación práctica de Arquitectura Limpia

Seleccione un método de diseño y aplíquelo al problema del polígamo responsable que hemos
visto en clase (Sugerencia: Diagramas de las figuras 34.1, 34.2, 34.4, 34.5, 34.6 según el método
de implementación elegido.

13. Realice los diagramas de diseño correspondientes para la gestión de:


a. Esposas
b. Polígamos

Nota: Utilice draw.io o lucidchart

14. Seleccione otra entidad de dominio del problema del polígamo y realice el diagrama
de diseño correspondiente:

06-20180905y07-POOyRelacionesClases.pdf (diapositiva 43)

15. Realice una vista funcional de microservicios similar a la vista en la clase de


microservicios:

07-20180321y23-ArquitecturasMonol%C3%ADticas%20y%20Microservicios.pdf:

José Alejandro Sánchez, material exclusivo capacitación de Cultura de Calidad del Software
CAPACITACIÓN CULTURA DE CALIDAD DEL SOFTWARE
Taller 1: Código Limpio y Arquitectura Limpia

Una vista más actualizada la encuentran en: https://www.manning.com/books/microservices-


patterns (pueden descargar el capítulo 1 de forma gratuita)

Otros ejemplos los encuentran en https://microservices.io/patterns/microservices.html

José Alejandro Sánchez, material exclusivo capacitación de Cultura de Calidad del Software
CAPACITACIÓN CULTURA DE CALIDAD DEL SOFTWARE
Taller 1: Código Limpio y Arquitectura Limpia

PARTE 2 - CÓDIGO LIMPIO [25/50]

Seguramente en el LabDigital se ha enfrentado a procesos de estabilización y refactorización de


código. Para esta parte del taller ustedes deberán seleccionar algún código funcional y aplicar al
menos 10 de las buenas prácticas de código limpio. El grupo seleccionará un miembro del equipo
para presentar el resultado al auditorio y justificar por qué aplicó dichas prácticas y como cree
que va a mejorar la mantenibilidad del código, así como responder las preguntas que se le
realicen.

Partes de la sustentación [15/25] y entrega del taller [10/25]:

• Describir el propósito del código seleccionado para aplicar la práctica


• Presentar el código sin prácticas de código limpio (AS-IS)
• Presentar el código con prácticas de código limpio (TO-BE)
• Documentar las prácticas en el documento de entrega del taller justificando para cada
una de ellas el por qué tuvo que aplicarla (no es necesario anexar el código en la entrega
del taller, pero puede hacerlo si el grupo así lo decide).

José Alejandro Sánchez, material exclusivo capacitación de Cultura de Calidad del Software

También podría gustarte