Un article sur le Trunk Based Development. C'est une méthode de gestion du code source où tout est continuellement mergé sur master.
Ça boost le déploiement en continue car chaque PR est sensée être deployable directement après avoir été mergé.
Par contre il faut prévoir un CI solide avec suffisamment de tests ainsi que des features flag pour éviter d'exposer des features incomplètes aux utilisateurs
Un article qui explique le fonctionnement de la signature asymétrique des tokens en OIDC
Un article critique sur Bun.
Pas mal de bashing un peu gratuit et de demi vérité:
- performances: tout ce qui est lancé en local avec Bun est instant vs plusieurs secondes avec une stack Typescript standard
- pas de version manager: Bun vient d'être release et il y a litéralement 3 versions donc pas vraiment besoin, be patient ^^
- moins de backward compat que Node: en même temps on attends pas la même chose de Bun, et au moins les features sortent :)
Bref en tout cas je ne pense pas que Bun puisse un jour remplacer Node côté serveur car il y fallut plusieurs années pour que l'industrie fasse confiance à Node et que Node se montre suffisamment mature.
Par contre en local il n'y a rien à dire, bosser dans l'écosystème actuel c'est juste HORRIBLE entre les bundler, les builders, les compilers et les fichiers de config de la mort j'étais à la limite de craquer et heureusement Bun vient régler tout ça.
Pas de tsconfig.json, pas de webpack.config.js, pas de ts-node, pas de jest.
It just works ©
En plus bonus: c'est instantané de lancer un script ou de run +100 tests unitaires
Une technique pour wrapper les handler API dégueulasses forcés par l'utilisation de Express en quelque chose d'un peu plus moderne.
Next.js encore sur Express en 2023 :(
Une série d'articles pour améliorer la vitesse de chargement des pages web.
La sortie de Next.js 4 c'est surtout l'arrivée des Server Actions.
Ils ont presque terminé leur chantier de support de Turbopack plutôt que Webpack donc on peut s'attendre à une prochaine release avec des performances accrues! (Turbopack est en Rust et beaucoup plus performant que Webpack)
Un article sur l'écriture de tests frontend end to end et notamment le choix des sélecteurs.
Les sélecteurs doivent être le plus proche possible de l'interaction réel de l'utilisateur.
Par exemple, si je veux me connecter alors je clique sur un bouton qui contient le texte "Login" donc le sélecteur doit reproduire ce comportement au lieu d'utiliser des attributes HTML comme les classes ou le fameux data-test-id
.
C'est d'ailleurs la base des sélecteurs que propose Playwright:
await page.getByRole('button', { name: /login/i }).click();
Si vous cherchez à installer un package Javascript qui vous avez publié en privé sur Github (Github Package), voila la solution.
Par exemple, si vous souhaitez installer le package @aschen/memorus
, commencez par générer un Personnal Access Token et ajoutez le dans les secrets de votre repo puis utilisez ce job.
jobs:
whooa-awesome-job-mate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 20
registry-url: 'https://npm.pkg.github.com'
scope: '@aschen'
- name: Install dependencies
run: npm install -g @aschen/memorus
env:
NODE_AUTH_TOKEN: ${{ secrets.PAT }}
Une lib qui permet de générer une version très dégradée d'une image mais aussi très légère (20 octets!)
ça permet d'afficher un placeholder en attendant que la véritable image charge
Article qui explique pas à pas les principes de l'architecture hexagonale avec des exemples.
C'est le plus clair que j'ai trouvé en français, je le conseille vivement à ceux qui veulent se lancer en clean archi.
Réflexion autour du changement de paradigme de notre métier de développeurs.
On passe plus de temps à réfléchir au design des systèmes que les coder.
Un excellent article sur le fonctionnement des GPU
C'est l'outil qu'AWS utilise en interne pour définir leurs API et ensuite générer des SDK dans tous les langages.
Exemple:
$version: "2"
namespace example.weather
service Weather {
version: "2006-03-01"
resources: [City]
operations: [GetCurrentTime]
}
resource City {
identifiers: { cityId: CityId }
read: GetCity
list: ListCities
resources: [Forecast]
}
Un article qui illustre une architecture hexagonale en frontend (React)
Injection de dépendance en frontend avec React en utilisant des High Order Function ou des contextes React.
Utilisation de High Order Function (HOF) pour faire de l'injection de dépendances en Typescript.
Les HOF sont des fonctions qui prennent les dépendances en paramètre et renvoient la fonction métier.
Des techniques pour réduire la taille d'un bundle en optimisant le treeshaking.
Notamment l'utilisation de fonctions indépendantes plutôt que des classes car une classe est exportées en entier même si on n'utilise pas toutes ses méthodes.
Les "barrel file" composés uniquement d'exports d'autres modules sont une fausse bonne idée car ils forcent à charger un nombre plus important de fichiers.
A éviter donc
Le code de FTZ a été présenté devant un jury.
Notamment un commit ou certains compte avec la propriété allow_negative
se voyaient attribuer des privilèges sur la plateforme et au même moment des soupçons de traitement de faveur étaient démentis sur Twitter.
Le montant des fonds en réserve pour assurer les liquidités des clients sur le site? Un calcul foireux de la moyenne des transactions quotidiennes * 7500.
Un éditeur WYSIWYG qui reprend le style de Notion