Section 13.6.4 : AI-assisted coding et Cursor IDE
🎯 Objectif pédagogique
Maîtriser les outils d'IA pour le développement : GitHub Copilot, Cursor IDE, et les techniques pour maximiser la productivité avec l'assistance IA tout en gardant le contrôle du code.
L'ère du développement assisté par IA
L'IA transforme le métier de développeur. Les outils d'assistance IA ne remplacent pas le développeur — ils amplifient ses capacités. Les études montrent des gains de productivité de 30-55% sur certaines tâches.
GitHub Copilot
GitHub Copilot est l'outil d'autocomplétion IA le plus utilisé. Il s'intègre directement dans VS Code et suggère du code en temps réel.
# Tapez un commentaire descriptif, Copilot génère le code
# Valide un email avec regex
def valid_email?(email)
email.match?(/\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i)
end
# Convertit un prix en centimes
def price_in_cents(price_string)
(price_string.to_f * 100).round
end
# Génère un slug URL-friendly à partir d un titre
def slugify(title)
title.downcase.strip.gsub(/[^\w\s-]/, '').gsub(/[\s_]+/, '-')
end
Cursor IDE : l'IDE IA-natif
Cursor est un fork de VS Code entièrement repensé pour l'IA. Il va au-delà de l'autocomplétion avec des fonctionnalités de refactoring, débogage et génération de code à grande échelle.
Fonctionnalités clés de Cursor :
- →Cmd+K (Edit) : Sélectionnez du code et décrivez la modification
- →Cmd+L (Chat) : Chat avec le contexte de votre codebase
- →@ mentions : Référencez des fichiers, docs, ou URLs dans le chat
- →Composer : Modifiez plusieurs fichiers simultanément
- →Tab completion : Autocomplétion contextuelle avancée
Bonnes pratiques avec l'IA
# 1. Commentaires comme spécifications
# Service qui envoie un email de bienvenue
# - Vérifie que l'utilisateur a un email confirmé
# - Utilise le template 'welcome' avec le nom de l'utilisateur
# - Envoie de manière asynchrone via Sidekiq
# - Log le résultat dans le journal d'activité
class WelcomeEmailService
# L'IA génère le code basé sur cette spec...
end
# 2. Tests d abord (TDD + IA)
# Écrivez le test, l'IA génère l'implémentation
RSpec.describe WelcomeEmailService do
it 'sends welcome email to confirmed user' do
user = create(:user, email_confirmed: true)
expect { WelcomeEmailService.call(user) }
.to have_enqueued_job(ActionMailer::MailDeliveryJob)
end
it 'does not send to unconfirmed user' do
user = create(:user, email_confirmed: false)
expect { WelcomeEmailService.call(user) }
.not_to have_enqueued_job
end
end
Ce que l'IA fait bien vs mal
Forces et limites de l IA en développement
← Scroll horizontally →
Règle d or de l IA assistée
Ne committez JAMAIS du code IA que vous ne comprenez pas à 100%. L'IA est un copilote, pas le pilote. Vous êtes responsable de chaque ligne de code dans votre application. Relisez, testez, et comprenez avant de merger.
Quelle est la meilleure façon d'utiliser l'IA pour écrire du code ?
Apprendre l’IA, du premier prompt aux agents