code-quality
tursodatabase/turso
Allgemeine Korrektheitsregeln, Rust-Muster, Kommentare sowie das Vermeiden von Überengineering. Berücksichtigen Sie diese Aspekte stets bei der Programmierung.
...Alle erweiternÜber die Code-Qualität
code-quality ist ein prägnanter Leitfaden zu den Codierkonventionen für das Turso (Limbo)-Datenbankprojekt, der die Korrektheitsregeln, Rust-Idiome sowie Richtlinien zur Kommentierung und Vermeidung übermäßiger Komplexität zusammenfasst, die Entwickler bei der Codeerstellung berücksichtigen sollten. Sein Leitprinzip ist, dass es sich um eine Produktivdatenbank handelt, in der Korrektheit an erster Stelle steht und ein Absturz dem Datenkorruption vorzuziehen ist – daher werden die Gewohnheiten festgelegt, die die Codebasis sicher halten.
Der Leitfaden legt Korrektheitsregeln fest (keine Workarounds oder schnellen Tricks, häufige Verwendung von assert(), Absturz bei ungültigem Zustand, der die Datenintegrität gefährdet, Berücksichtigung von Randfällen) sowie Rust-Muster (Ungültige Zustände undarstellbar machen, ausführliche Musterabgleiche, Vorzug vor Enums gegenüber Strings/Sentinels, Minimierung von Heap-Zuweisungen, Schreiben von CPU-freundlichem Code). Er gibt konkrete Anleitungen für if-Anweisungen – Verwendung von assert!, Rückgabe eines Fehlers oder unreachable! für Zweige, die niemals erreicht werden sollten, anstatt sie stillschweigend zu ignorieren – sowie Kommentierungsregeln, die das Dokumentieren des „Warum“ statt des „Was“ fördern und gleichzeitig Verweise auf KI-Gespräche sowie zeitliche Markierungen verbieten. Zudem wird davor gewarnt, die Reihenfolge von Index-Änderungen im Vergleich zu SQLite nochmals zu überprüfen, um Inkonsistenzen zu vermeiden; es werden relevante Fähigkeiten zum asynchronen I/O-Modell genannt und Aufräumregeln gegen das Hinterlassen von „totem“ Code oder rückwärtskompatiblen Workarounds aufgelistet.
Er richtet sich an Entwickler, die am Turso/Limbo-Rust-Codebase arbeiten, sowie allgemein an alle, die Systeme in Rust entwickeln und einen kompakten Korrektheits-Checkliste benötigen. Es handelt sich um rein beratende Dokumentation – ohne Skripte, Befehle, Zugangsdaten oder Nebeneffekte – wodurch sie völlig unbedenklich ist.
FAQ
Was ist das grundlegende Prinzip?
Es handelt sich um eine Produktivdatenbank, in der Korrektheit an erster Stelle steht; daher ist ein Absturz dem Datenkorruption vorzuziehen. Die Regeln fordern dazu auf, deutlich zu fehlen, anstatt in einem undefinierten Zustand weiterzumachen.
Wie soll ich mit Zweigen umgehen, die niemals auftreten sollten?
Ignorieren Sie sie nicht stillschweigend. Verwenden Sie assert! mit einer Invarianzmeldung, geben Sie einen Fehler zurück oder nutzen Sie unreachable! – reservieren Sie einfache if/else-Strukturen für Fälle, in denen beide Zweige erwartete Pfade sind.
Welche sind die Kommentierungsregeln?
Dokumentieren Sie das „Warum“ statt des „Was“, dokumentieren Sie Funktionen/Strukturen/Enums/Varianten und vermeiden Sie Kommentare, die Code wiederholen, auf KI-Gespräche verweisen oder zeitliche Markierungen wie „added“ oder „Phase 1“ enthalten.
Gilt der Leitfaden auch außerhalb von Turso?
Er wurde für den Turso/Limbo-Rust-Codebase geschrieben, doch seine Richtlinien zur Korrektheit und zu Rust-Idiomen sind im Allgemeinen für die Entwicklung von Systemen in Rust nützlich.
Warum wird auf Index-Änderungen hingewiesen?
Weil die Reihenfolge von Insert-, Delete-Operationen sowie der Konfliktlösung SQLite entsprechen muss; eine falsche Reihenfolge führt zu leicht übersehbaren Inkonsistenzen in den Indizes.
Core Principle
Production database. Correctness paramount. Crash > corrupt.
Correctness Rules
- No workarounds or quick hacks. Handle all errors, check invariants
- Assert often. Never silently fail or swallow edge cases
- Crash on invalid state if it risks data integrity. Don't continue in undefined state
- Consider edge cases. On long enough timeline, all possible bugs will happen
Rust Patterns
- Make illegal states unrepresentable
- Exhaustive pattern matching
- Prefer enums over strings/sentinels
- Minimize heap allocations
- Write CPU-friendly code (microsecond = long time)
If-Statements
Wrong:
if condition { // happy path} else { // "shouldn't happen" - silently ignored}
Right:
// If only one branch should ever be hit:assert!(condition, "invariant violated: ...");// ORreturn Err(LimboError::InternalError("unexpected state".into()));// ORunreachable!("impossible state: ...");
Use if-statements only when both branches are expected paths.
Comments
Do:
- Document WHY, not what
- Document functions, structs, enums, variants
- Focus on why something is necessary
Don't:
- Comments that repeat code
- References to AI conversations ("This test should trigger the bug")
- Temporal markers ("added", "existing code", "Phase 1")
Avoid Over-Engineering
- Only changes directly requested or clearly necessary
- Don't add features beyond what's asked
- Don't add docstrings/comments to unchanged code
- Don't add error handling for impossible scenarios
- Don't create abstractions for one-time operations
- Three similar lines > premature abstraction
Index Mutations
When code involves index inserts, deletes, or conflict resolution, double-check the ordering against SQLite. Wrong ordering causes index inconsistencies. and easy to miss.
Ensure understanding of IO model
- Async IO model
Cleanup
- Delete unused code completely
- No backwards-compat hacks (renamed
_vars, re-exports,// removedcomments)
Alle Dateien
0 Dateiencode-quality installieren
Laden Sie die Skill-Dateien herunter und entpacken Sie sie in Ihren Ordner .claude/skills/.
ZIP herunterladenKlonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.
git clone https://github.com/tursodatabase/turso/blob/main/.claude/skills/code-quality/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Kopieren





Heim
