Quoi de neuf les devs ? - Newsletter #2
Salut les devs !
Tout d'abord, je tenais à te remercier, toi, mon tout premier abonné pour avoir accepté de me suivre. Dans cette deuxième newsletter, je te transmets une nouvelle fois les informations intéressantes glanées ici et là.
J'attends toujours de ta part une critique bienveillante pour me dire ce qui te plait, ce qui ne te plait pas. Je tiendrai compte de tes retours pour te proposer le meilleur contenu possible.
A très vite et n'oublie pas de t'abonner et de partager cette newsletter à tes collègues si cela te plait !
Restons en contact ! Choisis ton réseau préféré ou rejoins les tous ;-)
Tu peux aussi allez jeter un œil à mes formations !
Fred
Edito => Rugby : défaite des Bleus dans les arrêts de jeu
L'équipe de France de rugby a perdu hier contre l'Ecosse.
Il y avait du bon et du moins bon et puis l'Ecosse méritait sa victoire aussi.
Mais Fred, pourquoi tu me parle de cela ? Quel est le rapport avec le développement web ?
Je vais te le dire bien sûr !
Mais, si tu veux bien, laisse moi tout d'abord laisse moi te raconter cette fin de match.
Brice Dulin, qui au passage est un très bon joueur, a en fin de match commis une bourde monumentale. Tu me connais je suis profondément humain donc je n'accablerai pas Brice qui n'a pas pensé à mal, bien au contraire.
Je me concentrerai sur la bourde.
Je te raconte : On est dans les arrêts de jeu, au delà de la 80ème minute, on mène 23 à 20. Le match est gagné, il faut juste réussir à mettre le ballon en touche.
Les Ecossais, nous mettent la pression pour renverser le match. Une pression terrible !!!!!
Ils sont à quelques pas de la ligne pour marquer. Les bleus, vaillants, repoussent attaques après attaques. La tension est palpable.
L'équipe de France est comme une ville assiégée, on l'attaque et elle résiste en rêvant d'une faute de a part des Ecossais nous permettant de remettre la main sur ce satané ballon ovale !
Dans le ciel noir de pluie, arrive ce moment tant attendu. Le ballon échappe enfin aux Ecossais. Brice Dulin récupère le ballon et tout le pays s'attends à ce qu'il le tape en touche, ce qui nous donnerait la victoire.
On ne gagnerait pas le tournoi mais on finirait sur une victoire c'est déjà çà à prendre.
Et là, l'ami Brice que fait il ?
Il joue le ballon, en espérant je suppose construire une action pour engranger quelques points supplémentaires suite à un hypothétique essai.
Peut-être tout simplement avait il trop la tête dans le guidon, pour se rendre compte qu'il était dans les arrêts de jeu.
Peut-être que les collègues ne lui ont pas dit de taper en touche.
Ce qui est sûr c'est que malheureusement la fin est bien différente de ce qu'il avait imaginé.
Les écossais, morts de faim, finissent par récupérer le ballon et marquent un essai plus que mérité, qui leur donne au final la victoire.
La situation, qui semblait maîtrisée, s'est retournée complètement contre ceux qui pensaient avoir la victoire entre les mains.
Fin de l'histoire.
Le rapport avec le développement et la morale de cette histoire :
On peut faire un parallèle entre cette défaite au rugby de nos Bleus (qui nous ont régalé dans ce tournoi) et le code. Il y a des similitudes.
Ne t'est il jamais arrivé d'arriver à faire fonctionner un morceau de code ardu, puis content de toi, d'enchainer sur la fonctionnalité suivante sans pusher ton code sur ton git et te rendre compte 30 minutes plus tard que tu as tout cassé ce qui fonctionnait avant ?
N'as tu jamais découvert une ligne de code qui te paraissait potentiellement pouvoir se transformer en bug tôt ou tard ? Et puis, la laisser de côté. Evidemment, 6 mois plus tard, elle se rappelle à ton bon souvenir.
La morale de l'histoire ? Il y en a trois :
Tu as beau mettre toute la qualité dans ton code, dans tes développements, il suffira toujours d'une bourde pour tout voir s'écrouler.
Construit ton code par étape, valide les étapes, sécurise les étapes. Quand tu as fini une partie importante de ton code, teste le et ajoute le à ton Git. Tu ajouteras la super fonctionnalité qui vient de flasher dans ta tête après ses étapes cruciales.
Fais des pauses, aères toi la tête pour ne pas avoir cette dernière dans le guidon et passer à côté de quelque chose d'essentiel
Je te souhaite une bonne semaine en étant happy to dev bien sûr !
Les articles de la semaine
Dans cette section, je te livre les articles que j'ai écrit ou ceux qui ont retenu mon attention.
Laravel SMTP Crack | Laravel News — laravel-news.com Spammers have one goal, to send as much spam as cheaply as possible with good IPs that are not blocked, and we've been hearing more and more reports of Laravel apps getting their SMTP credentials hacked and then the attackers using those to send junk. This is not related to any vulnerability in Laravel itself. The issue is coming from improper server setups or not turning off debug mode.
C'est la faute du développeur - Je suis un dev — www.jesuisundev.com Quand un projet tourne au cauchemar, les développeurs ont souvent le réflexe de pointer du doigt un management irresponsable.
Vite with Laravel — Sebastian De Deyne — sebastiandedeyne.com I’ve had an eye on Vite for a while. With a stable release out the door (2.0, as 1.0 never left the release candidate stage) it seemed like a good …
Michael Dyrynda | Using Tailwind's JIT compiler with Laravel Mix
Micheal te montre comment configurer le tout nouveau compilateur JIT de Tailwind avec Laravel Mix !
La RFC:Fiber adoptée cette semaine
Il s'agit d'un gros sujet, complexe et sur lequel je vais accorder un peu de bande passante. Ce dernier nécessite un peu de concentration car il est touffu ! Mets toi un peu de musique dans le casque pour rester pleinement concentré !!
Je t'invite à aller lire les différents sujets que je te propose ci-dessous.
Mais avant cela, je tenais tout de même à te teaser un peu ! ;-)
(Spoiler alert : ce qui suit est fortement inspiré de la RFC car source de vérité).
Si on reprends les explications de la RFC, ce qui est entre nous toujours un bon point de départ, voici ce qu'apporteront les Fibers dans PHP, normalement pour la version 8.1.
Si tu souhaites suivre l'actualité des RFC PHP, leurs votes, la version cible de PHP etc... cela se passe sur php RFC Watch
Un aspect historique de PHP
La majeure partie de l'histoire de PHP s'est passée de manière synchrone.
Qu'est ce que cela veut dire ? Dans les grandes lignes, tout simplement que l'exécution de ton code s'arrête en attendant qu'un résultat soit disponible pour la fonction appelante. C'est particulièrement vrai pour les fonctions faisant appel aux opérations d'entrées / sorties qui peuvent être relativement lentes.
Dans le PHP moderne (les dernières années), un certain nombre de projets ont permis à PHP d'être moins bloqué par ce principe. C'est projet tu les connais probablement pour les avoir utilisé ou de nom :
- amphp
- ReactPHP
- Guzzle
De quelle couleur est votre fonction ?
La RFC PHP:Fiber cherche à résoudre un problème qui est décrit dans l'article "De quelle couleur est votre fonction ?" que je t'encourage à aller lire.
Ce problème se résume de la façon suivante :
- Les fonctions asynchrones modifient la manière dont la fonction doit être appelée.
- Les fonctions synchrones ne peuvent pas appeler une fonction asynchrone (bien que les fonctions asynchrones puissent appeler des fonctions synchrones).
- L'appel d'une fonction asynchrone nécessite que l'ensemble de la pile d'appel soit asynchrone.
Si tu es coutumier des promesses ou des await/yield, tu sais que dès qu'une de tes fonctions renvoie une promesse dans ta pile d'appel, alors toute la pile d'appel doit renvoyer une promesse.
But de la PHP RFC:fiber
Elle cherche à éliminer la distinction entre les fonctions synchrones et asynchrones en permettant aux fonctions d'être interruptibles sans polluer la pile d'appels.
Cette RFC s'appuie pour cela sur :
- l'ajout du support des Fibers à PHP.
- l'ajout d'une classe Fiber et de la classe de réflexion correspondante ReflectionFiber.
- l'ajout des classes d'exception FiberError et FiberExit pour représenter les erreurs.
Les Fibers permettent des implémentations transparentes d'E/S non-bloquantes pour les interfaces existantes (comme PSR-7, Doctine ORM, etc.). Ceci est dû au fait que l'objet placeholder (promesse) est éliminé. Les fonctions peuvent déclarer le type de résultat d'E/S au lieu d'un objet placeholder qui ne peut pas spécifier un type de résolution car PHP ne supporte pas les génériques.
Bon à présent, que l'on a débroussaillé le sujet, je te laisse prendre connaissance des articles en relation avec ce sujet ;-)
Fibers in PHP: A new opportunity for async PHP? — clue.engineering It looks like PHP will get fibers soon with PHP 8.1! That’s awesome! Or is it? What are fibers? I think the Ruby documentation does a good job at describing what fibers are: Fibers are primitives for implementing light weight cooperative concurrency [in Ruby].…
PHP Internals News podcast :: Fibers
Via ce podcast, tu pourras entendre le co-créateur de la PHP RFC:Fibers => Aaron Piotrowski interrogé par Derick Rethans que l'on ne présente plus.
PHP Fibers, the New Controversial PHP 8.1 Feature Not For You ! - PHP Magazine Network — phpmagazine.net
L'adoption de la PHP RFC:Fibers a généré quelques controverses. Cet article en parle. L'évolution de PHP n'est pas toujours de tout repos ;-)
Albert Casademont on Twitter: "The Fibers RFC has been accepted 🎉 More async tools coming to PHP core :) Looking forward to seeing what can be done with it on @reactphp :D https://t.co/fWETCPKpQf" — twitter.com Your description for this link...
Conclusion
Ce sera tout pour Fibers, c'est un gros sujet que je pense il faudra surveiller car les impacts sur notre façon de programmer peuvent être important. Je ne doute pas que les grands framework PHP intégreront rapidement cette nouvelle possibilité.
Et toi, qu'en penses tu ?
Le coin formation
Comment configurer Mapbox avec Blade UI Kit ? — happytodev.itanea.fr
Dans cette vidéo gratuite, je t'explique pas à pas comment mettre en place le composant Mapbox fournit par Blade UI Kit dans ton application Laravel.
Les sorties de la semaine
JSON Type Assertions and a "prohibited" Validation rule Are Now In Laravel 8.34 | Laravel News — laravel-news.com The Laravel team released 8.34 with type assertions in the fluent JSON API, a 'prohibited' validation rule, a new event fake assertion, and the latest changes in the 8.x branch.
Tu reprendras bien quelques tweets ?
Would you like fry with that? Using a HasOne over a HasMany relationship in Laravel by Tim MacDonald — timacdonald.me When you are working with a one-to-many relationship, it is sometimes the case that a particular instance on the "many" side of the relationship is flagged as unique and important to your system in some way.
Jonathan Reinink on Twitter: "🔥 So, it's official. I have SSR working in @inertiajs. And it's awesome. 😱 ✅ Works in Vue, React & Svelte ✅ Super fast page loads (<100ms) ✅ Works with any server-side framework ✅ It uses a background Node process ✅ No headless browser needed ✅ Tested on Heroku & Forge" — twitter.com Your description for this link...
Rias Van der Veken on Twitter: "Use Laravel's parallel testing inside your package tests, our @getmailcoach tests went from 19s to 9s without any extra changes needed. https://t.co/KlpTzoBmvY" — twitter.com Your description for this link...
Taylor Otwell 🪐 on Twitter: "Weekly Laravel update going out today... nice new features! ✅ JSON type assertions by @svenluijten - https://t.co/MwjLtCCWfR 👂 Event::assertListening by @luisdalmolin (see attached 📸) A cool query feature by @joseph_silber (docs coming soon! - https://t.co/zhAS7RMhUR… https://t.co/nWKnwxCiKV" — twitter.com
Weekly Laravel Update
Freek Van der Herten 📯 on Twitter: "🏎 Packages made using our @laravelphp package skeleton will now run tests in parallel by default! https://t.co/5Bkp1AXa5g… https://t.co/IwsUVEfQCh" — twitter.com
Ajout des tests parallèles sur le squellete de chez Spatie pour créer des packages Laravel
$MIGUEL Piedrafita 🥬 on Twitter: "📦 Introducing laravel-web3-login: Allow your users to log in to your app with their Ethereum wallet It allows you to add web3 authentication to your existing apps in less than 5 minutes! https://t.co/yhmjMP4dlU" — twitter.com
Authentifier tes utilisateurs dans Laravel en utilisant leur portefeuille Ethereum ?
YES YOU CAN !
Dieter Coopman on Twitter: "Stop repeating yourself , explore the power of blade and Livewire components in a new video of my series :🎩 Laravel Livewire in 5 minutes https://t.co/mBKrDMWB7g via @YouTube With a shoutout to @driesvints for the great work on @bladeuikit" — twitter.com
En vidéo, Laravel Livewire en 5 minutes
Laravel Wordwide Meetup
Revoir le Laravel Wordwide Meetup de Mars 2021
Les invités étaient Miguel Piedrafita qui nous a parlé d'authentification et Caneco qui nous a livré les secrets de la réalisation graphique du site Laracon et c'était tout simplement génial !
Next Laravel Wordwide Meetup : avril 2021
Le prochain Meetup sera très intéressant puisque Sebastian De Deyne va te parler de l'intégration de Vite dans Laravel, tandis que Kai Sassnowski te montrera comment améliorer les performances de ton application en appliquant judicieusement des index à ta base de données.
Pour ne pas louper le Meetup, ajoute le dès maintenant dans ton agenda.
Si tu fais du SOAP et du Laravel, ce qui suis est pour toi !
GitHub - Ricorocks-Digital-Agency/Soap: A Laravel SOAP client that provides a clean interface for handling requests and responses. — github.com A Laravel SOAP client that provides a clean interface for handling requests and responses. - Ricorocks-Digital-Agency/Soap
Le mot de la fin
Fin du deuxième numéro, comme tu t'en doute un peu je cherche encore la bonne fréquence, le type de contenu, la ligne éditoriale. Donc encore une fois, tes retours me seront super précieux. Alors n'hésites pas à me dire ce que tu penses de ce nouveau format.
Et n'oublie pas, sois Happy To Dev et n'abandonne jamais !
Prends soin de toi et de tes proches.
Fred