Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de nuevas aplicaciones
Arquitectura UTP
Febrero - 2020
ESTRUCTURA
Consideraciones Generales
Estructura de Capas
resolvers que obtendrán los
datos remotos del backend.
REPOSITORY
PRESENTER USER CASE
DATASOURCES
Devices Layer
LOCATION
VIEW REDUCER
NOTIFICATION
Consideraciones Generales
Todo desarrollo debe seguir el stack tecnológico establecido.
Todo desarrollo debe considerar la estructura de capas establecido.
Todo desarrollo debe ser Stateless
https://medium.com/@rachna3singhal/stateless-over-stateful-applications-73cbe025f07
Todo desarrollo debe ser dockerizado.
Todo desarrollo debe capturar y escalar las excepciones, desde la especifica a la general.
Considerar construcción de log detallado para el buen registro y monitorio de eventos.
Seguir el patrón de desarrollo SOA basado en microservicios.
La comunicación entre microservicios debe ser vía servicios Rest y deben ser Api restfull.
Todos los servicios Rest deben contar con su documentación en formato Swagger, cumpliendo los principio de Open API
3.0 (https://swagger.io/specification/ https://www.openapis.org/)
Toda API REST expuesta son privadas, no se expone ninguna API de forma pública.
No se debe persistir la sesión, ni la validación de token para autenticar un usuario dentro del backend.
No debe recibir ningún token, ni gestionar la autenticación las API’s de los microservicios.
No debe persistir imágenes, archivos, ficheros planos de más de 5 MB y no de una duración mayor de 10 minutos.
Debe cumplir con un code coverage de pruebas unitarias de al menos 80% (SonarQube).
No puede tener deficiencias en la calidad de código Critical, Block, code smell con (SonarQube).
Debe cumplir con las reglas de desarrollo seguro y no tener vulnerabilidades que se encuentren en el TOP10 de OWASP.
Las fuentes deben ser versionadas en el repositorio BitBucket de UTP, no se realizan despliegues a DEV, QA y PROD de
artefactos no versionados y custodiados por UTP.
LINEAMIENTOS DE BACKEND
Estructura de Capas
Cloud On-premise
APPLICATION 123
MULTIPLE
FRONT END 123 D
SECURITY BFF APP LOGIC DATABASE
O C
M O
A R
I E
N
APPLICATION ABC D
C A
MULTIPLE
O T
FRONT END ABC SECURITY BFF APP LOGIC DATABASE R A
E
L
L A
A Y
APPLICATION XYZ Y E
MULTIPLE E R
FRONT END XYZ R
SECURITY BFF APP LOGIC DATABASE
Consideraciones de motores de BD
La exposición de Apis públicas tiene como objetivo el poder consumir recursos desde las aplicaciones Front
End o cualquier otro consumidor externo.
Consideraciones Generales
Se debe exponer API’s publica únicamente a través del servicio de AWS Api Gateway
La exposición debe ser autorizada y autenticada vía Ouath2
Todos los servicios Rest deben contar con su documentación en formato Swagger, cumpliendo los principio de Open API
3.0 (https://swagger.io/specification/ https://www.openapis.org/)
Api Gateway será el único canal de integración con las API’s Rest de los microservicios Backend.
STACK TECNOLOGICO
STACK TECNOLÓGICO
Aplicaciones
Datos
DevOps
Plataforma
ARQUITECTURA DE FRONTEND
Escribe suficiente
codigo para pasar
la prueba
BUENAS PRÁCTICAS
Principios S.O.L.I.D.
S.O.L.I.D. es el acrónimo de los 5 principios para el diseño de un programa orientado a objetos.
En ello mencionan la importancia de que cada clase debe tener una determinada función o trabajo a realizar, evitando sobrecargar
cada clase.
Del mismo modo cada objeto debería estar abierto a una extensión pero cerrado a modificaciones, esto lo logramos usando
interfaces. Evitando hacer futuros cambios sobre la misma clases y rompiendo posibles funcionalidades ya implementadas.
Finalmente, al momento de proveer dependencias a una clase, la creación de los mismos deben realizarse por un objeto o clase
externa, fuera de la clase en donde se requiera las dependencias. Aplicando ello, podemos proveer distintos tipos de dependencias o
los mismos(Singleton) según se requiera.
S O L I D
Single Open-Closed Liskov Interface Dependency
Responsibility Principle Substitution Segregation Inversion
Principle Principle Principle Principle
BUENAS PRÁCTICAS
Clean/Hexagonal Architecture
puntos de entrada core proveedores de data
-
SISTEMA
las dependencias de código sólo pueden provenir CASOS DE USO
de los niveles externos hacia adentro.
El código en las capas internas no puede tener
conocimiento de las funciones en las capas
externas. JOBS DISPOSITIVOS RED
CONFIGURACIÓN
BUENAS PRÁCTICAS
CSS Architecture
El diseño atómico nos permite tomar sistemas de diseño complejos y descomponerlos en componentes más pequeños llamados
átomos. Entonces, es mucho más fácil para todos los involucrados en el proyecto ver qué partes del sitio se pueden reutilizar.
Diagrama GraphQL
Payments
{ REST }