Utiliser des liens de documentation avec Sensei
L'une des difficultés liées à l'apprentissage d'une nouvelle bibliothèque ou au partage de bonnes pratiques au sein d'une équipe réside dans la documentation et la création d'exemples.
Nous créons très souvent de petits projets d'exemple, mais nous ne les gardons pas sous les yeux lorsque nous travaillons sur le code réel.
J'ai souvent pensé qu'il serait formidable de pouvoir créer des liens vers nos exemples ou des exemples en ligne, et d'accéder à une URL pour obtenir des explications supplémentaires si nécessaire.
En Java, nous disposons des commentaires JavaDoc, qui peuvent inclure une annotation « see » :
/**
* @see <a href="https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations">Documentation des annotations Junit 5</a>
*/
Une telle JavaDoc dans des bibliothèques tierces est une aide précieuse, car nous pouvons utiliser la fonctionnalité de documentation rapide d'IntelliJ pour accéder à des exemples plus détaillés.

Cependant, nous savons tous que les commentaires ne sont pas mis à jour aussi souvent que le code, et que la maintenance de la présence en ligne est souvent déconnectée de celle de la bibliothèque, étant parfois assurée par une équipe totalement différente.
Comment Sensei vous aide
Sensei permet de faire correspondre des annotations et des méthodes de bibliothèque afin de fournir des liens vers une documentation détaillée sur un wiki ou un site de tutoriels tiers.
À titre d'exemple, j'utilise l'annotation @Test de JUnit.
La JavaDoc est très détaillée et la vue de documentation rapide explique comment utiliser l'annotation.
Mais la documentation officielle sur le site web est souvent plus facile à lire et contient davantage d'exemples.
Lorsqu'une équipe commence à apprendre une bibliothèque, disposer d'une série de tutoriels recommandés peut s'avérer très utile.
Sensei dispose d'une action goto que nous pouvons utiliser pour ouvrir une URL, ce qui nous permet de créer des liens vers des sites externes et des exemples de documentation que nous, en tant qu'équipe, jugeons utiles.
Implémentation de l'action Goto URL
Pour implémenter cela, je créerais une recherche qui correspond à l'annotation @Test de Junit.
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.api.Test"
Ensuite, j'ajouterais des actions « goto » pour chacune des URL que je trouve utiles.
ex.
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods
L'exemple ci-dessous créerait une seule action Annotations JUnit (apprendre) qui ouvrirait les deux URL dans un navigateur simultanément.
availableFixes:
- name: "En savoir plus sur les annotations JUnit"
actions:
- goto:
type: "URL"
value: "https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"=
- goto:
type: "URL"
value: "https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
Et lorsque je l'active dans IntelliJ avec Alt+Entrée je vois le menu contextuel que je peux sélectionner pour accéder à la documentation.

Actions multiples
Je pourrais choisir d'avoir plusieurs actions afin que chaque URL ou tutoriel dispose de sa propre option dans le menu contextuel de correction rapide alt+entrée.
Par exemple, pour l'annotation @Parameterized, je pourrais vouloir créer un lien vers la documentation officielle et vers un ensemble d'exemples de code en ligne.
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests
- https://github.com/eviltester/junitexamples/blob/master/src/test/java/parameterized/junit5/InitialExampleTest.java
Je créerais simplement une recette qui recherche l'annotation :
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.params.ParameterizedTest"
Et qui renvoie vers les sites que j'ai identifiés comme utiles :
availableFixes:
- name: "Annotations JUnit (apprendre)"
actions:
- goto:
type: "URL"
value: "https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"
- name: "Qu'est-ce qu'un test JUnit ? (apprendre)"
actions:
- goto:
type: "URL"
value: "https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
Les deux liens apparaîtraient alors dans la boîte de dialogue contextuelle.

Qui en bénéficierait ?
J'aurais trouvé cela utile lors de l'utilisation et de l'apprentissage de bibliothèques, en particulier lorsque je dirige des équipes et que je les aide à adopter une nouvelle bibliothèque.
Cela pourrait également profiter aux équipes créant des bibliothèques, en créant un ensemble standard de recettes de documentation pour aider à guider les utilisateurs dans l'adoption de la bibliothèque ou de ses nouvelles fonctionnalités.
Cela serait particulièrement utile si la maintenance du code et celle de la documentation sont effectuées par des équipes différentes.
Vous pouvez installer Sensei depuis IntelliJ via `preferences > plugins` (recherchez simplement "sensei secure code").
Tout le code de cet article de blog se trouve sur Github dans le module junitexamples à l'adresse https://github.com/SecureCodeWarrior/sensei-blog-examples
Gouvernez le développement assisté par IA avant la mise en production
Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.
Explorer plus d'articles
Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Une culture de la sécurité : comment Sage a bâti son programme de champions
Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise
Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

Levier 8 : Valoriser votre programme
Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.
.avif)
Chaque employé est désormais en première ligne de la cybersécurité IA
Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.
Sécurisez le développement piloté par l'IA avant le déploiement
Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.
