Golden master project to practice software engineering good practices
| gradle | Initial commit | 2024-09-20 15:50:04 |
|---|---|---|
| src | Test unitaire player | 2024-09-20 17:33:20 |
| README.md | Initial commit | 2024-09-20 15:50:04 |
| build.gradle | Initial commit | 2024-09-20 15:50:04 |
| gradlew | Test unitaire player | 2024-09-20 17:33:20 |
| gradlew.bat | Initial commit | 2024-09-20 15:50:04 |
| settings.gradle | Initial commit | 2024-09-20 15:50:04 |
Sur les machines ISIMA, vous devez :
echo "JAVA_HOME=/usr/lib/jvm/jdk-21.0.4-oracle-x64" >> ~/.bashrc
Bienvenue sur RPG Player Manager, un superbe projet rédigé en Java... Enfin ça, c'est que vous a dit le client avant de vous envoyer le code source.
En effet, le code de ce projet est moche, complexe, et surtout, moche. Et félicitations, vous devez coder une nouvelle fonctionnalité à l'intérieur !
Avant de pouvoir implémenter la nouvelle fonctionnalité (qui sera décrite plus tard), vous allez en premier lieu vous assurer de ne rien casser. Pour cela, vous allez devoir :
JaCoCo et PIT seront vos amis (+ de détails dans le sujet de TP).
Attention, le client vous informe que pour une raison inconnue, le passage de l'aventurier au niveau 2 ne fonctionne pas... Mais le niveau 3, 4 et 5, eux, fonctionnent.
Rédigez des tests unitaires et globaux de manière que JaCoCo vous indique 100% de code coverage. Des exemples vous
sont fournis dans src/test/java/re.forestier.re.
Durant cette phase, il est strictement interdit de toucher au code source !
Durant la phase de refactoring, vous êtes libres de toucher à ce que vous voulez dans le programme ! N'oubliez pas de régulièrement commiter votre travail pour éviter de vous retrouver perdu dans un refactoring impossible...
L'objectif : rendre propre le code actuel sans casser vos tests actuels ! Dans cette phase, il est strictement interdit de toucher aux tests !
Quelques pistes :
re.forestier.re.rpg ? (probablement un redécoupage à faire) ;N'hésitez pas à demander à votre chargé de TP des conseils au fur et à mesure.
Note : Durant cette phase, vous pouvez en profiter pour corriger le bug de l'aventurier niveau 2...
En vous donnant le projet, le client vous a demandé d'implémenter de nouvelles fonctionnalités :
GOBLIN en anglais) :INT = 2ATK = 2ALC = 1ATF = 3ALC = 4VIS = 1DEF = 1DEF = 2ATK = 3Actuellement, un objet, c'est une simple chaîne de caractères. L'idée est d'en faire un vrai objet, disposant :
sell()).Lors de l'ajout de ces fonctionnalités, vous penserez à créer les tests nécessaires.
Actuellement, il est uniquement possible d'avoir le détail d'un joueur dans un affichage textuel. Le client souhaiterait que vous ajoutiez un affichage complémentaire en Markdown. Markdown est un moyen simple de formater du texte. Voici quelques règles de Markdown :
# permet de créer un titre, ## un sous-titre, et ainsi de suite ;* formate un texte en italique ; et ** formate un texte en gras ;* au début de la ligne ;Pour découvrir davantage la syntaxe Markdown, regardez le contenu de ce fichier !