gemini-3.5-flash-lite (cost: $0.010) · Anfrage: 2026-10-22T04:35:12.315816344+00:00
Generated by rs-summarizer v1.8.5
Der Google Rust Style Guide definiert verbindliche Richtlinien für die Nutzung der Programmiersprache Rust in Großprojekten wie Android, ChromeOS, Chromium und Fuchsia, mit dem primären Ziel, Konsistenz, Wartbarkeit und automatisierte Refactorings (Large-Scale Changes) sicherzustellen. Das Dokument behandelt Architekturfragen von der Crate-Organisation über Ownership, Fehlermanagement und Makro-Nutzung bis hin zu API-Konventionen. Die Diskussion auf Hacker News greift kontroverse Punkte auf – darunter das Verbot von async/.await in Chromium, die umstrittene Empfehlung für #[non_exhaustive] bei Enums sowie die Effekte extrem feingranularer Crates in Monorepos.
Rc und Arc soll vermieden werden; stattdessen sind unikale Eigentümerschaft und direkte Borrows (&T, &str, &[T]) zu bevorzugen, um unnötige Runtime-Overheads zu verhindern.Option für einfache, offensichtliche Fehler (z. B. fehlende Werte), Result für wiederherstellbare Fehler mit Kontext (z. B. I/O) und panic! ausschließlich für Programmierfehler und verletzte Invarianten.impl Trait oder T: Trait) gegenüber dynamischem Dispatch (dyn Trait) zu bevorzugen, um Inlining und Compiler-Optimierungen zu ermöglichen.~Ext tragen und sollten im selben Crate wie der Basistyp definiert werden, um Namenskonflikte zu vermeiden.async/.await sowie das Starten von Threads über die Rust-Standardbibliothek sind in Chromium explizit untersagt.rust_gtest_interop (Chromium) oder #[fuchsia::test] (Fuchsia) anstelle von Standard-#[test] verwenden.#[non_exhaustive] für Enums: Mehrere Teilnehmer bemängeln, dass diese Empfehlung die Vorteile der exhaustiven Musterprüfung (Exhaustiveness Checking) im Compiler aushebelt und unbehandelte Enum-Varianten zu Laufzeitfehlern statt zu Kompilierfehlern macht.Regex statt regex::Regex), wird kontrovers diskutiert, da dies ohne IDE/LSP-Unterstützung bei generischen Namen zu Mehrdeutigkeiten führen kann.#[rust_analyzer::prefer_underscore_import], welches Autovervollständigungen dazu bringt, Extension Traits standardmäßig als as _ zu importieren.Rc/Arc-Restriktionen: Kritiker merken an, dass Reference Counting für Objekte, die über den Call-Stack hinausleben, essenziell ist und künstliche Lebensdauer-Verwaltungen (Lifetimes) oft unnötig verkompliziert.Rc für Single-Threaded, Arc für Thread-sichere Multi-Threaded-Umgebungen), die eine geteilte Eigentümerschaft von Daten ermöglichen.::<>): Eine Syntax, um generische Typ- oder Lifetime-Parameter explizit an Funktions- oder Methodenaufrufen anzugeben.