Fortgeschrittenes Praxisszenario · Szenario 1

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

Den vollständigen Prozess des Projektstarts beherrschen
Fähigkeit zur Technologieauswahl und Architekturentwurf
Kann KI-Tools verwenden, um die Projektinitialisierung zu beschleunigen
Die besten Praktiken für die Projektinitialisierung verstehen

Methodik

Projektstartprozess

1
Anforderungsanalyse: Geschäftsanforderungen, Nutzeranforderungen und technische Anforderungen verstehen und die Projektziele sowie den Umfang klar festlegen
2
Technologieauswahl: Den passenden Technologie-Stack anhand von Faktoren wie Anforderungen, Teamfähigkeiten, Kosten und Ökosystem auswählen
3
Architekturdesign: Design-System-Architektur, Modulaufteilung, Datenmodelle, Schnittstellendesign
4
Projektinitialisierung: Projektstruktur erstellen, Toolchain konfigurieren, CI/CD einrichten und die erste Dokumentation verfassen

Entscheidungsrahmen für die Technologieauswahl

Auswahlkriterien

Leistung
Antwortzeit, Durchsatz, Parallelitätskapazität
Kosten
Entwicklungskosten, Betriebskosten, Lizenzgebühren
Teamfähigkeiten
Vertrautheit des Teams, Lernkurve, Schwierigkeit bei der Rekrutierung
Ökosystem
Aktivität der Community, Bibliotheken von Drittanbietern, Tool-Unterstützung
Wartbarkeit
Codequalität, Vollständigkeit der Dokumentation, langfristiger Support
Skalierbarkeit
Horizontale Skalierung, vertikale Skalierung, architektonische Flexibilität

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

Next.jsPrismaVercelTypeScriptTailwind CSS

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

DockerKubernetesService MeshgRPCNode.js

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

Checkliste der Lernergebnisse

In der Lage, den Projektstartprozess eigenständig abzuschließen (Anforderungsanalyse → Technologiewahl → Architekturgestaltung → Projektinitialisierung)
Beherrschen Sie den Entscheidungsrahmen für die Technologiewahl und treffen Sie anhand der Anforderungen vernünftige Technologiewahlen
Architekturprinzipien wie Clean Architecture und DDD verstehen
In der Lage sein, Cursor Agent für Architekturdesign und Codegenerierung zu verwenden
In der Lage sein, technische Entscheidungen Spec-gesteuert zu treffen
Windsurf und Fabric verwenden können, um die Projektinitialisierung zu beschleunigen
Mindestens einen Praxisfall abschließen (SaaS-Anwendung oder Microservices-Architektur)