← Retour au blog
tech 7 juin 2026

Sem : Une nouvelle approche pour la compréhension du code – au-delà des LSPs, des entités sur Git

Découvrez comment Sem révolutionne la compréhension du code en offrant une approche sémantique basée sur Git, surpassant les limitations des LSPs traditionnels.

Article inspiré de la source originale
Sem: New primitive for code understanding – not LSPs, but entities on top of Git ↗ ataraxy-labs.github.io

Introduction

Dans le monde du développement logiciel, la compréhension du code est cruciale pour maintenir et faire évoluer les projets efficacement. Les Language Server Protocols (LSPs) ont longtemps été l'outil de choix pour analyser et naviguer dans le code. Cependant, une nouvelle approche prometteuse émerge : Sem, une primitive qui offre une compréhension sémantique du code basée sur Git, transcendant les simples lignes de code pour se concentrer sur les entités.

Sem : Qu'est-ce que c'est ?

Sem est un outil qui s'intègre avec n'importe quel dépôt Git sans configuration ni plugin. Il se compose de six commandes principales qui permettent d'analyser le code à travers le prisme des entités telles que les fonctions, les classes et les méthodes. Cela permet d'obtenir une perspective plus nuancée et précise sur les changements et l'évolution du code.

Différences clés avec les LSPs

Contrairement aux LSPs, qui se concentrent généralement sur la structure syntaxique du code, Sem met l'accent sur les entités et leurs relations. Par exemple, lors d'un git diff, Sem présente les ajouts, modifications et suppressions à un niveau sémantique, détectant les renommages et offrant des surlignages au niveau des mots. Cela améliore la précision des agents d'IA de 2,3 fois par rapport aux diff traditionnels.

Les fonctionnalités de Sem

sem diff

Cette commande permet de visualiser les différences de manière sémantique. Imagine une situation où tu ajoutes une nouvelle fonction ou modifies une logique existante. Sem te montre exactement ce qui a changé au niveau des entités, pas seulement des lignes de code.

sem blame

Qui a modifié quoi ? Cette commande affiche le dernier commit qui a touché chaque fonction ou classe, offrant ainsi une traçabilité améliorée.

sem impact

Comprendre l'impact d'une modification est essentiel pour évaluer les risques. Sem génère un graphe de dépendance qui montre quelles entités dépendent d'une fonction donnée et quels tests sont affectés.

sem log

Visualiser l'historique Git d'une seule entité. Cela signifie que tu peux voir chaque commit qui a modifié une fonction spécifique, facilitant ainsi l'analyse de l'évolution du code.

sem entities

Liste toutes les fonctions, classes, méthodes et types dans un fichier donné avec leurs plages de lignes. Cela offre une vue d'ensemble rapide des entités présentes dans un fichier.

Cas d'Usage

Prenons un exemple concret : une entreprise qui développe une API de gestion d'authentification. Grâce à Sem, elle peut rapidement identifier les modifications dans les fonctions critiques comme authenticateUser ou validateToken, comprendre qui a effectué ces changements et évaluer leur impact sur d'autres modules et tests.

Pourquoi adopter Sem ?

La capacité de Sem à fournir une compréhension sémantique précise et rapide du code le rend indispensable pour les équipes de développement cherchant à améliorer leur productivité et leur qualité de code. Avec 26 langues et 5 formats de données pris en charge, Sem s'intègre facilement dans n'importe quelle stack technologique.

Conclusion

Sem représente une avancée significative dans la compréhension du code. En mettant l'accent sur les entités plutôt que sur les lignes de code, il offre une vue plus détaillée et pertinente des changements dans le code source. Prêt à transformer ta manière de comprendre le code ? Discutons de ton projet en 15 minutes.

code understanding Git Sem software development LSPs
Newsletter Deepthix · 100% IA · chaque lundi 8h

Un agent IA lit la tech à ta place.

Notre agent IA scanne ~200 sources par semaine et te livre les meilleurs articles le lundi 8h. Gratuit. 1 clic pour se désinscrire.

Voir la page newsletter →

Tu veux automatiser tes opérations ?

Discutons de ton projet en 15 minutes.

Réserver un call