Présenté dans les locaux de RedHat
Site : https://www.parisjug.org/xwiki/wiki/oldversion/view/Meeting/20190108
Présenté par Christophe SCHREIBER, ancien du StarTECH Java de Softeam
Le code legacy, tout le monde connait et les pratiques du craftsmanship permettent d’y remédier. Mais parfois, le problème est profond et vient de choix architecturaux qui nous compliquent la vie. Je présenterai plusieurs types de mauvais choix que j’ai croisés durant ma carrière et comment y remédier.
Architecture smells :
-
partager sa base de données : PÔ BIENNNN !!!!
-
2 équipes différentes ne doivent pas utiliser la même table (surtout en write) pour partager des data
-
-
construire son SI autour d’un logiciel propriétaire
-
pas de liberté dans les choix techniques → isoler le progiciel à l’aide d’architecture hexagonale
-
modèle difficile à comprendre → avoir son propre modèle
-
propriétaire = boîte noire → travailler en équipe pour faciliter le partage de connaissances
-
-
se coupler à toutes les applications du SI
-
synchronisation des livraisons entre les équipes → casser les dépendances binaires
-
utilisation par d’autres équipes de nos composants → isoler et ne publier que ce qui doit être partagé
-
-
externaliser tout le code métier
-
règles difficilement compréhensibles → utiliser des noms expressifs et clairs
→ Domain Driven Design
-
Conclusion :
-
attention aux choix structurants en début de projet
-
différer les décisions autant que possible
Présenté par Renaud Fleury et Caroline de Vasson
Ce Quickie pour faire un tour 360° de la question des offres du marché des containers avec un zoom particulier sur l'outil RKT de CoreOS ...
Parle de l’implémentation concurrente de Docker, créé par CoreOS : Rocket
-
Quay : référentiel de conteneurs
-
Tectonic : orchestrateur de conteneurs basé sur Kubernetes
Contrairement à Docker, Rocket est resté sur une implémentation Linux uniquement.
2015 : Open Container Initiative
Présenté par Réda Housni Alaoui
Chez Cosium, nous utilisons une stack Spring Data JPA + JPA + Hibernate. Voici maintenant quelques années que nous utilisons les EntityGraphs pour réduire le nombre de requêtes générées par Hibernate et ainsi résoudre le problème de "n+1 query". Pour une méthode de repository, Spring Data JPA permet seulement de sélectionner les EntityGraphs à la compilation via des annotations. Afin de corriger ce qui est selon nous une lacune, nous avons développé une extension Spring Data JPA. L'extension est https://github.com/Cosium/spring-data-jpa-entity-graph
Comment traiter 3 problèmes classiques en JPA
-
trop verbeux → utiliser Spring Data (tout particulièrement Spring Data JPA)
Exemple : utiliserextends CrudRepository<Book, Long>
-
N+1 query issue → JPA 2.1 a amené la solution EntityGraph
→ permet de modifier dynamiquement le fetch type
ATTENTION ! Spring Data neutralizes EntityGrah → on doit ajouter une annotation sur la requête, ce qui va à l’encontre du principe de l’EntityGraph (modification dynamique du fetch type)
par Léonard Lys
Un workshop de 15min pour apprendre a créer une ICO bidon sur la blockchain Ethereum (initial coin offering) et lancer sa première shitcoin to the moon. Comment éviter les les arnaques ? Apprenez à les faire ;-)
Wallet : client Blockchain
Présenté par Bacem Ounis
une présentation du design pattern decorator en 2 parties : La présentation d'un problème de design résolu avec le pattern decorator pour montrer l'utilité des design patterns Un petit guide pour la transition vers l'utilisation des design patterns.
par Julien Béti
Nous avons découvert et apprécié Gerrit suite à une contribution à Chromium. Les raisons de notre passage sur Gerrit: voir l'épisode 190 des Castcodeurs. Afin de pouvoir utiliser Gerrit de la même manière que GitHub, Gitlab, Bitbucket and co, nous avons mis en place le client "vet", développé en Java et tirant parti de JLink afin de proposer un livrable autonome pour les plateformes Linux, Windows et Mac. ---- Focus sur *Vet*, un client pour Gerrit. Gerrit peut-être comparé à GitHub, GitLab, BitBucket. + Comme Gerrit ne gère pas complètement la notion de Pull Request, création du client *Vet*.