Skip to content

Commit 96d39f4

Browse files
committed
#335 Mejorando el objetivo 7
1 parent ca7e6eb commit 96d39f4

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

documentos/proyecto/7.Servicios.md

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ Haber superado los tests del [objetivo anterior](6.CI).
1212

1313
## Explicación
1414

15-
Todas las aplicaciones en la red tienen que usar una serie de
16-
servicios, pero dos de ellos son fundamentales. La configuración
17-
(siguiendo los principios
18-
[SOLID](https://speakerdeck.com/lemiorhan/it-is-not-solid-anymore?slide=54)
15+
Todas las aplicaciones en la red tienen que usar una serie de servicios, pero
16+
dos de ellos son fundamentales. La configuración, siguiendo los principios
17+
[SOLID](https://speakerdeck.com/lemiorhan/it-is-not-solid-anymore?slide=54),
1918
debe estar en el entorno, y por lo tanto deben usarse servicios que lo
20-
permitan. Y la actividad de una aplicación tiene que ser observable,
21-
así que tendrán que registrarla, sea normal o errónea.
19+
permitan. Y la actividad de una aplicación tiene que ser observable, así que
20+
tendrán que registrarla, sea normal o errónea.
2221

2322
En el primer caso, la configuración tiene que incluir diferentes
2423
posibles niveles de la misma, desde configurar desde línea de órdenes
@@ -43,6 +42,21 @@ aplicación, justificando la elección de los servicios e integrando esta
4342
funcionalidad dentro del desarrollo normal de la aplicación, usando issues y
4443
también integrándolo en un PMV.
4544

45+
Un concepto fundamental en estos casos de servicios externos es el de *inyección
46+
de dependencias*. Cuando una clase depende de cualquier servicio externo, el
47+
acoplamiento entre una y otra debe ser lo más "suelto" posible, de forma que en
48+
el diseño de la aplicación se pueda cambiar de ese servicio externo simplemente
49+
cambiando la implementación de la clase. En los dos casos, la inyección de
50+
dependencias implica crear un objeto que encapsule la funcionalidad que
51+
necesitamos de los mismos, que será *inyectado* en los objetos de la clase para
52+
que puedan usarlo adecuadamente.
53+
54+
En el caso de los sistemas de *log*, muchos lenguajes lo incorporan ya en su
55+
biblioteca estándar, o incluyen en su biblioteca estándar alguna forma de
56+
configurarlos con diferentes opciones. Siempre, tanto en un caso como en otro,
57+
habrá que llevar a cabo una serie de elecciones sobre las herramientas que se
58+
van a usar, y justificarlo dentro de la documentación de este objetivo.
59+
4660
## Información adicional
4761

4862
Del [curso 0](https://jj.github.io/curso-tdd) se puede consultar el

0 commit comments

Comments
 (0)