/
May 30, 2025
/
#
Min Read
Alors que la complexité des logiciels automobiles ne cesse de croître, les équipes d'ingénierie se tournent vers des outils assistés par l'IA pour améliorer l'efficacité des développeurs, réduire les erreurs et maintenir la qualité des systèmes critiques pour la sécurité. Chez Sibros, nous avons adopté des outils tels que Cursor IDE, Windsurf, Cline, Claude Code et d'autres grands modèles de langage (LLM) pour soutenir le développement de notre plateforme de véhicules connectés, des mises à jour OTA à l'enregistrement des données et aux diagnostics.
Dans cet article, nous partageons des modèles pratiques, des leçons apprises et des conseils pour intégrer des assistants de codage IA à votre flux de travail, en particulier pour les logiciels automobiles intégrés et basés sur le cloud. Il ne s'agit pas d'idées théoriques, mais de méthodes réelles et appliquées que nous intégrons à nos flux de travail quotidiens pour créer des systèmes de production. Vous pouvez le faire aussi.
Dans les systèmes automobiles, les erreurs commises au début de la phase de conception sont coûteuses à corriger ultérieurement. Cela est particulièrement vrai pour les services étroitement couplés tels que l'orchestration des mises à jour OTA ou le streaming des journaux. Avec Cursor IDE, nous commençons toutes les nouvelles fonctionnalités par une planification approfondie utilisant l'IA pour co-concevoir notre système.
Nous invitons le LLM à définir les responsabilités de service, à esquisser des modèles de domaine et à anticiper les contrats de communication.
Nous sommes en train de créer un service de déploiement pour les mises à jour logicielles OTA. Veuillez décrire :
Exemple d'invite :
Ce type de conception initiale réduit le taux de désabonnement par la suite et permet à toute l'équipe de rester alignée sur les décisions relatives à l'architecture.
Prête à l'emploi, les LLM n'ont aucun contexte concernant votre dépôt spécifique. C'est là règles du curseur les fichiers arrivent. Considérez-les comme le document d'intégration de l'IA de votre projet.
Nous les utilisons pour définir :
Exemple d'extrait de code :
Cela permet à l'IA de compléter le code qui correspond à notre style et d'éviter les incohérences internes.
Le code automobile touche souvent à des fonctions critiques, telles que les mises à jour du microprogramme, les contrôleurs de freins ou les diagnostics télémétriques. Cela signifie que le code généré par l'IA doit être testable, prévisible et vérifiable.
Nous utilisons une approche rapide consistant à « tester d'abord » : définissez à quoi ressemble le succès avant de demander à l'IA d'écrire la logique.
Demande de génération de tests :
Cela garantit que l'IA fonctionne dans les limites des contraintes et évite les comportements indésirables en aval.
Nous ne lisons plus les traces de la pile complète manuellement. Au lieu de cela, nous les collons directement dans Cursor et demandons une analyse des causes profondes. Ceci est particulièrement utile dans Go, où les paniques se succèdent souvent.
Exemple rapide :
Cela se produit lorsque vous essayez d'appeler `.Deploy () `dans la logique de déploiement OTA. Aidez-moi à déboguer.
L'IA renvoie les causes probables, suggère des lignes de journalisation et propose même des solutions. Cela remplace ce qui était auparavant une période de 30 minutes à passer au crible et à tamiser les bûches.
L'un des pièges courants lorsque vous travaillez avec des LLM est la tendance à empiler les correctifs sur le code défectueux. Cela crée de la « saleté », terme que nous utilisons pour désigner des couches de modifications mal ancrées.
Pour éviter cela :
Cette habitude permet de garder le code propre et de minimiser le risque d'expédition de quelque chose de légèrement cassé.
De nombreux utilisateurs d'IA sous-utilisent Cursor pour le refactoring. Nous l'utilisons de manière proactive pour réduire la dette technologique. Le curseur est idéal pour repérer les fonctions longues, les blocs répétés ou les motifs incohérents.
Rapide :
Cela nous permet de moderniser plus rapidement le code existant tout en préservant la confiance dans la couverture des tests.
Nous avons appris que certains cadres et modèles sont plus adaptés à l'IA que d'autres. Le curseur fonctionne mieux lorsque le système est modulaire, saisi et documenté.
Nous privilégions :
Le fait d'éviter les DSL internes et les API non typées augmente considérablement l'efficacité de l'IA.
L'IA ne se contente pas d'écrire du code, elle écrit également des documents. Nous utilisons Cursor pour générer de la documentation interne, des spécifications d'API et même des enregistrements de décisions architecturales (ADR).
Rapide :
Cela réduit les frais manuels et permet de maintenir nos documents internes à jour au fur et à mesure de l'évolution des fonctionnalités.
Ces modèles de développement assistés par l'IA ne sont pas issus de la théorie. Ils ont évolué à partir de centaines d'heures passées à construire de véritables systèmes de qualité automobile. Notre conseil : traitez l'IA comme un collaborateur, pas comme un oracle. Laissez-le gérer les répétitions et les suggestions, mais superposez toujours la révision humaine, en particulier pour la logique critique pour la sécurité.
Pour les développeurs de véhicules connectés qui souhaitent se déplacer plus rapidement sans compromettre la fiabilité, l'adoption de ces modèles constitue un véritable avantage.