Kapitel 2

Projekte für Studierende der Natur- und Ingenieurwissenschaften

Geeignet für Benutzer mit Programmiergrundlagen. Durch API-Dienste und die Entwicklung von Full-Stack-Anwendungen können Sie ein tiefes Verständnis für die praktische Anwendung von KI-Tools in der Softwareentwicklung gewinnen und die Best Practices für die Entwicklung auf Unternehmensniveau beherrschen.

Projekt 1: Entwicklung des API-Dienstes

Projektübersicht

1
Projektziele:Einen RESTful-API-Dienst entwickeln, der Benutzerverwaltung und CRUD-Operationen für Daten unterstützt, einschließlich Authentifizierung, Fehlerbehandlung, Datenvalidierung und weiterer Funktionen
2
Tool-Stack:Cursor (Agent-Modus) + GitHub Copilot (Codevervollständigung) + Continue.dev (Code-Review)
3
Zeitschätzung: 8–10 Stunden (einschließlich Design, Entwicklung und Tests)
4
Schwierigkeitsgrad: Mittelstufe (erfordert grundlegende Kenntnisse in Programmierung und API-Design)

Analyse der Technologieauswahl: Warum diese Werkzeugkombination wählen?

Cursor Agent: Architekturdesign und Codegenerierung

  • Generierung der Projektstruktur: Der Agent kann Anforderungen verstehen und automatisch eine sinnvolle Projektstruktur erzeugen
  • Architekturdesign:Hilft bei der Gestaltung von Architekturen wie API-Routen, Middleware, Fehlerbehandlung usw.
  • Codegenerierung: Vollständigen CRUD-Operationscode basierend auf der Anforderungsbeschreibung generieren
  • Best Practices: RESTful-Designprinzipien, Fehlerbehandlungsmuster usw. automatisch anwenden

GitHub Copilot: Codevervollständigung in Echtzeit

  • Code-Vervollständigung:Funktionsnamen oder Kommentare eingeben, um die Code-Implementierung automatisch zu vervollständigen
  • Kontextverständnis: den aktuellen Codekontext verstehen und relevante Vorschläge machen
  • Schnelle Iteration: Die Erstellung von Doppelcode reduzieren und die Entwicklungsgeschwindigkeit erhöhen
  • Mehrsprachige Unterstützung:Unterstützt mehrere Programmiersprachen und Frameworks

Continue.dev: Code-Review und Optimierung

  • Code-Review: lokale Modelle verwenden, um die Codequalität zu prüfen und potenzielle Probleme zu erkennen
  • Leistungsoptimierung: Leistungsengpässe identifizieren und Optimierungsvorschläge machen
  • Sicherheitsaudit: Sicherheitslücken prüfen und Korrekturvorschläge bereitstellen
  • Private Bereitstellung: Der Code wird nicht in die Cloud hochgeladen, was die Privatsphäre schützt

Werkzeugsynergie: Cursor Agent ist für die Gesamtarchitektur und die Generierung komplexer Logik verantwortlich, Copilot für die tägliche Codevervollständigung und schnelle Iteration und Continue.dev für die Sicherung der Codequalität. Diese Kombination ermöglicht einen vollständigen Entwicklungsprozess von der Konzeption über die Implementierung bis zur Optimierung und stellt sowohl Entwicklungsgeschwindigkeit als auch Codequalität sicher.

Detaillierte Schritte

Schritt 1: Anforderungsanalyse und API-Design (1–2 Stunden)

1. API-Anforderungen klären: Benutzerverwaltung, Daten-CRUD, Authentifizierung und Autorisierung

2. Verwenden Sie Cursor Agent, um die API-Struktur zu entwerfen:

"Entwerfen Sie eine Benutzerverwaltungs-API, einschließlich:
- POST /api/users (Benutzer erstellen)
- GET /api/users (Benutzerliste abrufen, unterstützt Paginierung und Filterung)
- GET /api/users/:id (einen einzelnen Benutzer abrufen)
- PUT /api/users/:id (Benutzer aktualisieren)
- DELETE /api/users/:id (Benutzer löschen)
- POST /api/auth/login (Benutzeranmeldung)
- POST /api/auth/register (Benutzerregistrierung)
JWT zur Authentifizierung verwenden und RBAC-Berechtigungssteuerung implementieren"

3. Cursor generiert API-Designdokumente und die Routing-Struktur

4. Datenmodelle definieren (User, Role usw.)

Schritt 2: Verwenden Sie Cursor Agent, um die Projektstruktur zu generieren (1 Stunde)

1. Erstellen Sie in Cursor ein neues Projekt und wählen Sie einen Tech-Stack aus (z. B. Node.js + Express)

2. Verwenden Sie den Agent-Modus, um Cursor Ihre Anforderungen mitzuteilen:

"Erstelle ein Express-API-Projekt, einschließlich:
- Projektstruktur (routes, controllers, models, middleware)
- Datenbankkonfiguration (mit Prisma ORM)
- Umgebungskonfiguration der Variablen
- Fehlerbehandlungs-Middleware
- Logging-Middleware
- Authentifizierungs-Middleware (JWT)"

3. Cursor generiert die vollständige Projektstruktur und den Grundcode

4. Die erzeugte Struktur überprüfen und bei Bedarf anpassen

Schritt 3: Copilot nutzen, um die Entwicklung zu beschleunigen (3–4 Stunden)

1. Copilot verwenden, um CRUD-Operationscode zu vervollständigen:

  • • Funktionssignatur eingeben, Copilot vervollständigt die Implementierung automatisch
  • • Anforderungen in Eingabekommentaren beschreiben, und Copilot generiert den Code
  • • Copilot verwenden, um Datenvalidierungslogik zu generieren
  • • Copilot verwenden, um Fehlerbehandlungscode zu generieren

2. Authentifizierungs- und Autorisierungsfunktionen implementieren:

  • • JWT-Token generieren und verifizieren
  • • Passwortverschlüsselung (bcrypt)
  • • Middleware zur Berechtigungsprüfung

3. Datenvalidierung hinzufügen (mit Joi oder Zod)

4. Paginierung und Filterfunktionen implementieren

Schritt 4: Continue.dev für das Code-Review verwenden (1 Stunde)

1. Continue.dev konfigurieren und mit dem lokalen Modell (Ollama) verbinden

2. Continue.dev zur Code-Überprüfung verwenden:

  • • Codequalität und Best Practices prüfen
  • • Potenzielle Leistungsprobleme erkennen
  • • Sicherheitslücken prüfen
  • • Optimierungsvorschläge bereitstellen

3. Den Code anhand der Prüfergebnisse optimieren

4. Sicherstellen, dass der Code den Teamstandards entspricht

Schritt 5: Testen und Bereitstellung (2 Stunden)

1. Unit-Tests schreiben (mit Jest)

2. Integrationstests schreiben (API-Endpunkte testen)

3. Verwenden Sie Postman oder Thunder Client, um die API zu testen

4. Auf einer Cloud-Plattform bereitstellen (z. B. Railway, Render, Vercel)

5. CI/CD-Workflows konfigurieren (GitHub Actions)

Wichtige Codebeispiele

Benutzer-Controller (von Cursor Agent generiert)

// controllers/userController.js
const User = require('../models/User')
const { validationResult } = require('express-validator')

exports.createUser = async (req, res) => {
  try {
    const errors = validationResult(req)
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() })
    }

    const { name, email, password, role } = req.body
    
    // Prüfen, ob die E-Mail bereits existiert
    const existingUser = await User.findOne({ email })
    if (existingUser) {
      return res.status(400).json({ error: 'Email already exists' })
    }

    // Benutzer erstellen
    const user = await User.create({
      name,
      email,
      password: await bcrypt.hash(password, 10),
      role: role || 'user'
    })

    res.status(201).json({
      id: user.id,
      name: user.name,
      email: user.email,
      role: user.role
    })
  } catch (error) {
    res.status(500).json({ error: error.message })
  }
}

Authentifizierungs-Middleware (Copilot-Vervollständigung)

// middleware/auth.js
const jwt = require('jsonwebtoken')

const authenticate = (req, res, next) => {
  const token = req.headers.authorization?.split(' ')[1]
  
  if (!token) {
    return res.status(401).json({ error: 'No token provided' })
  }

  try {
    const decoded = jwt.verify(token, process.env.JWT_SECRET)
    req.user = decoded
    next()
  } catch (error) {
    res.status(401).json({ error: 'Invalid token' })
  }
}

const authorize = (...roles) => {
  return (req, res, next) => {
    if (!req.user) {
      return res.status(401).json({ error: 'Unauthorized' })
    }
    
    if (!roles.includes(req.user.role)) {
      return res.status(403).json({ error: 'Forbidden' })
    }
    
    next()
  }
}

module.exports = { authenticate, authorize }

Häufige Probleme und Lösungen

Problem 1: Das API-Design entspricht nicht den RESTful-Prinzipien

Lösung: Verwenden Sie Cursor Agent, um die API-Struktur neu zu gestalten und sich an den RESTful-Best Practices zu orientieren. Stellen Sie sicher, dass die richtigen HTTP-Methoden (GET, POST, PUT, DELETE) und Statuscodes verwendet werden.

Problem 2: Die Fehlerbehandlung ist uneinheitlich

Lösung: Erstellen Sie eine einheitliche Middleware für die Fehlerbehandlung, verwenden Sie Continue.dev, um den Fehlerbehandlungscode zu überprüfen, und stellen Sie sicher, dass alle Fehler in einem Standardformat zurückgegeben werden.

Problem 3: Leistungsproblem (langsame Datenbankabfragen)

Lösung: Verwenden Sie Continue.dev, um Leistungsengpässe zu analysieren, Datenbankindizes hinzuzufügen, Abfrageoptimierung zu nutzen und Cache-Mechanismen zu implementieren.

Problem 4: Sicherheitsprobleme (SQL-Injection, XSS)

Lösung: Verwenden Sie parameterisierte Abfragen, Eingabevalidierung und Bereinigung und nutzen Sie Continue.dev für Sicherheitsprüfungen.

Projekt-Checkliste

Das API-Design folgt RESTful-Konventionen und verwendet die richtigen HTTP-Methoden und Statuscodes
Vollständige CRUD-Operationen implementiert, die Funktionalität arbeitet ordnungsgemäß
Die Funktionen zur Authentifizierung und Autorisierung funktionieren ordnungsgemäß, und die Generierung und Überprüfung des JWT token sind korrekt
Die Datenvalidierung ist vollständig, Eingabevalidierung und Fehlerbehandlung sind vereinheitlicht
Der Code hat die Continue.dev-Prüfung bestanden und erfüllt die Qualitäts- und Sicherheitsanforderungen
Unit- und Integrationstests bestehen, und die Abdeckung erfüllt den Standard
Die API-Dokumentation ist vollständig (Swagger/OpenAPI) und leicht zu verstehen und zu verwenden
In der Produktionsumgebung bereitgestellt und normal zugänglich

Projekt 2: Entwicklung einer Full-Stack-Anwendung

Projektübersicht

1
Projektziele: Entwickeln Sie eine vollständige Full-Stack-Anwendung (z. B. ein Aufgabenverwaltungstool oder eine Blog-Plattform) mit vollständigen Funktionen wie Frontend-UI, Backend-API, Datenbank, Benutzerauthentifizierung usw.
2
Tool-Stack:bolt.new (schneller Frontend-Aufbau) + Cursor (Backend-Entwicklung) + Fabric (Code-Optimierung)
3
Zeitschätzung: 12–16 Stunden (einschließlich Frontend- und Backend-Entwicklung sowie Integration)
4
Schwierigkeitsgrad: Mittelstufe bis fortgeschritten (erfordert Kenntnisse in der Full-Stack-Entwicklung)

Analyse der Technologieauswahl: Warum bolt.new + Cursor + Fabric wählen?

bolt.new: Full-Stack-Entwicklung im Browser

  • WebContainers-Technologie: Node.js im Browser ausführen, keine lokale Umgebung erforderlich
  • Sofortige Vorschau:Codeänderungen werden sofort wirksam, Effekte in Echtzeit sehen
  • Schnelles Prototyping: In wenigen Minuten eine vollständige Frontend-Anwendung erstellen
  • Zusammenarbeitsfreundlich:Gemeinsam entwickeln, einfach per geteiltem Link
  • Bereitstellung mit einem Klick: direkt auf Plattformen wie Vercel bereitstellen

Cursor: Backend-API-Entwicklung

  • API-Entwicklung: Verwenden Sie den Agent-Modus, um Backend-APIs schnell zu generieren
  • Datenbankintegration:ORM-Frameworks wie Prisma und TypeORM integrieren
  • Authentifizierungssystem: Authentifizierungsmethoden wie JWT und OAuth implementieren
  • Geschäftslogik: Komplexe Geschäftslogik und Datenvalidierung verarbeiten

Fabric: Optimierung der Codequalität

  • Code-Review:Mit Patterns die Codequalität überprüfen
  • Leistungsoptimierung: Leistungsengpässe identifizieren und optimieren
  • Best Practices:Branchenbest Practices und Entwurfsmuster anwenden
  • Code-Refactoring:Den Code refaktorisieren, um die Wartbarkeit zu verbessern

Werkzeugsynergie: bolt.new ist für den schnellen Aufbau der Frontend-UI und grundlegender Interaktionen verantwortlich, Cursor für die Entwicklung von Backend-APIs und Geschäftslogik, und Fabric für die Optimierung von Codequalität und Leistung. Diese Kombination ermöglicht eine entkoppelte Frontend- und Backend-Entwicklung, stellt sowohl Entwicklungsgeschwindigkeit als auch Codequalität sicher und eignet sich für mittelgroße bis große Full-Stack-Projekte.

Detaillierte Schritte

Schritt 1: Mit bolt.new das Frontend schnell aufbauen (3–4 Stunden)

1. Besuchen Sie bolt.new und erstellen Sie ein neues Projekt

2. Verwenden Sie den KI-Assistenten, um die Frontend-Anforderungen zu beschreiben:

„Erstelle ein Frontend für eine Aufgabenverwaltungs-App, einschließlich:
- Anmelde-/Registrierungsseite
- Aufgabenlisten-Seite (zeigt alle Aufgaben an)
- Seite mit Aufgabendetails
- Formular zum Erstellen/Bearbeiten von Aufgaben
- Benutzer-Einstellungsseite
Verwenden Sie Next.js + TypeScript + Tailwind CSS und unterstützen Sie das dunkle Design"

3. bolt.new generiert vollständigen Frontend-Code

4. UI-Stil und Interaktionen anpassen und Animationseffekte hinzufügen

5. Zustandsverwaltung implementieren (mit Zustand oder Context API)

Schritt 2: Backend-API mit Cursor entwickeln (4–5 Stunden)

1. Ein Backend-Projekt in Cursor erstellen (Node.js + Express)

2. Verwenden Sie den Agent-Modus, um die API-Struktur zu generieren:

"Eine Aufgabenverwaltungs-API erstellen, einschließlich: ”
- Benutzer-Authentifizierungs-API (Registrierung, Anmeldung, Token-Aktualisierung)
- Task-CRUD-API
- Aufgabenfilterung und Such-API
- API für Benutzereinstellungen
Verwenden von Prisma ORM, PostgreSQL-Datenbank, JWT-Authentifizierung"

3. Datenbankmodelle und Beziehungen implementieren

4. API-Endpunkte und Geschäftslogik implementieren

5. Datenvalidierung und Fehlerbehandlung hinzufügen

Schritt 3: Frontend- und Backend-Integration (2–3 Stunden)

1. API-Client konfigurieren (mit axios oder fetch)

2. Die API-Aufruffunktion implementieren:

  • • APIs im Zusammenhang mit der Benutzerauthentifizierung
  • • Aufgaben-CRUD-API
  • • Fehlerbehandlung und Wiederholungslogik
  • • Token-Aktualisierungsmechanismus

3. Frontend und Backend verbinden, API-Aufrufe testen

4. Ladezustände und Fehlerzustände behandeln

5. Optimistische Aktualisierungen und Fehler-Rollback implementieren

Schritt 4: Fabric verwenden, um die Codequalität zu optimieren (2–3 Stunden)

1. Den Code mit Fabric’s Patterns überprüfen:

  • • Code qualityPattern
  • • Muster zur Leistungsoptimierung
  • • Sicherheitsprüfungs-Pattern
  • • Best-Practice-Muster

2. Den Code basierend auf den Vorschlägen von Fabric optimieren

3. Doppelte Codeabschnitte refaktorisieren und gemeinsame Komponenten extrahieren

4. Datenbankabfragen optimieren und Indizes hinzufügen

5. Einen Cache-Mechanismus implementieren (Redis)

Schritt 5: Integrationstests und Bereitstellung (1–2 Stunden)

1. End-to-End-Tests schreiben (mit Playwright oder Cypress)

2. Frontend- und Backend-Integrationsfunktionen testen

3. Das Frontend auf Vercel bereitstellen

4. Das Backend auf Railway oder Render bereitstellen

5. Umgebung variablen und Datenbankverbindung konfigurieren

6. Funktionen der Produktionsumgebung testen

Häufige Probleme und Lösungen

Problem 1: Kommunikationsfehler zwischen Frontend und Backend (CORS-Fehler)

Lösung: CORS-Middleware im Backend konfigurieren, um Zugriff vom Frontend-Domain zu erlauben. Prüfen Sie, ob die API-URL-Konfiguration korrekt ist.

Problem 2: Problem der Zustandsynchronisierung (Frontend-Zustand stimmt nicht mit dem Backend überein)

Lösung: Implementieren Sie optimistische Aktualisierungen und Fehler-Rollbacks und verwenden Sie React Query oder SWR zur Verwaltung des Serverzustands.

Problem 3: Die Bereitstellungskonfiguration ist komplex

Lösung: Verwenden Sie Umgebungsvariablen zur Verwaltung der Konfiguration, Docker zur Containerisierung der Bereitstellung und CI/CD zur Automatisierung des Bereitstellungsprozesses.

Projekt-Checkliste

Die Frontend-UI ist vollständig, und alle Seiten und Funktionen funktionieren ordnungsgemäß
Das Backend-API ist vollständig, alle Endpunkte funktionieren ordnungsgemäß
Die Frontend-Backend-Integration funktioniert ordnungsgemäß, und der Datenfluss ist korrekt
Benutzerauthentifizierungs- und Autorisierungsfunktionen funktionieren ordnungsgemäß
Der Code hat die Fabric-Prüfung bestanden und erfüllt die Qualitätsstandards
Leistungsoptimierung abgeschlossen, schnelle Ladegeschwindigkeit
Sowohl Frontend als auch Backend sind bereitgestellt und normal erreichbar

Lernergebnisse

Nach Abschluss dieses Kapitels werden Sie:

  • 1Die Best Practices der API-Entwicklung beherrschen und APIs entwerfen können, die den RESTful-Konventionen entsprechen
  • 2Den vollständigen Full-Stack-Entwicklungsprozess verstehen und ein Projekt mit getrennter Frontend- und Backend-Architektur eigenständig abschließen können
  • 3Fähig, mehrere Werkzeuge koordiniert zusammen einzusetzen und die Synergie von Werkzeugkombinationen zu nutzen
  • 4Methoden der Code-Qualitätssicherung beherrschen und Tools für Code-Review und Optimierung verwenden können
  • 5Die Fähigkeit besitzen, reale Probleme zu lösen und komplexe Themen wie Frontend-Backend-Integration und Bereitstellung zu bewältigen