Archives par étiquette : IntelliJ

Documenter un package avec des diagrammes UML

C’est bien beau Javadoc mais ça manque quand même cruellement de visuels. Je vais rapidement expliquer comment remédier à ça.

Avant de me lancer dans un développement, j’aime bien noter rapidement mes idées et notamment faire un petit diagramme de classes en UML. En Java, j’utilise PlantUML dans mon IDE IntelliJ. PlantUML a 2 principaux avantages : il fait le taf et il est gratuit.

Pour installer PlantUML, il suffit d’ajouter le plugin à IntelliJ.

PlantUML pluginPour créer un diagramme de classe, on peut créer un fichier PlantUML (click droit sur un package > New > PlantUML File).

Dans cet exemple, j’ai une classe abstraite et deux classes dérivées :

Fichier puml

Cette visualisation peut être exportée en format image. Comme elle est destinée à être utilisée dans la Javadoc, je l’exporte dans le répertoire javadoc/doc-files.

On peut maintenant simplement référencer cette image dans la javadoc comme ceci :

/** Moteur du quiz
 *  <p>
 *     <img alt="UML class diagram" src="../doc-files/Quiz.png" >
 */
public abstract class Quiz {
    // ...
}

Si vous voulez documenter un package, il suffira de créer un fichier nommé package-info.java directement dans le package. Il contiendra une ligne avec le nom du package précédée de la javadoc.

/**
 * Jeu créé en TP de la vidéo <a href="https://www.youtube.com/watch?v=hSB3qPUJ7qE">Java intermédiaire 42 - TP Quiz</a>
 * <p>
 *     <ul>
 *         <li>main() se trouve dans Quizmain</li>
 *         <li>L'engine de jeu peut être soit graphique soit en mode console
 *         <br><img alt="UML class diagram" src="../doc-files/Quiz.png" ></li>
 *         <li>Les sets de question portent sur les capitales ou des exercices de math
 *         <br><img alt="UML class diagram" src="../doc-files/QuestionsGenerator.png" ></li>
 *     </ul>
 */
package Quiz;

Ce qui donnera ce résultat :

Résultat dans la JavaDoc

Tadaaaa 😉

Ébullition de neurones…

Ça avait commencé doucement. Je lis tous les jours les infos de mes sites préférées via Liferea, mon lecteur de flux RSS sous Linux. J’aime commencer par les nouvelles les plus récentes mais quand on mélange tous les sites je trouve qu’il manque une colonne qui rappelle sur quel site on est. J’ai donc décidé, aussi par challenge technique, de développer “mon” liferea.

Liferea

Je replonge dans dans le développement Java et en une semaine, avec l’aide de la doc et de l’expérience des développeurs sur stackoverflow j’arrive à bricoler un lecteur qui me convient mieux. Il lit les flux, y compris les chaînes youtube, il retient ce qui a été lu ou pas et il ouvre les liens dans un browser externe. Je ferai peut-être un article dessus plus tard, voici juste une capture d’écran de l’état actuel.

"mon" liferea

C’est bien beau mais je suis lucide : certaines partie de code ne sont pas propres, je sens que je ne maîtrise pas tout, il me manque des bases. Retour donc à potasser Java.

Je commence par la base : le Delannoy. La bible ! Complet mais aride.

Puis je change de tactique : suivre un cours sur OpenClassrooms (beaucoup plus abordable) en parallèle.

Mais arrivée aux premier design pattern, je me dis que ça vaut la peine de creuser un peu plus et je m’égare quelques jours…

Comme environnement de développement, j’utilise IntelliJ iDEA. Je profite de mon lecteur de flux pour m’abonner à leur chaîne youtube et je vois qu’il y a une vidéo sur l’intégration à Git et GitHub. Git je connais mais je ne me suis jamais inscrite sur GitHub. Me voilà inscrite et à suivre les petites formations de présentation…

En parallèle, comme ça fait quelques années que mon PC sous Debian n’avait plus été réinstallé proprement mais avait accumulé un tas de paquets pour le développement web, je décide de lui offrir un petit rafraîchissement en réinstallant Debian.

Debian 10 Buster s’installe sans aucun problème de driver et en quelques heures j’ai un PC tout beau tout propre. Oui mais… Gnome n’est quand même pas très ergonomique… Le simple fait que les programmes sont organisés dans la barre de tâches dans l’ordre de leur ouverture (et change donc tout le temps) est révélateur.

Je change donc pour Cinnamon (et je passe mes programmes en mode dark… mais non je préfère light, retour à light…).

Et tiens, tant qu’on y est, j’essaie le browser web Brave. Pas mal  du tout. Plus rapide que Firefox, il me semble. Seul défaut, je n’ai pas encore trouvé comment ouvrir un fichier dans un programme tiers directement. On ne peut faire qu’une sauvegarde locale.

Bref, en deux semaines j’ai réinstallé mon PC, changé d’environnement de bureau et de browser web et repris le développement d’applications. Ah, et j’oublie quelque-chose : je viens de commander un Raspberry PI pour en faire un media-center dans le salon. Plus qu’à trouver comment concilier tout ça avec un peu de lecture et l’entretien du potager.