Skip to content

Commit 1d4cb2e

Browse files
author
César Alberca
committed
Add draft
1 parent 1c344be commit 1d4cb2e

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
title: Jest Angular
3+
date: 2019-11-03
4+
locale: es
5+
image: desert.jpg
6+
---
7+
8+
Las arquitecturas reactivas te permiten seguir un modelo de push en vez de pull. Encajan muy bien en el front, donde tenemos mucho estado y mucho dinamismo y reactividad. En este artículo te cuento como implementarlas con RxJS.
9+
10+
<!-- more -->
11+
12+
Utilizaremos de ejemplo esta aplicación web donde tienes el [código aquí](https://github.com/cesalberca/who-am-i). Está hecha con RxJS, Firebase y React. Es un juego de adivinar quién es quién en tiempo real. Puedes crear una sala o unirte a una sala existente. No tiene backend, con lo que la asignación aleatoria de personajes se hace mediante una Function to Firebase. Las partidas se guardan en Firestore.
13+
14+
Con este contexto podemos empezar con la arquitectura.
15+
16+
## Arquitectura por capas
17+
18+
Normalmente podemos identificar cuatro capas principales en una aplicación:
19+
20+
1. Domain
21+
2. Application
22+
3. Infrastructure
23+
4. Delivery
24+
25+
El **dominio** es la capa más importante, aquí estará nuestra lógica de negocio, nuestro modelo, entidades, interfaces de repositorio y demás.
26+
27+
En **application** es donde guardamos el estado y nuestros [casos de uso](https://cesalberca.com/articles/use-cases-and-commands).
28+
29+
En **infrastructure** tendremos el código que está acoplado dentro de nuestro proyecto, por ejemplo un repositorio que hace peticiones HTTP está acoplado a un backend y a un protocolo en particular, y por tanto, debería estar en esta capa.
30+
31+
La capa **delivery** es cómo vamos a servir nuestra aplicación a un usuario. En front normalmente este medio es una aplicación web, pero no tendría por qué. Podríamos servirlo en una extensión, una aplicación móvil, un asistente por voz, etc.
32+
33+
## RxJS
34+
35+
Para gestionar observables suelo optar por RxJS, que cuenta con un montón de operadores para transformar y lidiar con los observables.

0 commit comments

Comments
 (0)