Hebdomadaire Shaarli
Semaine 03 (January 16, 2023)
L'idée est de construire un objet automatiquement à partir de paramètres de l'URL... ce que permet de faire l'ArgumentResolver de Symfony (remplace le ParamConverter)
Tout est dans le titre
L'auteur décrit les 7 étapes dans son apprentissage du TDD
Étape 1. Le lâcher prise : barrière psychologique
Étape 2. Petit à petit, on est moins petit : la vraie valeur de TDD
Étape 3. Abuser de son IDE
Étape 4. La liberté du refacto : la confiance en notre code
Étape 5. Ne pas refacto trop tôt
Étape 6. Tests techniques versus tests métier
Étape 7. Double loop BDD TDD <3
Une BD humoristique sur les problèmes liés à CORS... avec quelques liens pour les résoudre
L'auteur présente la solution d'IAM (Identity and Access Management) de Scaleway, notamment vis à vis de son intégration à Terraform.
L'auteur évalue les avantages et inconvénients du principe DRY - don't repeat yourself - tel qu'énoncé dans le Pragmatic Programmer. Ce principe explique surtout qu'il y a un gros avantage à avoir une seule source de vérité pour la connaissance métier. Cela n'implique pas que le code ne soit jamais dupliqué - "la duplication est bien moins coûteuse qu'une mauvaise abstraction"
Un service Symfony a besoin d'un autre service, mais ce besoin varie selon le contexte d'exécution. L'auteur montre l'utilisation des tags pour injecter automatiquement tous les services utilisés.
L'auteur présente Open Source Vulnerability Detector aka osv-detector qui permet de détecter les vulnérabilités des dépendances de tous types de projet (utilisation de npm, de composer, etc.) Il a même créé une image docker pour l'utilisation dans une CI
L'auteur présente WebAssembly, à travers quelques exemples de programmes.
L'auteur donne de bons conseils pour gérer ses side projets
Dans ce vieil article, l'auteur montre les dangers de nouveautés introduites par PHP 7.2, notamment le possible mauvais usage du type "object". D'une manière générale, il insiste sur le fait de préciser au maximum la classe / interface des objets plutôt qu'un type générique ne donnant aucune information sur les champs / méthodes possibles.
Scott Young fait une rétrospective de l'évolution de ses idées sur l'apprentissage.
Tout est dans le titre
Tout est dans le titre
La librairie boto3 facilite le développement sur lambda AWS ou l'écriture de code d'infrastructure AWS. L'auteur montre l'installation d'une extension boto3 dans VSCode qui fournit l'autocomplétion
Tout est dans le titre
L'auteur présente les avantages de Symfony UX / Turbo / Stimulus
Dans un projet Symfony, un service peut avoir besoin d'autres services, mais ce besoin varie en fonction du contexte d'exécution...Au lieu d'injecter tous les services pouvant être utilisés dans le constructeur, on peut utiliser un "service subscriber" à la place. L'auteur montre comment faire.
L'auteur détaille les outils qu'il utilise et ses méthodes - voici le résumé :
- Noter ses idées dans Google Keep
- Définir les objectifs de son projet : objectifs généraux et objectifs "temporels" (court, moyen et long terme)
- Demander des retours au bon moment, aux bonnes personnes (définir son audience)
- Apprécier le temps de développement (choix des technos, frameworks, etc.) - utilisation de la méthode Pomodoro. S'il ne se sent pas motivé, l'auteur tente pendant 10 min de coder... Souvent ça suffit, mais sinon il s'arrête.
- Moins on s'éparpulle, mieux c'est - utilisation de Kanban avec Trello, une seule tâche "en cours" à la fois - pas d'évaluation précise du temps mais un macro sizing
- Prendre des habitudes - méthode "ne pas briser la chaîne" pour s'assurer de consacrer un minimum de temps chaque jour.
- Ne pas se mettre de pression inutile
- Éviter le perfectionnisme en se donnant des limites
L'auteur vulgarise l'architecture de Von Neumann : comment fonctionne la RAM, sa relation avec le CPU, etc. L'article est long mais se lit très bien
Le code css pour avoir un dark mode minimaliste
@media (prefers-color-scheme: dark) { html body {filter: invert(1);} /* the following really should be managed by a cascade layer */ html img, html img.book.cover, html img.book.cover.big, html [#archipelago](./add-tag/archipelago) a:hover img {filter: invert(1);} html [#thoughts](./add-tag/thoughts) figure.standalone img { box-shadow: 0.25em 0.25em 0.67em [#FFF8](./add-tag/FFF8); } }
Remplacer la commande kubectl de Kubernetes par oc d'OpenShift
L'auteur montre, via ce tutoriel, l'utilisation de Behat pour tester une commande Symfony. Il donne des solutions pour quelques problèmes que l'on pourrait rencontrer : utilisation du service locator, contexte d'exécution, etc.