m05-type-driven
Zapobiegaj błędom na etapie kompilacji, nie w runtime — koduj niezmienniki w typach
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill do projektowania sterowanego typami w Rust. Uczy, jak system typów może uniemożliwić nieprawidłowe stany zamiast polegać na kontrolach w runtime. Obejmuje wzorce takie jak type state, newtype, PhantomData, builder pattern i sealed trait. Pokazuje, jak przesunąć walidację z czasu wykonania na czas kompilacji, aby kompilator pilnował poprawności kodu.
Jak używać
Zainstaluj skill m05-type-driven z repozytorium actionbook/rust-skills jako referencję do projektowania typów.
Gdy napotykasz problem wymagający walidacji (np. format e-maila, zakres liczby, stan obiektu), zamiast dodawać kontrolę runtime, zadaj sobie pytanie: czy typ może zakodować to ograniczenie?
Dla każdego wariantu problemu sprawdź tabelę wzorców w README — jeśli masz obsesję na primitywy ("to tylko string"), flagi logiczne lub wszędzie Optional, skill podpowiada, jak zamienić to w typy.
Zastosuj odpowiedni wzorzec: newtype dla wartości semantycznych, type state pattern dla przejść między stanami, builder pattern dla złożonych konstruktorów, sealed trait do ograniczenia implementacji.
Jeśli projekt typów pozostaje niejasny, skorzystaj z wskazówki "Trace Up" — przejdź do skill m09-domain, aby zdefiniować model domeny i prawidłowe przejścia stanów.
Weryfikuj, że kompilator teraz odrzuca nieprawidłowe stany — jeśli kod się kompiluje, invarianty są gwarantowane bez testów runtime.