Toolverse
Wszystkie skille

m12-lifecycle

autor: actionbook

Projektuj cykl życia zasobów: od inicjalizacji przez użycie do czyszczenia

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
UX / Design
Wyświetlenia
1

O skillu

Skill do projektowania cykli życia zasobów w Rust. Nauczy Cię wzorców RAII, leniwej inicjalizacji, pul połączeń i czyszczenia zasobów. Dowiesz się, kiedy tworzyć zasoby, jak zarządzać ich zakresem, co robić przy błędach i jak implementować guard patterns. Idealne do projektowania bezpiecznego zarządzania połączeniami bazodanowymi, sesjami i innymi drogimi zasobami.

Jak używać

  1. Zainstaluj skill m12-lifecycle z repozytorium actionbook/rust-skills. Skill nie jest bezpośrednio wywoływalny — służy jako materiał referencyjny do projektowania.

  2. Zanim zaczniesz implementować zarządzanie zasobami, odpowiedz sobie na trzy kluczowe pytania: Jaki jest koszt zasobu (tani czy drogi)? Jaki jest jego zakres (lokalna funkcja, żądanie HTTP, cała aplikacja)? Co powinno się stać przy błędzie?

  3. Wybierz odpowiedni wzorzec na podstawie odpowiedzi: dla taniej inicjalizacji użyj zwykłej alokacji na stosie, dla drogich zasobów rozważ pulę (r2d2, deadpool) lub leniwą inicjalizację (OnceLock, LazyLock), dla transakcji zaprojektuj custom struct z implementacją Drop.

  4. Zaimplementuj trait Drop dla zasobów wymagających czyszczenia. Trait Drop gwarantuje, że kod czyszczący wykona się automatycznie, nawet gdy dojdzie do błędu — to jest sedno wzorca RAII.

  5. Dla zasobów wymagających dostępu w ograniczonym zakresie (np. blokady mutex) użyj guard pattern — struktura guard automatycznie zwolni zasób, gdy wyjdzie poza zakres.

  6. Jeśli czyszczenie może się nie powieść, nie polegaj wyłącznie na Drop — zamiast tego zaimplementuj jawną metodę close() zwracającą Result, którą możesz obsłużyć w kodzie.

Podobne skille