Ein neues Projekt von Grund auf erstellen
Beherrschen Sie den vollständigen Projektstartprozess, von der Anforderungsanalyse über die Technologiewahl bis hin zum Architekturd design und der Projektinitialisierung. Nutzen Sie KI-Tools, um den Projektstart zu beschleunigen, und entwickeln Sie die Fähigkeit, neue Projekte eigenständig zu starten.
Lernziele
Methodik
Projektstartprozess
Entscheidungsrahmen für die Technologieauswahl
Auswahlkriterien
Anwendung von KI-Tools:Cursor Agent oder Spec verwenden, um auf Grundlage der Anforderungsbeschreibung automatisch Empfehlungen zur Technologieauswahl und eine vergleichende Analyse zu generieren.
Architektur-Designprinzipien
Clean Architecture
- • Schichtenarchitektur:Entities → Use Cases → Interfaces → Frameworks
- • Abhängigkeitsregeln:Die innere Schicht ist nicht von der äußeren abhängig, die Abhängigkeitsrichtung zeigt nach innen
- • Vorteile von KI: Die Schichten sind voneinander entkoppelt und eignen sich für die KI-gestützte Generierung und Pflege in Blöcken
DDD (Domain-Driven Design)
- • Ubiquitäre Sprache: KI verwenden, um eine gemeinsame Sprache für den Geschäftsbereich herauszuarbeiten
- • Abgegrenzter Kontext:KI-gestützte Aufteilung von Geschäftsgrenzen
- • Entitäten und Wertobjekte: KI generiert Code für das Domänenmodell
Mikroservices vs. Monolith
- • Vorteile der Monolith-Architektur: Einfach, schnelle Entwicklung, geeignet für kleine Teams
- • Vorteile von Microservices:unabhängige Bereitstellung, flexibler Tech-Stack, skalierbar
- • Empfehlungen zur Auswahl: Mit einem Monolithen beginnen und bei Bedarf zu Microservices weiterentwickeln
Bewährte Methoden für die Projektinitialisierung
Gliederung des Inhaltsverzeichnisses
project-name/ ├── src/ │ ├── app/ # Anwendungsschicht (Next.js App Router) │ ├── components/ # UI-Komponenten │ ├── lib/ # Hilfsfunktionen │ └── types/ # TypeScript-Typen ├── prisma/ # Datenbankschema (bei Verwendung von Prisma) ├── public/ # statische Assets ├── tests/ # Testdateien ├── docs/ # Projektdokumentation ├── .github/ # GitHub Actions ├── .env.example # Beispiel für Umgebungsvariablen ├── README.md # Projektbeschreibung ├── package.json # Abhängigkeitsverwaltung └── tsconfig.json # TypeScript-Konfiguration
Toolchain-Konfiguration
- • Code-Formatierung:Prettier + ESLint
- • Typprüfung:TypeScript strict mode
- • Test-Framework:Jest + React Testing Library
- • Git Hooks:Husky + lint-staged
CI/CD-Konfiguration
- • Automatisierte Tests: Tests bei jedem Commit automatisch ausführen
- • Codeprüfung: ESLint und Typprüfung automatisch ausführen
- • Automatische Bereitstellung: Nach bestandenen Tests automatisch in die Test-/Produktionsumgebung bereitstellen
Anwendung von KI-Tools
Verwenden Sie Cursor Agent für das Architekturdesign
Verwenden Sie den Agent-Modus von Cursor, um Anforderungen in natürlicher Sprache zu beschreiben, und die KI generiert automatisch das Architekturdesign:
Beispiel-Prompt:
„Entwerfen Sie eine Architektur für eine SaaS-Anwendung mit Benutzerauthentifizierung, Datenspeicherung, API-Diensten und einer Frontend-Oberfläche. Sie muss Multi-Tenancy, Skalierbarkeit und einfache Wartbarkeit unterstützen.“
- • KI generiert Systemarchitekturdiagramme, Modulaufteilungen und Datenmodell-Designs
- • Sie können das Architekturdesign iterativ optimieren, bis es Ihren Anforderungen entspricht
- • Architektur-Dokumente und Code-Struktur generieren
Technologieauswahl mit Spec-getriebener Entwicklung durchführen
Erstellen Sie eine technische Auswahl-Spec, und die KI generiert auf Basis der Spec Auswahlempfehlungen und eine Vergleichsanalyse:
- • Anforderungen klären: Leistungsanforderungen, Teamgröße, Budgetbeschränkungen
- • KI-generiert: Empfehlungen für den Tech-Stack, Vergleichsanalyse, Begründung der Auswahl
- • Entscheidungsunterstützung: Auswahlempfehlungen auf der Grundlage von Daten und Technologietrends
Windsurf zur Initialisierung großer Projekte verwenden
Die Fast-Context-Technologie von Windsurf kann die Struktur großer Projekte schnell erfassen und die Projektinitialisierung beschleunigen:
- • Schnelle Analyse: Die Struktur bestehender Projekte analysieren und Best Practices verstehen
- • Vorlagenerstellung: Projekvorlagen basierend auf den Analyseergebnissen generieren
- • Konfigurationssynchronisierung: Toolchain und CI/CD automatisch konfigurieren
Fabric zur Erstellung von Projektdokumentation verwenden
Projektdokumentation mit Fabric Patterns automatisch generieren:
- • README-Generierung: README automatisch basierend auf der Projektstruktur erstellen
- • API-Dokumentation: API-Dokumentation anhand von Codekommentaren generieren
- • Architekturdokument: Architekturdokumente auf Grundlage des Architekturentwurfs erstellen
Praxisbeispiel
Fall 1: Eine SaaS-Anwendung von Grund auf aufbauen
Technologie-Stack
Schritt 1: Anforderungsanalyse (2 Stunden)
- • Klare Geschäftsanforderungen: Multi-Tenant-SaaS-Anwendung mit Unterstützung für Benutzerregistrierung, Datenverwaltung und Rechteverwaltung
- • Technische Anforderungen: schnelle Entwicklung, einfache Erweiterbarkeit, kontrollierbare Kosten
- • KI-Tools verwenden: Cursor Agent zur Anforderungsklärung und Dokumentenerstellung
Schritt 2: Technologiewahl (1 Stunde)
- • Frontend: Next.js (SSR, API Routes, Vercel-Bereitstellung)
- • Datenbank: PostgreSQL + Prisma (Typsicherheit, Migrationsverwaltung)
- • Bereitstellung: Vercel (null Konfiguration, automatisches CI/CD)
- • KI-Tools verwenden: Spec-gesteuerte Erstellung einer Auswahlvergleichsanalyse
Schritt 3: Architekturdesign (2 Stunden)
- • Systemarchitektur: Next.js App Router + Prisma + Vercel
- • Datenmodell: Multi-Tenant-Design für Benutzer, Mandanten und Datentabellen
- • API-Design: RESTful API + Next.js API Routes
- • KI-Tools verwenden: Cursor Agent generiert Architekturdiagramme und die Code-Struktur
Schritt 4: Projektinitialisierung (2 Stunden)
- • Ein Next.js-Projekt erstellen: npx create-next-app@latest
- • Prisma konfigurieren: Prisma initialisieren, das Schema entwerfen, den Client generieren
- • Toolchain konfigurieren: ESLint, Prettier, TypeScript, Git Hooks
- • CI/CD einrichten: GitHub Actions für automatisierte Tests und Bereitstellung verwenden
- • KI-Tools verwenden: Windsurf für schnelle Konfiguration, Fabric zum Generieren von Dokumentation
Fall 2: Eine Microservices-Architektur von Grund auf aufbauen
Technologie-Stack
Schritt 1: Anforderungsanalyse (3 Stunden)
- • Geschäftsanforderungen: großes verteiltes System, mit hoher Verfügbarkeit und Skalierbarkeit
- • Technische Anforderungen: Entkopplung von Diensten, unabhängige Bereitstellung, Service-Governance
- • KI-Tools verwenden: Cursor Agent für das Design von Microservice-Architekturen
Schritt 2: Aufteilung der Services (2 Stunden)
- • Benutzerdienst: Benutzerauthentifizierung, Berechtigungsverwaltung
- • Bestellservice: Erstellung von Bestellungen, Zahlungsabwicklung
- • Produktservices: Produktverwaltung, Bestandsverwaltung
- • KI-Tools verwenden: abgegrenzte Kontexte mithilfe des DDD-Ansatzes aufteilen
Schritt 3: Infrastrukturgestaltung (3 Stunden)
- • Containerisierung: Docker-Images bauen und pushen
- • Orchestrierung: Kubernetes-Bereitstellungskonfiguration
- • Service Mesh: Konfiguration von Istio oder Linkerd
- • Monitoring: Prometheus + Grafana
- • KI-Tools verwenden: Cursor Agent generiert K8s-Konfigurationen und Bereitstellungsskripte
Schritt 4: Projektinitialisierung (4 Stunden)
- • Monorepo-Struktur erstellen: pnpm workspaces oder Nx verwenden
- • Jedes Service initialisieren: Servicetemplates erstellen, Toolchain konfigurieren
- • CI/CD einrichten: Build- und Bereitstellungsprozesse für Multi-Service-Anwendungen
- • Verwendung von KI-Tools: Windsurf für die Stapelinitialisierung, Fabric zur Dokumentenerstellung