Skip to content

Dépôt du projet "Améliorez votre application avec des systèmes distribués" de la formation "Développeur d'application Java" d'OpenClassrooms

Notifications You must be signed in to change notification settings

Thibeylard/TourGuideApp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 

Repository files navigation

shields shields shields


Ce README est basé sur les conclusions évoquées dans la présentation réalisée à la fin du projet.

Améliorez votre application avec des systèmes distribués

Dans le cadre de la formation OpenClassrooms "Développeur d'application Java"

Objectif du projet

À partir d'un projet existant, optimiser les performances de l'application notamment par la création de systèmes distribués, ajouter des tests et des fonctionnalités.

Progression

Ce projet a été l'opportunité de découvrir de nouvelles technologies fondamentales, telles que Gradle, Docker et Docker compose, ou encore les frameworks de concurrence de Java. Ce dernier point a été le plus délicat durant le projet, avec l'exploration des différentes options d'optimisation.

Réalisation

J'ai obtenu des résultats probants sur l'optimisation avec les technologies requises, tout en essayant d'aller plus loin encore. Notamment :

  • Optimisation du code (Tracker.java par exemple)
  • Utilisation de Docker compose pour gérer l'ensemble de l'application
  • Implémentation de controllers sur les différents systèmes pour une communication HTTP
  • Recherche de la meilleure performance et non du minimum demandé (Voir Annexes)
    • Première tentative avec les ThreadPools, qui remplissaient déjà les objectifs fixés
    • Amélioration avec les CompletableFuture dont la performance est nettement plus élevée
  • Création d'un module "common" supplémentaire, pour le partage des modèles
  • build.gradle centralisé

Axes d'améliorations

  • Les performances HTTP pourraient être améliorées avec un meilleur paramètrage de Tomcat, ou l'utilisation d’un load balancer
  • Des tests d’intégration supplémentaires pourraient être ajoutés, mais aussi et surtout intégré dans le cycle de Gradle, avec le lancement et l'arrêt automatique des containers Docker appropriés.

Annexes

  • Rouge = Pas de concurrence
  • Vert = ThreadPools
  • Bleu = CompletableFuture
  • Violet = CompletableFuture (version HTTP)

Rewards performance

rewards_performance

Track performance

track_performance

About

Dépôt du projet "Améliorez votre application avec des systèmes distribués" de la formation "Développeur d'application Java" d'OpenClassrooms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 93.5%
  • Shell 5.6%
  • Dockerfile 0.9%