lsof entschlüsselt: Einblick in die geöffneten Dateien eines Prozesses

2025-06-06

Dieser Code-Schnipsel verwendet den Befehl `lsof -p $(echo $$)`, um alle geöffneten Dateien des aktuellen zsh-Prozesses aufzulisten. Die Ausgabe zeigt Details wie Prozess-ID, Benutzer, Dateideskriptor-Typ, Gerät, Größe und Pfad und bietet so einen klaren Überblick über die Interaktionen des Prozesses mit dem Dateisystem. Dies ist unschätzbar wertvoll, um das Prozessverhalten zu verstehen und Dateideskriptor-Lecks zu debuggen.

Mehr lesen
Entwicklung Dateideskriptoren

Cookie-basierte Authentifizierung in Axum: Von Extractors zu Middleware

2025-06-05

Dieser Artikel untersucht zwei Ansätze zur Implementierung einer cookie-basierten Benutzerauthentifizierung im Rust Axum Framework. Zunächst zeigt der Autor die Verwendung eines benutzerdefinierten Extractors, `CookieJwt`, um JWT-Token aus Anfragen abzurufen und je nach Gültigkeit des JWT einen "Profil"- oder "Anmelden"-Button anzuzeigen. Dieser Ansatz erweist sich jedoch als weniger sauber und skalierbar für komplexe Authentifizierungsszenarien. Der Artikel refaktoriert dann die Lösung mithilfe von Axum Middleware, wodurch ein saubererer, wiederverwendbarer und flexiblerer Ansatz zur Behandlung der Authentifizierungslogik entsteht. Diese Middleware validiert JWTs effizient, verwaltet Aktualisierungstoken und verarbeitet verschiedene Anfragetypen, was zu einem robusteren und anpassungsfähigeren Benutzerauthentifizierungssystem führt. Der Autor beschreibt die Implementierung der Middleware und hebt deren Vorteile gegenüber dem Extractor-basierten Ansatz hervor.

Mehr lesen
Entwicklung

Warum Sie Query Builder verwerfen und direktes SQL verwenden sollten

2025-01-25

Dieser Artikel plädiert dafür, Datenbankabfragen direkt in SQL zu schreiben, anstatt auf Query Builder zu setzen. Anhand mehrerer Beispiele zeigt der Autor, wie SQL-Funktionen (wie `IS NULL`, `COALESCE`, `ARRAY_REMOVE`, `STRING_TO_ARRAY`) optionale Parameter, Arrays, Paginierung und Batch-Updates elegant handhaben und komplexe Rust-Logik reduzieren. Dieser Ansatz vereinfacht den Code, verbessert Lesbarkeit und Testbarkeit und ermöglicht einfacheres Datenbank-Testing und Debugging. Der Autor argumentiert, dass direktes SQL oft sauberer und effizienter als komplexe Builder-Muster ist.

Mehr lesen
Entwicklung Datenbankabfragen