translation

Texte traduit par l'IA.

Sunrabbit

Utilisez-vous encore des bibliothèques fonctionnelles ?

Image de profil

Résumé du texte par durumis AI

  • Parmi les bibliothèques de codage fonctionnel, fp-ts s'est fait connaître en mettant l'accent sur les mappings et les monades fonctionnels, mais son intégration à Effect l'a transformé en un framework.
  • Contrairement aux bibliothèques existantes, Effect fonctionne comme un framework et nécessite une connaissance spécifique pour utiliser les objets Effect.
  • Effect utilise des objets encapsulés dans Effect, à l'instar des Observable de RxJs, et pourrait potentiellement établir une nouvelle norme dans le secteur de Node.js.

La programmation fonctionnelle a été très à la mode ces dernières années.


L'orienté objet crée la structure, tandis que

la programmation fonctionnelle a permis de simplifier le code en détail.


Bien sûr, la popularité de la programmation fonctionnelle suit des cycles de quelques années.

En raison de cette popularité, diverses bibliothèques ont commencé à apparaître.



Pour moi, FxTsn'était qu'une boîte à outils utilisant des générateurs pour créer une évaluation paresseuse.


lodashdonnait également une forte impression de boîte à outils.



Bien sûr, ces boîtes à outils aident à la programmation déclarative.


Mais ce que nous recherchions dans la programmation fonctionnelle n'était pas cela, mais des concepts comme les mappages, les correspondances, les monades, et encore plus de monades.

fp-tscorrespondait à cette attente, et son mainteneur était également passionné par la programmation fonctionnelle.


Cependant, il y a quelques mois, j'ai appris que cette bibliothèque avait été fusionnée avecEffect.


J'ai donc vérifié Effect, et j'ai constaté que quelque chose avait changé.


Si fp-tsressemblait à une bibliothèque, Effectse rapprochait davantage d'un framework.

Pour utiliser Effect, il faut avoir des connaissances de base sur Effect.


NestJs et NextJsnécessitent également une compréhension de leur fonctionnement.


Une bibliothèque, si son API est bien exposée, peut être utilisée directement, mais un framework nécessite une compréhension du package en question.

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
*/


Ce Effectse distingue de RxJscar au lieu d'être enveloppé dans un Observable, il utilise des objets enveloppés dans Effect,

et ces objets se propagent commeasync un peu partout.


Pour utiliser un objet Effect , les fonctions qui l'utilisent doivent également être de type Effect.


Comme la fonction program dans le code ci-dessus.


Bien sûr, il existe des fonctions utilisées comme point d'entrée, mais ce n'est pas très élégant.


Quoi qu'il en soit, la forme et la clarté de Effecten tant que framework lui permettent de proposer une nouvelle approche et une nouvelle norme dans le monde de Node. J'espère qu'il apportera une bouffée d'air frais à l'industrie.


Sunrabbit
Sunrabbit
The way to be a senior is to be a senior.
Sunrabbit
[React Hook] useStateFonctionnement de l'hook React useState, portée du rendu et méthode de conservation des valeurs d'état, avec un aperçu de son implémentation interne.

March 14, 2024

En avez-vous assez de taper les types un par un ?Utilisez les librairies de types d'ordre supérieur de TypeScript pour définir des types lisibles facilement.

August 13, 2024

[Next.js] Injection d'environnement d'exécutionCet article explique comment améliorer la méthode d'injection de variables d'environnement après la construction dans Next.js, afin qu'elle fonctionne à la fois sous Windows et Unix.

March 20, 2024

Qu'est-ce que le Java Collections Framework (JCF) ? - Définition et caractéristiques du JCF (JAVA)Le Java Collections Framework (JCF) est un ensemble standardisé de classes Java permettant de traiter efficacement diverses données.
제이온
제이온
제이온
제이온

April 27, 2024

[Hors informatique, survivre en tant que développeur] 14. Résumé des questions techniques fréquemment posées lors d'un entretien d'embauche pour développeur débutantNous avons résumé et organisé les questions techniques fréquemment posées lors des entretiens d'embauche pour les développeurs débutants (zones de mémoire, structures de données, bases de données, etc.). Nous espérons que cela vous aidera dans votre prépa
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

Lancement de Flitter 1.0.0 : une librairie SVG alternative à D3Flitter 1.0.0 est une librairie de visualisation de données basée sur SVG qui améliore la compatibilité avec React et optimise la prise en charge du rendu côté serveur (SSR). Cette version inclut également des améliorations de performances et des correcti
Meursyphus
Meursyphus
Meursyphus
Meursyphus

May 1, 2024

Présentation de Flitter, une bibliothèque déclarative pour Canvas et SVGDécouvrez Flitter, un framework de développement web basé sur Flutter. Il prend en charge le rendu SVG et Canvas et est spécialisé dans la visualisation de données. Découvrez la puissance de Flutter pour le développement web.
Meursyphus
Meursyphus
Meursyphus
Meursyphus

July 10, 2024

Flitter vs D3.js : Les changeurs de jeu de la visualisation de données webFlitter, une alternative prometteuse à D3.js, améliore la facilité d'utilisation et les performances, rendant la visualisation de données web plus simple et plus efficace.
Meursyphus
Meursyphus
Meursyphus
Meursyphus

July 18, 2024

[Objet] Chapitre 1. Objet, conceptionCet article explique l'importance et les concepts de la conception orientée objet dans le développement logiciel, en soulignant la nécessité de la conception orientée objet à travers un exemple d'application de billetterie.
제이온
제이온
제이온
제이온

April 28, 2024