translation

Texto traducido por IA.

Sunrabbit

¿Sigues usando bibliotecas funcionales?

Imagen de perfil

Resumen de la publicación por la IA de durumis

  • Entre las bibliotecas de codificación funcional, fp-ts se hizo popular al centrarse en el mapeo funcional y las mónadas, pero ha evolucionado a un framework al integrarse con Effect.
  • A diferencia de las bibliotecas existentes, Effect funciona como un framework y se requiere cierto conocimiento para utilizar los objetos Effect.
  • Effect utiliza objetos encapsulados en Effect, similar a Observable de RxJs, y se espera que establezca un nuevo estándar en la industria de Node.js.

La programación funcional ha estado bastante de moda durante los últimos años.


La orientación a objetos proporciona la estructura,

mientras que la programación funcional ha contribuido a la simplicidad del código detallado.


Por supuesto, la popularidad de la programación funcional tiende a aparecer en ciclos de varios años.

Como resultado de esta tendencia, han comenzado a surgir diversas bibliotecas.



En mi opinión, FxTssimplemente era un conjunto de herramientas que utilizaba generadores para crear la evaluación diferida.


lodash también daba una fuerte impresión de ser un conjunto de herramientas.



Por supuesto, estos conjuntos de herramientas son útiles para la programación declarativa.


Sin embargo, lo que buscábamos en la programación funcional no era eso, sino mapeos, correspondencias, mónadas y aún más mónadas.

fp-ts se ajustaba a esta necesidad, y su mantenedor principal también era un verdadero entusiasta de la programación funcional.


Pero hace unos meses, me enteré de que esta biblioteca se había fusionado con Effect.


Así que revisé Effect, y me di cuenta de que era diferente.


Mientras que fp-ts era más parecido a una biblioteca, esta nueva Effect se asemejaba más a un framework.

Para usar Effect, se necesitaba un conocimiento básico de Effect.


NestJs y NextJs también requerían una comprensión de sus conceptos, de manera similar.


Si bien las bibliotecas solo necesitan una API bien expuesta para su uso, los frameworks requieren un cierto nivel de comprensión del paquete en sí.

import { Effect, Console } from "effect"
 
let i = 1
const expensiveTask = Effect.promise(() => {
    console.log("expensive task...")
    return new Promise((resolve) => {
        setTimeout(() => {
        resolve(result ${i++})
        }, 100)
    });
})
 
const program = Effect.gen(function* () {
console.log("non-cached version:")
    yield* expensiveTask.pipe(Effect.andThen(Console.log))
    yield* expensiveTask.pipe(Effect.andThen(Console.log))
    console.log("cached version:")
    const cached = yield* Effect.cached(expensiveTask)
    yield* cached.pipe(Effect.andThen(Console.log))
    yield* cached.pipe(Effect.andThen(Console.log))
})
 
Effect.runFork(program)

/*
Output:
non-cached version:
expensive task...
result 1
expensive task...
result 2
cached version:
expensive task...
result 3
result 3
*/


Este Effect funciona de manera similar a RxJs, pero en lugar de envolver los objetos en Observable, los envuelve en Effect, y estos objetos se desplazan

como si fuera la palabra clave async, propagándose a través del código.


Para utilizar los objetos Effect, las funciones que los utilizan también deben convertirse en Effect.


Al igual que en el código anterior, program.


Por supuesto, existe una función que se utiliza como punto de entrada, pero no es tan elegante.


En cualquier caso, la forma y la limpieza de Effect como framework, muestra un nuevo viento y un nuevo estándar en la industria de Node, y espero que así sea.


Sunrabbit
Sunrabbit
The way to be a senior is to be a senior.
Sunrabbit
[React Hook] useStateSe explica el funcionamiento de React Hook useState, el ámbito de re-renderizado y cómo mantener los valores de estado, además de profundizar en su implementación interna.

14 de marzo de 2024

¿Todavía está escribiendo los tipos uno por uno?Puede usar bibliotecas de tipos de orden superior de TypeScript para definir tipos de manera fácil y legible.

13 de agosto de 2024

[Observabilidad] Reto con el recolector de logs VectorCompartimos cómo integrar los logs de Kubernetes con Loki utilizando Vector, así como nuestra experiencia de uso y precauciones. Abordamos la falta de documentación oficial y aspectos a tener en cuenta al usar Helm.

9 de marzo de 2024

¿Qué es Java Collections Framework (JCF)? - Definición y características de JCF (JAVA)Java Collections Framework (JCF) es un conjunto estandarizado de clases de Java que permite procesar datos de manera eficiente.
제이온
제이온
제이온
제이온

27 de abril de 2024

[No programador, sobrevivir como desarrollador] 14. Resumen de las preguntas frecuentes en entrevistas técnicas para desarrolladores principiantesSe ha resumido y organizado las preguntas técnicas frecuentes en las entrevistas de desarrolladores principiantes (área de memoria, estructura de datos, base de datos, etc.). Espero que sea de utilidad para la preparación de la entrevista de desarrollo.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

3 de abril de 2024

Lanzamiento de Flitter 1.0.0: La biblioteca svg que reemplazará a D3Flitter 1.0.0 es una biblioteca de visualización de datos basada en SVG que ha mejorado la compatibilidad con React y la compatibilidad con SSR. También incluye mejoras de rendimiento y correcciones de errores.
Meursyphus
Meursyphus
Meursyphus
Meursyphus

1 de mayo de 2024

Flitter vs D3.js: El cambio de juego en la visualización de datos webFlitter, que emerge como una alternativa a D3.js, mejora la facilidad de uso y el rendimiento, haciendo que la visualización de datos web sea más fácil y eficiente.
Meursyphus
Meursyphus
Meursyphus
Meursyphus

18 de julio de 2024

[Objetos] Capítulo 1. Objetos, DiseñoSe explica la importancia y los conceptos del diseño orientado a objetos en el desarrollo de software, y se destaca la necesidad del diseño orientado a objetos a través del ejemplo de una aplicación de venta de entradas.
제이온
제이온
제이온
제이온

28 de abril de 2024

Presentamos Flitter: una biblioteca declarativa para canvas y SVGPresentamos Flitter, un framework de desarrollo web basado en Flutter. Admite el renderizado de SVG y Canvas y está especialmente diseñado para la visualización de datos. Experimente la potencia de Flutter en el desarrollo web.
Meursyphus
Meursyphus
Meursyphus
Meursyphus

10 de julio de 2024