Vous aurez remarqué le terme "Amélioration" dans le titre du sujet. En effet, un binôme a déjà travaillé sur ce projet l'année dernière et a développé un logiciel de simulation en Java, en utilisant la librairie java3D !
Le cahier des charges de cette année s'appuie donc sur ce travail existant, et c'est ça exactement qui m'a intéressé ! La refactorisation d'un code existant, un exercice difficile mais oh combien passionnant !
En gros refactoriser un code revient à : Lire et analyser le code existant, identifier les zones qui posent problème, les classes qui ont besoin d'être réorganisées, réécrites autrement. Et enfin réécrire ces zones de code en les refactorisant ! La refactorisation est bien souvent ce qui différencie un développeur ordinaire d'un autre ! Alex Iskold, définit d'ailleurs le refactoring comme étant l'une des conditions que doit remplir un rockstar software engineer !
Pour résumer, le refactoring permet à la fois de lire du code et d'en écrire ! Le cahier des charges, inclus également la correction de bugs de rendu, l'intégration d'algorithmes de placement 3D ainsi que l'étude d'alternatives à java3D. En plus du refactoring, ce projet m'a motivé étant donné que j'ai pas mal travaillé sur la programmation graphique dans mon passé (beaucoup plus de 2D c'est vrai, mais il m'est arrivé de faire de la 3D avec OpenGL :) ). Cerise sur le gâteau, ça me permettra de travailler sérieusement sur du Java (j'ai des projets en C++ et en C# .NET sous la manche mais pas de projets Java !).
Bien entendu, j'essayerai de poster des billets au fur et à mesure du développement de ce projet, afin de partager des détails techniques que je jugerais utiles :).