Guillaume et Emmanuel discutent les nouvelles de novembre décembre: spring boot 3, AWS SnapStart, GitHub Copilot en procès… Et aussi des articles de fond: performance, SRE et l’auto résilience, comment utiliser Git, le Devops pour les décideurs, l’age et la tech et d’autres sujets encore. Résumé
Enregistré le 9 décembre 2022
Téléchargement de l’épisode LesCastCodeurs-Episode–289.mp3
News LangagesComment choisir ses collections ? Entre les différentes listes, maps, queues, etc. https://www.baeldung.com/java-choose-list-set-queue-map
- un bon rappel des fonctionalités des différentes collections (discuter le diagramme de choix)
- et un bon rappel des ordres de grandeur d’insertion, de lecture etc
- Attention o(n) ne veut pas dire plus lent que o(1), ca veut dire que ca scale linéraiement
- Tester avec le volume attendu de données
- Un bon viel Object[] et le traverser à chqaue fois peut etre bien plus efficace (moins gourmand en structure memoire, moins de jump memoire, etc)
Spring Boot 3 est sorti https://spring.io/blog/2022/11/24/spring-boot–3–0-goes-ga
- Java 17 de base
- Support de GraalVM Native Image (au lieu de l’ancienne expérimentation de Spring Native)
- Amélioration de la traçabilité avec Micrometer et Micrometer Tracing
- JakartaEE 9 minimum et support de JakartaEE 10
Quarkus est 600 fois plus lent qu’un compétiteur, ou pas https://t.co/1c2sFSY9sE
- discute le lien entre les résultats et l’environnement
- Une erreur de code initiale
- Puis une erreur de limite de système ou deux
- Pour arriver au résultat
- Bon retour sur l’approche méthodologique
Spring vault 3 https://spring.io/blog/2022/11/28/spring-vault–3–0-goes-ga
- Java 17
- Plus de clients supportés comme le client jtm réactif du jdk
- Support du versionage des mots de passe pour les vaults clé valeur
Mais pourquoi Twitter tourne t’il toujours malgré toutes les personnes renvoyées ? https://matthewtejo.substack.com/p/why-twitter-didnt-go-down-from-a
- Grâce au long travail de SRE, de mise en place d’auto-réparation, de cache, de monitoring, de sur-provisioning. Donc beaucoup d’automatisation pour faire en sorte que le tout fonctionne “presque” tout seul sans trop d’intervention humaine.
- C’est un article écrit par un des SRE qui travaillait en particulier sur le cache de Twitter.
GitHub passe à un versioning par date de son API REST https://github.blog/2022–11–28-to-infinity-and-beyond-enabling-the-future-of-githubs-rest-api-with-api-versioning/
- au lieu de continuer avec une v4, v5, etc, utilisation de date comme 2022–12–25
- chacune de ses versions seraient supportées a minima 2 ans
- on peut spécifier la version avec un header HTTP spécial
- pas de changement pour l’API GraphQL par contre
- Stripes va encore plus loin en se rappelant la version utilisée au premier appel et le fixe par defaut
- Les appels sans version explicite utilisent celle là, et on peut la faire evoluer
Amazon SnapStart pour lambda https://aws.amazon.com/blogs/aws/new-accelerate-your-lambda-functions-with-lambda-snapstart/
- démarrer plus rapidement les lambda
- A une phase Init exécutée pour préparer la lambda
- snapshot Firecracker VM pas juste CRaC
- Remplace les seed et le réseau et le disque
- réduit les temps de démarrage
- Testé avec Quarkus https://quarkus.io/blog/quarkus-support-for-aws-lambda-snapstart/
- Testé avec Micronaut https://twitter.com/sdelamo/status/1597535515758452736?s=46&t=iQ7IEvuv4e4eD1oM-Hi1IA
- Et avec Spring Boot
Petit tip Git de Minko Gechev (monsieur Angular) https://twitter.com/mgechev/status/1594758205237706752
- On peut faire un git clone [repo] —depth 1 pour dire qu’on ne veut que la dernière révision, et non pas tout l’historique du repo
- C’est pratique en particulier en CI pour gagner du temps lorsqu’on a un gros repo avec beaucoup de révisions
Si vous luttez toujours avec git ce guide très détaillé peut vous aider. https://github.com/k88hudson/git-flight-rules
- Il s’agit d’un énorme “comment faire?” qui est même traduit en plusieurs langues dont le français: https://github.com/k88hudson/git-flight-rules/blob/master/README_fr.md
Faire tourner ses Github Actions en local avec le projet open source Act https://github.com/nektos/act
- Pratique de vérifier en local le fonctionnement de son pipeline avant de le pousser sur Github en prod
- Utilise Docker sous le capot pour faire tourner chaque étape
- peut marcher sur podman mais pas garanti pour l’instant
Comment transformer n’importe quel site web ou webapp en application autonome https://glaforge.appspot.com/article/turning-a-website-into-a-desktop-application
- utilisation d’une fonctionnalité de Chrome : création de raccourci avec ouverture dans une fenêtre “sans chrome”
- fonctionne sur tous les OS
- utilise le favicon comme icône pour l’application
- le site web se retrouve dans votre barre des tâches comme une application normale, et on peut faire un ALT/CMD-Tab pour aller vers son application, etc.
Six patterns pour les architectures event driven https://medium.com/wix-engineering/6-event-driven-architecture-patterns-part–1–93758b253f47
- de Wix
- Trois patterns dans cet article
- Consume and project : vue dematerialisee copie des données chaudes consommées par beaucoup. Et ces vues sont focalisées sur un consommateur. Kafka et CDC au milieu pour découpler
- Event driven de bout en bout : websocket utilise pour envoyer les demandes. Le web stocket serveur copie dans Kafka. Ces consommateurs font le job et un message est envoyé via le web socket serveur. Résilience, découplage
- K/V store: et en m’articuler avec kafka qui permet d’être consommé en k/v basse latence et en consommation d’évènement
- Peut être intéressant mais pas si simple a comprendre les usage dans cet article
Un article sur quoi et pourquoi le DevOps (en fait englobant les bonnes pratiques du moment) https://enix.io/fr/blog/devops-benefices-difficultes/
- les tech ne vont pas apprendre grand chose
- mais c’est un article pour les managers ou plutot les execs pour les aider à voir la valeur
- souvent plus facile de montrer la valeur par du contenu exterieur a l’entreprise percu comme neutre
- autres articles sur Kubernetes pour les execs https://enix.io/fr/blog/kubernetes-benefices-difficultes/
Amazon et la methode “working backwards” pour un produit https://www.productplan.com/glossary/working-backward-amazon-method/
- imagine le produit pret a etre releasé
- ecrire la press release
- evaluer l’opportunité (doit-on le construire)
- découvrir les solution pour le faire et avoir l’appriobation des décideurs
- construire la roadmap
- construire le backlog
1.5 million de lignes de code dans Android sont maintenant en Rust https://security.googleblog.com/2022/12/memory-safe-languages-in-android–13.html?m=1
- de plus en plus de code memory safe (Java, Kotlin, Rust)
- Mais la majorité de nouveau code reste quand meme Java et C++
- Et une correlation de baisse de vulnerabilités liées a la sureté de mémoire (moins de code de programme memory unsafe)
- Ou maturation du code avec moins de vuln?
- Autres efforts: outils de securisation de la memoire en C/C++, fuzzing
- Zero vuln memoire dans le code rust en 2 ans et en moyenne 1 / kLOC dans le code historique)
- Java -> JNI, Rust - unsafe {} pour les accès resource
Les dinosaures de la tech commencent à 40 ans? https://www.linkedin.com/pulse/non-nous-ne-sommes-pas-des-dinosaures-de-la-tech-pass%C3%A9-ramade/
- Commentaire intéressant de Benjamin Marron qui explique “s’être restreint aux technos de son coeur d’activité car trop de veille technologique hétérogène l’avait épuisé et avait renforcé son sentiment d’être complètement obsolète et dépassé” https://twitter.com/bmarron/status/1596136098828148736
- âge median des devs entre 28 et 31 ans chez Google ms Facebook
- Mais 50 ans c’est 30% de la force de travail
- Avantages seniors
- Expérience
- Mentorat (comm, interaction interpersonnelle, (atlassian un 40 ans dans chaque équipe
- rétention Moins de changement de travail tous les 3 ans
- Flexibilité : les vieux ont leurs enfants partis
- Aide à faire des produites pour les personnes de même âge
- pas souvent dans les politiques de DE&I
GitHub copilot menacé par un procès https://www.infoq.com/news/2022/11/lawsuit-github-copilot/?utm_source=twitter&utm_medium=link&utm_campaign=calendar
- aux États Unis
- Class action contre copilot GitHub, ms et OpenAI
- Violation de copyright et notamment des licenses open source
- Hypothèse est que humain ou AI, même responsabilité face à la license
- Discussion autour de fair use vs rupture de contrat DMCA etc
- Piratage de logiciel à une échelle sans précédant
- Pour avoir des conséquences fortes sur l’IA et son utilisation des sources ouvertes pour construire du contenu
- Et Antonio va devoir recorder à la main
Différentes méthodes d’interpolation des chaines en Java https://www.baeldung.com/java-string-interpolation
- la concatenation avec +
- la methode format() souvent intimidante mais plus optimisée et sure
- StringBuilder le plus flexible notamment dans les cas de if et autre variations mais moins sur que format. et plus rapide
- MessageFormat pour les chaines de caractère utilisateur (multi langage)
- Apache Commons (pas sur qu’il y ait beaucoup d’usage dans les JDK modernes
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 1 décembre 2022 : Devops DDay #7 - Marseille (France)
- 2 décembre 2022 : BDX I/O - Bordeaux (France)
- 2 décembre 2022 : DevFest Dijon 2022 - Dijon (France)
- 14–16 décembre 2022 : API Days Paris - Paris (France) & Online
- 15–16 décembre 2022 : Agile Tour Rennes - Rennes (France)
- 19 janvier 2023 : Archilocus - Bordeaux (France)
- 19–20 janvier 2023 : Touraine Tech - Tours (France)
- 25–28 janvier 2023 : SnowCamp - Grenoble (France)
- 2 février 2023 : Very Tech Trip - Paris (France)
- 2 février 2023 : AgiLeMans - Le Mans (France)
- 9–11 février 2023 : World AI Cannes - Cannes (France)
- 16–19 février 2023 : PyConFR - Bordeaux (France)
- 7 mars 2023 : Kubernetes Community Days France - Paris (France)
- 23–24 mars 2023 : SymfonyLive Paris - Paris (France)
- 23–24 mars 2023 : Agile Niort - Niort (France)
- 1–2 avril 2023 : JdLL - Lyon 3e (France)
- 5–7 avril 2023 : FIC - Lille Grand Palais (France)
- 12–14 avril 2023 : Devoxx France - Paris (France)
- 10–12 mai 2023 : Devoxx UK - London (UK)
- 12 mai 2023 : AFUP Day Lille & Lyon (France)
- 25–26 mai 2023 : Newcrafts Paris - Paris (France)
- 29–30 juin 2023 : Sunny Tech - Montpellier (France)
- 12–13 octobre 2023 : Volcamp 2023 - Clermont Ferrand (France)
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/