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
Méthodologie
Processus de lancement du projet
Cadre de décision pour le choix technologique
Critères de sélection
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
É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
É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