Le premier est l'utilisation de monades pour représenter le mot de passe validé, un peu comme si en JavaScript la fonction de validation retournait une valeur de la forme: {result:"MY-PASSWORD"} ou bien {error:"MESSAGE"}. Avec OCaml, j'utiliserais par exemple la monade Maybe.
Hum... Il me semble que c'est équivalent au Option/Optional que l'on trouve un peu partout. Ça sert à représenter des erreurs potentiels (et ça se manipule avec du patern matching pour contraindre à gérer le cas d'erreur). Mais une fois le cas d'erreur passé, c'est une string toute simple non ?
Le second candidat est l'utilisation de types fantômes, auxquels on peut penser comme à une annotation pour le compilateur qui permet d'exposer certains attributs ou se souvenir des traitements subis par une valeur.
Je suis loin de comprendre, mais c'est une représentation de l'état courant en suivant tout le chemin de la donnée ça me semble un peu violent.
Dans le cas particulier des mots de passe, je préférerais utiliser un type abstrait de donnée, qui permet de limiter les traitements sur les mots de passe, interdisant par exemple à ceux-ci d'être imprimés dans la sortie du programme (pas de conversion en type string) et sont effacés de la mémoire aussitôt que possible.
Ça me semble représenter au mieux ce que je pense. En quoi est-ce que c'est un type abstrait ?
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: ouai
Posté par barmic . En réponse au journal Données vs Code. Évalué à 3.
Hum... Il me semble que c'est équivalent au Option/Optional que l'on trouve un peu partout. Ça sert à représenter des erreurs potentiels (et ça se manipule avec du patern matching pour contraindre à gérer le cas d'erreur). Mais une fois le cas d'erreur passé, c'est une string toute simple non ?
Je suis loin de comprendre, mais c'est une représentation de l'état courant en suivant tout le chemin de la donnée ça me semble un peu violent.
Ça me semble représenter au mieux ce que je pense. En quoi est-ce que c'est un type abstrait ?
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)