Effect 4 RC7 labs ejecutables

Lectura / 03 · 5 min

Requisitos y Layers

Declarar lo que una operación necesita y proveer implementaciones desde el borde.

Una dependencia visible

Cuando una operación lee configuración global o construye su propio cliente de red, sus requisitos quedan escondidos. Un servicio de Context permite declarar ese contrato y pedirlo desde el programa. El canal de requisitos conserva lo que falta proveer.

En Effect 4, este curso usa Context.Service. El material de versiones anteriores puede usar APIs distintas; contrastá los ejemplos con la versión fijada por este proyecto antes de copiarlos.

La misma lógica, otra implementación

El lab define un servicio pequeño y compara provide-live con provide-mock. Ambas variantes son implementaciones locales: la palabra live no implica una llamada a producción. El programa consume el mismo contrato y obtiene valores distintos según lo que recibe.

Layer.succeed provee un valor disponible. Otras construcciones pueden describir adquisición de servicios y dependencias entre ellos. Una Layer no es una excusa para abrir recursos sin delimitar cuándo se cierran.

Probar el contrato, no sólo el resultado

El preset missing-service expone qué ocurre cuando el requisito no está disponible. Luego las variantes provistas permiten ejecutar la misma lógica. Observá el contraste antes de diseñar un mock que siempre devuelva el resultado que el test espera.

Para una API real, pensá qué comportamientos debería compartir el servicio de prueba con la implementación de red: casos vacíos, fallos esperados y cancelación. Un mock útil permite probar decisiones del consumidor; no promete que una base de datos real funcione igual.

Material comunitario para Effect 4 RC. Contrastá la API con la documentación oficial de la versión que uses.