Merci pour la vidéo. Question plutôt typescript/gestion d'erreurs : que penses-tu de librairies comme ts-results ou neverthrow qui simulent les Option/Result qui existent en Rust ? Au lieu de throw une erreur on a des fonctions qui retournent un Result , qui est concrètement soit un Ok (que tu peux unwrap) soit une Err Une autre solution est de faire comme en Go et renvoyer un tuple [data, error]
La finalité de la chose est excellente et c'est ce qui manquait à JS des vrais types qui font planter le script sans qu'on ait à rajouter une panoplie de conditions chiantes que Typescript lui-même va nous surligner parce qu'il comprend pas qu'on vérifie un nombre alors qu'on assigne number (et là, faut obligatoirement mettre en unknown, ce qui veut dire que typescript n'a plus aucun intérêt si on s'y prend ainsi...). Après, j'avoue que d'un point de vue très subjectif, la syntaxe de zod me rebute, mais je vais essayer zod un jour pour voir si j'arrive à m'y habituer et me faire un avis plus objectif.
Un bel outil, mais je recommande tout de même: class-validator et class-transformer, qui sont des packages npm vraiment mieux que zod ou les autres que tu as montrés sur la vidéo. Avec les décorateurs, c'est une dinguerie. Je vous conseils d'aller voir pour vous faire une idée.
@@melvynxdev Tu peux utiliser class-validator dans un projet qui n'utilise pas de classes et mettre toutes tes validations séparés par des fichiers et donc avoir un dossier validations avec, par exemple: User.ts, UserDetails.ts, Cars.ts, etc. l'utilisation est simple: validate(data) ... Pas obligé d'être dans une classe pour la valider. Ce qui est meilleurs que zod et les autres c'est l'utilisation des décorateurs qui peuvent te permettre de faire des validations de types plus poussés. Comme par exemple les données d'un formulaire qu'envoi un utilisateurs, parce que des fois tu veux savoir plus que juste si c'est de type string. Des fois tu veux aussi savoir si la propriété du formulaire est une valeur string qui fait partit d'une liste à choix, genre si report.type est un string qui est l'un de ces choix ["bug", "personal data", "event", "others"]. L'exemple est un peu bidon, mais en gros ça permet d'être très très très solide dans la validation.
@@formationsutiles1067 t'est vraiment perché mais très très haut toi nan ? On peux te répondre tu code en français ? si c'est le cas, pense à te reconvertir ;).
@@superwaper2791 mdr mais non juste le titre soit tu dis "utilise cette bibliothèque ou arrête de coder" soit "use this library or stop coding " Si t'écris librairie en français c'est juste faux tu vois, pas besoin d'en faire tout un plat. C'est comme dire "crypter" a la place de "chiffrer". Le fait que je fasse une remarque dans un objectif constructif et que des gens le prennent mal c'est juste dommage. D'ailleurs j'ai regardé la vidéo et son contenu était très intéressant. Mon petit commentaire troll de départ n'avait pas pour vocation à vous faire du mal. Tldr; on dit bibliothèque en français et library en anglais
C'est un framework de validation quoi... Rien de nouveau sous le soleil. J'ai publié une lib qui contient, entre autres, un framework de validation très proche de ce modèle mais qui offre aussi la possibilité d'utiliser des décorateurs de classes et qui se combine avec de nombreux autres outils comme des formulaires, des transformateurs de données pour passer d'une représentation des données à l'autre facilement (requête http, formulaire, classe, pojo...), ça donne un truc puissant. Je pensais que c'était de l'analyse statique, donc je comprenais pas comment ça pouvais marcher avec des données distantes, mais en fait non, c'est une validation classique au runtime.
je suis un développeur frontend de niveau moyen et j'apprends le français en regardant vos vidéos.
Merci ça fait plaisir
Merci pour la vidéo. Question plutôt typescript/gestion d'erreurs : que penses-tu de librairies comme ts-results ou neverthrow qui simulent les Option/Result qui existent en Rust ?
Au lieu de throw une erreur on a des fonctions qui retournent un Result , qui est concrètement soit un Ok (que tu peux unwrap) soit une Err
Une autre solution est de faire comme en Go et renvoyer un tuple [data, error]
J'avoue ne jamais avoir utilisé ces librairies, donc c'est dur de te donner une solution.
La finalité de la chose est excellente et c'est ce qui manquait à JS des vrais types qui font planter le script sans qu'on ait à rajouter une panoplie de conditions chiantes que Typescript lui-même va nous surligner parce qu'il comprend pas qu'on vérifie un nombre alors qu'on assigne number (et là, faut obligatoirement mettre en unknown, ce qui veut dire que typescript n'a plus aucun intérêt si on s'y prend ainsi...).
Après, j'avoue que d'un point de vue très subjectif, la syntaxe de zod me rebute, mais je vais essayer zod un jour pour voir si j'arrive à m'y habituer et me faire un avis plus objectif.
Ahah mais Zod est magique car c'est presque comme si tu faisais du TypeScript justement !
Un bel outil, mais je recommande tout de même:
class-validator et class-transformer, qui sont des packages npm vraiment mieux que zod ou les autres que tu as montrés sur la vidéo.
Avec les décorateurs, c'est une dinguerie. Je vous conseils d'aller voir pour vous faire une idée.
Une autre façon de faire clairement, mais très pratique si tu travailles avec des class
Oui... sauf si tu bosse pas avec des class xD
@@melvynxdev oui tout à fait
@@melvynxdev Tu peux utiliser class-validator dans un projet qui n'utilise pas de classes et mettre toutes tes validations séparés par des fichiers et donc avoir un dossier validations avec, par exemple: User.ts, UserDetails.ts, Cars.ts, etc.
l'utilisation est simple:
validate(data) ...
Pas obligé d'être dans une classe pour la valider. Ce qui est meilleurs que zod et les autres c'est l'utilisation des décorateurs qui peuvent te permettre de faire des validations de types plus poussés.
Comme par exemple les données d'un formulaire qu'envoi un utilisateurs, parce que des fois tu veux savoir plus que juste si c'est de type string. Des fois tu veux aussi savoir si la propriété du formulaire est une valeur string qui fait partit d'une liste à choix, genre si report.type est un string qui est l'un de ces choix ["bug", "personal data", "event", "others"].
L'exemple est un peu bidon, mais en gros ça permet d'être très très très solide dans la validation.
6:20 Merci pour le tuto, mais évite stp de combiner async await et .then .catch
xD fell free
Merci pour cette vidéo que j’avais demandé 🙌🏻 🎉
avec plaisir
zod est excellent avec react-hook-form en plus, c'est génial !
Oui totalement
Tu dessine bien des courbes :3 a un moment ta sorti "avec ce schema PRISMA" tavu je suis attentive ! 😆
ahaha oui je me suis fail
@@melvynxdev oui ça arrive aha
Bonjour,
Pourrais tu citer la source pour tes 3 courbes ?
Merci
quel courbe ?
@@melvynxdev Les 3 courbes que tu présentes à 0:18. Tu les as prises où ? (
J’utilise joi et c’est vraiment cool
ça passe aussi
En même temps il ne faut pas utiliser 'as' en TS, c'est tout...
On a déja des trucs en TS comme class-validator qui sont bien plus élégants
euh moui
Valibot a remplacé zod et il ya ARKTYPE aussi
Non Valibot pus
Ça fait un peu jojo le bricolo quand même
non tkt
Comment tu veux que j'écoute un mec qui parle de librairie... On est ici pour coder ou pour acheter le dernier temps des tempêtes de Nicolas Sarkozy ?
?
@@melvynxdev on dit bibliothèque en français 👀
@@formationsutiles1067 t'est vraiment perché mais très très haut toi nan ?
On peux te répondre tu code en français ? si c'est le cas, pense à te reconvertir ;).
@@superwaper2791 mdr mais non juste le titre soit tu dis "utilise cette bibliothèque ou arrête de coder" soit "use this library or stop coding "
Si t'écris librairie en français c'est juste faux tu vois, pas besoin d'en faire tout un plat. C'est comme dire "crypter" a la place de "chiffrer".
Le fait que je fasse une remarque dans un objectif constructif et que des gens le prennent mal c'est juste dommage.
D'ailleurs j'ai regardé la vidéo et son contenu était très intéressant. Mon petit commentaire troll de départ n'avait pas pour vocation à vous faire du mal.
Tldr; on dit bibliothèque en français et library en anglais
Et Happyaiiïeeee et requoilleurde 😅
C'est un framework de validation quoi... Rien de nouveau sous le soleil. J'ai publié une lib qui contient, entre autres, un framework de validation très proche de ce modèle mais qui offre aussi la possibilité d'utiliser des décorateurs de classes et qui se combine avec de nombreux autres outils comme des formulaires, des transformateurs de données pour passer d'une représentation des données à l'autre facilement (requête http, formulaire, classe, pojo...), ça donne un truc puissant. Je pensais que c'était de l'analyse statique, donc je comprenais pas comment ça pouvais marcher avec des données distantes, mais en fait non, c'est une validation classique au runtime.
exacte
Vines plus puissant
Vinejs
J'EN Aİ MARRE DE NE PAS COMPRENDRE CLAİREMENT !!
je suis désolé
@@melvynxdev c'est pas de ta faute mais celle de mon âge, à 13 ans on comprends mal à quoi sert un json