Savez-vous pourquoi les numéros de versions des dépendances logicielles sont toutes notées sous la forme "1.3.14" ?
C'est une convention qu'on appelle le "Semantic Versioning", et chaque chiffre a son importance ! 🧵 #code#dev#software#versioning
L'objectif du Semantic Versioning (ou SemVer) est de donner un numéro unique à chaque nouvelle version d'un logiciel. ✨
Un identifiant minimal de version qui ressemble à 0.0.1 se lira tout simplement MAJOR.MINOR.PATCH
Le numéro "MAJOR" est le plus critique, c'est le seul qui indique une évolution de l'API tellement importante que la rétrocompatibilité n'est plus assurée 😱
Le numéro "MINOR" indique que des fonctionnalités ont été ajoutées (ou que des fonctionnalités ont été dépréciées) mais que l'API reste compatible avec les anciennes versions. 😪
Le numéro "PATCH" indique que seulement des corrections ou des modifications mineures ont été apportées, donc la compatibilité est assurée. 👌
Si vous voulez aller plus loin dans la compréhension du "Semantic Versioning", l'article sur Code-Garage contient plus de détails (comme les identifieurs et métadonnées de version par exemple) 👇
Née en 1986, il s'intéresse TRÈS tôt à l'informatique, à tel point qu'à 12 ans il créé son premier site de partage de connaissances collaboratif (Wikipédia-like) : The Info Network. 🤯
Ce site va lui permettre de visiter le MIT et de rencontrer son futur mentor : Lawrence Lessig
À 14 ans il participe à la création de la spécification 1.0 de RSS. À 15 ans, il devient l'un des concepteurs de la licence de partage Creative Commons... 🔥
On recense les premières traces de chiffrement symétrique vers 1500 av. JC, en Mésopotamie. 🥐
Aujourd'hui, on utilise le chiffrement symétrique dans notre vie numérique, souvent sans le savoir. Mais comment ça fonctionne exactement ? 🧵 #dev#code#infosec
Le chiffrement symétrique, même le plus basique, est basé sur deux outils : Un algorithme de chiffrement / déchiffrement, et une clé. 🔑
Prenons l'exemple d'une discussion entre deux personnes 👇
1️⃣Les participants d'une discussion se mettent d'accord sur un algorithme de chiffrement commun (souvent inhérent au système utilisé pour communiquer).
L'avantage d'une promesse, c'est de pouvoir normaliser le retour d'une fonction asynchrone.
Et donc d'offrir une API pour traiter ces retours avec des fonctions comme .then(), .catch(), Promise.all(), etc... et de pouvoir les chainer. 🔗
Mais parfois, on aimerait simplement pouvoir traiter ces appels asynchrones de manière synchrone plus simplement qu'en enchainant les .then() par exemple.
Voilà pourquoi il existe les directives async/await ! 👇
La première question que l'on se pose c'est: "Quelle différence avec les callbacks" ?
Et la réponse est : "Une promise est simplement un ensemble de callbacks 'normalisés' !" 🤯
Je m'explique.
Un callback est une fonction qui va être exécutée à la fin d'un traitement asynchrone.
Sauf que selon les choix d'implémentation, un callback peut prendre 1, 2, 3 paramètres, ou alors on peut passer 1, 2, 3 callbacks différents pour gérer le succès, les cas d'erreurs, etc... 🥵
Se lever à 9h29 pour commencer sa journée à 9h30 (et ça peut arriver de temps en temps) est tentant, mais ce n'est pas viable à long terme.
2 - Habillez-vous (même avec le strict minimum)
Croyez-moi, une vision-conférence en urgence ou un livreur inopiné vont vous faire regretter de ne pas avoir pris le temps d'enfiler quelque chose de simple, confortable mais surtout présentable.