Skip to content

Guide Intelligence

GitHub Actions edited this page Jan 25, 2026 · 2 revisions

Tutorial 8: Intelligence Features nutzen

VelinScript 2.5.0 fΓΌhrt eine Reihe von "Intelligence"-Features ein, die dich beim Schreiben, Dokumentieren, Testen und Optimieren von Code unterstΓΌtzen. In diesem Tutorial lernst du, wie du diese mΓ€chtigen Werkzeuge einsetzt.

Neu in Version 2.5: Alle Intelligence-Features sind vollstΓ€ndig implementiert und produktionsreif βœ…

1. Automatische Dokumentation mit @VelinAutoDoc

Neu in Version 2.5 βœ…

Schluss mit veralteter Doku. VelinScript generiert sie direkt aus deinem Code.

Schritt 1: Code kommentieren

Nutze /// Kommentare ΓΌber deinen Funktionen. Diese werden als First-Class-Citizens im AST erfasst.

/// Berechnet den Gesamtpreis einer Bestellung inkl. Steuern.
/// 
/// # Arguments
/// * `items` - Die Liste der Artikel
/// * `taxRate` - Der Steuersatz (z.B. 0.19)
/// 
/// # Returns
/// Der Gesamtpreis als number
@VelinAutoDoc
fn calculateTotal(items: List<Item>, taxRate: number): number {
    // ...
}

Schritt 2: Generierung

Der Compiler extrahiert diese Informationen in eine strukturierte JSON-Datei (autodoc.json), die nicht nur fΓΌr Menschen lesbar ist, sondern auch KI-Modellen hilft, deinen Code zu verstehen.

Features:

  • Erfasst /// Doc-Comments im AST
  • Extrahiert Typ-Signaturen, Parameter und Return-Types
  • Erstellt llm_prompt_context fΓΌr KI-gestΓΌtzte Dokumentationsgenerierung
  • UnterstΓΌtzt Funktionen, Structs und Module

2. Automatische Tests mit @VelinAutoTest

Neu in Version 2.5 βœ…

Lass VelinScript die langweilige Arbeit des Test-Schreibens ΓΌbernehmen.

@VelinAutoTest
fn validateUser(user: User): boolean {
    if (user.age < 18) return false;
    return true;
}

Wenn du velin compile ausfΓΌhrst, generiert der Compiler automatisch Test-Stubs mit Mock-Daten fΓΌr alle Funktionen mit @VelinAutoTest.

Features:

  • Automatische Test-Stub-Generierung
  • Mock-Daten basierend auf Parametertypen
  • Grundlegende Assertions
  • Integration in Codegen-Pipeline
  • Generiert Rust-Test-Code

Generierter Test:

#[tokio::test]
async fn test_auto_validateUser() {
    let user = User::default();
    let result = validateUser(user).await;
    assert!(result.is_ok(), "Function execution failed");
}

3. Selbstheilende Flows mit @Flow

Neu in Version 2.5 βœ…

Baue robuste Prozesse, die sich bei Fehlern selbst aufrΓ€umen.

@Flow
@POST("/checkout")
fn checkout(cart: Cart): Order {
    // Velin macht hier automatisch einen Snapshot des Inputs
    flow.snapshot_input(cart);
    
    let order = createOrder(cart);
    chargePayment(order); // SchlΓ€gt das fehl?
    
    // Velin fΓΌhrt automatisch einen Rollback durch, wenn eine Exception fliegt!
    return order;
}

Der @Flow Decorator injiziert eine Runtime, die den AusfΓΌhrungsstatus ΓΌberwacht.

Features:

  • Automatisches State-Tracking (Pending, Running, Completed, Failed, Compensating, Compensated)
  • Input-Snapshot-Management fΓΌr Rollback
  • Automatisches Commit bei Erfolg
  • Automatisches Rollback mit Compensation-Logic bei Fehler
  • Logging der AusfΓΌhrungsdauer und Status
  • Self-Healing durch Compensation-Hooks

4. Performance-Optimierung mit @VelinPipeline

Neu in Version 2.5 βœ…

Warum manuell parallelisieren, wenn der Compiler es besser kann?

@VelinPipeline
async fn loadUserProfile(id: string) {
    // Diese beiden Aufrufe hΓ€ngen nicht voneinander ab.
    // VelinPipeline erkennt das und fΓΌhrt sie gleichzeitig aus (wie Promise.all).
    let profile = await db.find(Profile, id);
    let history = await db.find(History, id);
    let recommendations = await getRecommendations(id);
    
    return { profile, history, recommendations };
}

Features:

  • Analysiert DatenabhΓ€ngigkeiten zwischen Statements
  • Erkennt automatisch unabhΓ€ngige async Operationen
  • Optimiert sequentielle Aufrufe zu parallelen AusfΓΌhrungsgruppen
  • Generiert automatisch tokio::join! fΓΌr unabhΓ€ngige Operationen
  • Verbessert Performance durch Parallelisierung

Beispiel-Transformation:

// Vorher (sequentiell)
let a = await op1();
let b = await op2(); // Wartet auf op1
let c = await op3(); // Wartet auf op2

// Nachher (parallel mit @VelinPipeline)
let (a, b, c) = tokio::join!(op1(), op2(), op3());

5. Code-Analyse mit @VelinInsight

Neu in Version 2.5 βœ…

VelinInsight ist dein persΓΆnlicher Code-Reviewer.

FΓΌhre den Befehl "VelinScript: Run Insight Analysis" in VS Code aus. Velin analysiert dein Projekt auf:

  • Unused Code: Structs oder Funktionen, die nie aufgerufen werden.
  • KomplexitΓ€t: Funktionen, die zu lang oder zu verschachtelt sind (Statement Count > 20).
  • Ineffizienzen: UnnΓΆtige Datenbank-Queries in Schleifen.

Features:

  • Automatische Code-Analyse
  • InsightReport mit detaillierten Empfehlungen
  • Integration mit VS Code Extension
  • Kann als Pass in der Compiler-Pipeline ausgefΓΌhrt werden

Beispiel:

@VelinInsight
mod services {
    // Wird automatisch analysiert
    fn complexFunction() {
        // 25 Statements -> wird als komplex erkannt
    }
}

Praktisches Beispiel

Sieh dir das Ultimate Showcase Beispiel an, um alle Intelligence-Features in Aktion zu sehen:

  • @VelinAutoDoc fΓΌr automatische Dokumentation
  • @VelinPipeline fΓΌr Performance-Optimierung
  • @Flow fΓΌr transaktionales Flow-Management

Zusammenfassung

Mit diesen Tools verschiebt sich deine Rolle vom "Code-Schreiber" zum "Architekten". Du definierst die Logik, VelinScript kΓΌmmert sich um Tests, Doku, Sicherheit und Performance.

Neu in Version 2.5: Alle Intelligence-Features sind vollstΓ€ndig implementiert und produktionsreif βœ…


← ZurΓΌck zur Übersicht

Clone this wiki locally