Toolverse
All skills

m12-lifecycle

by actionbook

Use when designing resource lifecycles. Keywords: RAII, Drop, resource lifecycle, connection pool, lazy initialization, connection pool design, resource cleanup patterns, cleanup, scope, OnceCell, Lazy, once_cell, OnceLock, transaction, session management, when is Drop called,

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Category
UX / Design
Views
1

About this skill

Use when designing resource lifecycles. Keywords: RAII, Drop, resource lifecycle, connection pool, lazy initialization, connection pool design, resource cleanup patterns, cleanup, scope, OnceCell, Lazy, once_cell, OnceLock, transaction, session management, when is Drop called, cleanup on error, guard pattern, scope guard, 资源生命周期, 连接池, 惰性初始化, 资源清理, RAII 模式

How to use

  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.

Related skills

motion-canvas

by davila7

Complete production-ready guide for Motion Canvas with ESM/CommonJS workarounds, full setup templates, and troubleshooting for programmatic video creation using TypeScript

UX / Design
2597

software-architecture

by davila7

Guide for quality focused software architecture. This skill should be used when users want to write code, design architecture, analyze code, in any case that relates to software development.

UX / Design
66205

solid-principles

by SmidigStorm

Enforce SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) in object-oriented design. Use when writing or reviewing classes and modules.

UX / Design
24154

canvas-design

by anthropics

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright

UX / Design
1998

sound-engineer

by erichowens

Expert audio engineer specializing in spatial audio, procedural sound design, interactive audio systems, and real-time DSP

UX / Design
14102

ui-ux-expert-skill

by fercracix33

Technical workflow for implementing accessible React user interfaces with shadcn/ui, Tailwind CSS, and TanStack Query. Includes 6-phase process with mandatory Style Guide compliance, Context7 best practices consultation, Chrome DevTools validation, and WCAG 2.1 AA accessibility

UX / Design
60158