Scénario pratique avancé · Scénario 1

Créer un nouveau projet à partir de zéro

Maîtrisez l’ensemble du processus de lancement de projet, de l’analyse des besoins au choix technologique, de la conception de l’architecture à l’initialisation du projet. Accélérez le lancement de projet grâce aux outils d’IA et acquérez la capacité de démarrer de nouveaux projets de manière autonome.

Objectifs d'apprentissage

Maîtriser le processus complet de lancement de projet
Savoir effectuer des choix technologiques et concevoir des architectures
Peut utiliser des outils d’IA pour accélérer l’initialisation du projet
Comprendre les meilleures pratiques pour l'initialisation de projet

Méthodologie

Processus de lancement du projet

1
Analyse des besoins: Comprendre les besoins métier, les besoins utilisateurs et les besoins techniques, et clarifier les objectifs et le périmètre du projet
2
Choix technologique: Choisir la bonne pile technologique en fonction de facteurs tels que les exigences, les compétences de l’équipe, le coût et l’écosystème
3
Conception d’architecture: architecture du système de conception, découpage des modules, modèles de données, conception d’interface
4
Initialisation du projet: créer la structure du projet, configurer la chaîne d’outils, mettre en place CI/CD et rédiger la documentation initiale

Cadre de décision pour le choix technologique

Critères de sélection

Performance
Temps de réponse, débit, capacité de concurrence
Coût
Coûts de développement, coûts d’exploitation, frais de licence
Capacités de l'équipe
Familiarité de l’équipe, courbe d’apprentissage, difficulté de recrutement
écosystème
Activité de la communauté, bibliothèques tierces, prise en charge des outils
Maintenabilité
Qualité du code, exhaustivité de la documentation, support à long terme
Évolutivité
Mise à l’échelle horizontale, mise à l’échelle verticale, flexibilité de l’architecture

Applications des outils d’IA:Utiliser Cursor Agent ou Spec pour générer automatiquement des recommandations de choix technologiques et une analyse comparative à partir de la description des besoins.

Principes de conception d’architecture

Clean Architecture

  • Architecture en couches:Entities → Use Cases → Interfaces → Frameworks
  • Règles de dépendance: La couche interne ne dépend pas de la couche externe, la direction des dépendances est vers l’intérieur
  • Avantages de l’IA: Découplage entre les couches, adapté à la génération et à la maintenance par blocs par l’IA

DDD (Domain-Driven Design)

  • Langage unifié: utiliser l’IA pour extraire un langage commun du domaine métier
  • Contexte limité:segmentation des frontières métier assistée par l’IA
  • Entités et objets-valeurs: l’IA génère le code du modèle de domaine

Microservices vs monolithe

  • Avantages du monolithe: Simple, développement rapide, adapté aux petites équipes
  • Avantages des microservices : déploiement indépendant, pile technique flexible, évolutif
  • Recommandations de choix: Commencer par un monolithe et évoluer vers des microservices selon les besoins

Bonnes pratiques pour l’initialisation du projet

Structure de la table des matières

project-name/
├── src/
│   ├── app/              # couche applicative (Next.js App Router)
│   ├── components/       # composants UI
│   ├── lib/              # fonctions utilitaires
│   └── types/            # types TypeScript
├── prisma/               # schéma de base de données (si vous utilisez Prisma)
├── public/               # ressources statiques
├── tests/                # fichiers de test
├── docs/                 # documentation du projet
├── .github/              # GitHub Actions
├── .env.example          # exemple de variables d’environnement
├── README.md             # description du projet
├── package.json          # gestion des dépendances
└── tsconfig.json         # configuration TypeScript

Configuration de la chaîne d’outils

  • formatage du code:Prettier + ESLint
  • Vérification de type:TypeScript strict mode
  • Framework de test:Jest + React Testing Library
  • Git Hooks:Husky + lint-staged

Configuration CI/CD

  • Tests automatisés: Exécuter automatiquement les tests à chaque commit
  • Revue de code: Exécuter automatiquement ESLint et la vérification des types
  • Déploiement automatique: Déployer automatiquement vers l’environnement de test/production après validation des tests

Applications des outils d’IA

Utiliser Cursor Agent pour la conception d’architecture

Utilisez le mode Agent de Cursor pour décrire les besoins en langage naturel, et l’IA générera automatiquement la conception de l’architecture :

Exemple de prompt :

« Concevez une architecture pour une application SaaS comprenant l’authentification des utilisateurs, le stockage des données, des services API et une interface front-end. Elle doit prendre en charge le multitenant, l’évolutivité et la facilité de maintenance. »

  • • L’IA génère des diagrammes d’architecture système, la répartition des modules et la conception du modèle de données
  • • Vous pouvez itérer pour améliorer la conception de l’architecture jusqu’à satisfaction
  • • Générer des documents d’architecture et la structure du code

Utiliser le développement piloté par Spec pour la sélection technologique

Rédigez un spec de choix technique, et l’IA génère des recommandations de sélection et une analyse comparative à partir du spec :

  • • Clarifier les exigences : exigences de performance, taille de l’équipe, contraintes budgétaires
  • • Généré par l’IA : recommandations de stack technique, analyse comparative, raisons du choix
  • • Aide à la décision : recommandations de sélection basées sur les données et les tendances technologiques

Utiliser Windsurf pour initialiser de grands projets

La technologie Fast Context de Windsurf permet de comprendre rapidement la structure des grands projets et d’accélérer l’initialisation du projet :

  • • Analyse rapide : analyser la structure des projets existants et comprendre les meilleures pratiques
  • • Génération de modèles : générer des modèles de projet à partir des résultats de l'analyse
  • • Synchronisation de la configuration : configuration automatique de la chaîne d’outils et de CI/CD

Utiliser Fabric pour générer la documentation du projet

Générez automatiquement la documentation du projet à l’aide de Patterns de Fabric :

  • • Génération de README : générer automatiquement un README à partir de la structure du projet
  • • Documentation API : générer la documentation API à partir des commentaires de code
  • • Document d’architecture : générer des documents d’architecture à partir de la conception d’architecture

Cas pratique

Cas 1 : Créer une application SaaS à partir de zéro

Stack technologique

Next.jsPrismaVercelTypeScriptTailwind CSS

Étape 1 : analyse des besoins (2 heures)

  • • Exigences métier claires : application SaaS multi-locataire, prenant en charge l’inscription des utilisateurs, la gestion des données et le contrôle des permissions
  • • Exigences techniques : développement rapide, facile à étendre, coût maîtrisé
  • • Utiliser des outils d’IA : Cursor Agent pour clarifier les exigences et générer la documentation

Étape 2 : choix technologique (1 heure)

  • • Frontend : Next.js (SSR, routes API, déploiement sur Vercel)
  • • Base de données : PostgreSQL + Prisma (sécurité des types, gestion des migrations)
  • • Déploiement : Vercel (zéro configuration, CI/CD automatique)
  • • Utiliser des outils d’IA : génération, pilotée par spécification, d’une analyse comparative de sélection

Étape 3 : conception de l’architecture (2 heures)

  • • Architecture système : Next.js App Router + Prisma + Vercel
  • • Modèle de données : conception multitenant pour les utilisateurs, les locataires et les tables de données
  • • Conception d’API : RESTful API + Next.js API Routes
  • • Utiliser des outils d’IA : Cursor Agent génère des schémas d’architecture et la structure du code

Étape 4 : initialisation du projet (2 heures)

  • • Créer un projet Next.js : npx create-next-app@latest
  • • Configurer Prisma : initialiser Prisma, concevoir le Schema, générer le Client
  • • Configurer la chaîne d’outils : ESLint, Prettier, TypeScript, Git Hooks
  • • Configurer CI/CD : utiliser GitHub Actions pour les tests et le déploiement automatisés
  • • Utiliser des outils d’IA : Windsurf pour une configuration rapide, Fabric pour générer la documentation

Cas 2 : construire une architecture de microservices à partir de zéro

Stack technologique

DockerKubernetesMaillage de servicesgRPCNode.js

Étape 1 : analyse des besoins (3 heures)

  • • Besoins métier : système distribué de grande envergure, nécessitant une haute disponibilité et une grande évolutivité
  • • Exigences techniques : découplage des services, déploiement indépendant, gouvernance des services
  • • Utiliser des outils d’IA : Cursor Agent pour la conception d’une architecture de microservices

Étape 2 : découpage des services (2 heures)

  • • Service utilisateur : authentification des utilisateurs, gestion des permissions
  • • Service de commande : création de commandes, traitement des paiements
  • • Services produits : gestion des produits, gestion des stocks
  • • Utiliser des outils d’IA : diviser les contextes bornés avec l’approche DDD

Étape 3 : conception de l’infrastructure (3 heures)

  • • Conteneurisation : génération et envoi d’images Docker
  • • Orchestration : configuration de déploiement Kubernetes
  • • Maillage de services : configuration d’Istio ou de Linkerd
  • • Surveillance : Prometheus + Grafana
  • • Utiliser des outils d’IA : Cursor Agent génère des configurations K8s et des scripts de déploiement

Étape 4 : initialisation du projet (4 heures)

  • • Créer une structure Monorepo : utiliser pnpm workspaces ou Nx
  • • Initialiser chaque service : créer des modèles de service, configurer la chaîne d’outils
  • • Configurer CI/CD : processus de build et de déploiement pour les applications multi-services
  • • Utilisation d’outils d’IA : initialisation en lot avec Windsurf, génération de documentation avec Fabric

Liste de contrôle des acquis d’apprentissage

Capable d’achever de manière autonome le processus de lancement d’un projet (analyse des besoins → choix technologiques → conception de l’architecture → initialisation du projet)
Maîtriser le cadre de décision pour la sélection technologique et faire des choix technologiques raisonnables en fonction des besoins
Comprendre des principes de conception d’architecture tels que Clean Architecture et DDD
Pouvoir utiliser Cursor Agent pour la conception d’architecture et la génération de code
Être capable d’effectuer des choix techniques guidés par le Spec
Pouvoir utiliser Windsurf et Fabric pour accélérer l'initialisation du projet
Réaliser au moins une étude de cas pratique (application SaaS ou architecture de microservices)