스킬 domain-layer-expert
📦

domain-layer-expert

안전

Reichhaltige Domänenmodelle in Rust entwerfen

Domänenmodelle werden oft zu einfachen Datencontainern ohne Verhalten. Diese Anleitung hilft Entwicklern, ausdrucksstarke, typsichere Domänenmodelle mithilfe von Value Objects, Entitäten mit Identität und Domänenereignissen nach DDD-Prinzipien zu erstellen.

지원: Claude Codex Code(CC)
⚠️ 67 나쁨
1

스킬 ZIP 다운로드

2

Claude에서 업로드

설정 → 기능 → 스킬 → 스킬 업로드로 이동

3

토글을 켜고 사용 시작

테스트해 보기

"domain-layer-expert" 사용 중입니다. Erstelle ein Value Object für eine E-Mail-Adresse mit Validierung auf @-Symbol und maximale Länge 255.

예상 결과:

  • Eine Rust-Struct Email(String) mit einem Konstruktor, der das E-Mail-Format validiert.
  • Der Konstruktor gibt einen ValidationError zurück, wenn die E-Mail das @-Symbol vermisst oder 255 Zeichen überschreitet.
  • Methoden: as_str() für den Zugriff auf den inneren String, TryFrom<String>-Implementierung für ergonomische Konvertierung.

"domain-layer-expert" 사용 중입니다. Refaktorisiere dieses anämische User-Modell in ein reichhaltiges Domänenmodell mit Verhalten.

예상 결과:

  • User-Struct mit privaten Feldern (id, email, name, status).
  • Domänenmethoden: deactivate(), change_email(), activate().
  • Validierung in Domänenmethoden verhindert ungültige Zustandsübergänge.
  • Status modelliert als Enum UserStatus mit Active, Inactive, Deleted Varianten.

"domain-layer-expert" 사용 중입니다. Erstelle eine Order-Entität mit einem Mindestbestellwert von 10$.

예상 결과:

  • Order-Struct mit OrderId, items, status und total Money-Feld.
  • new()-Konstruktor lehnt leere Bestellungen ab.
  • confirm()-Methode erzwingt 10$-Minimum und validiert Bestellstatus.
  • add_item() nur bei ausstehenden Bestellungen erlaubt.

보안 감사

안전
v1 • 1/23/2026

All static findings are false positives. Static analyzer misidentified Rust code examples as shell commands, YAML frontmatter as cryptographic algorithms, and legitimate patterns as reconnaissance. No executable code or security risks present.

1
스캔된 파일
280
분석된 줄 수
4
발견 사항
1
총 감사 수

높은 위험 문제 (2)

Weak Cryptographic Algorithm False Positive
Static analyzer flagged YAML frontmatter text as cryptographic algorithm. Lines 3 and 10 contain only descriptive text about domain modeling, no cryptographic code exists.
JSFuck Obfuscation False Positive
Static analyzer flagged YAML frontmatter delimiters as JSFuck obfuscation. Line 1 contains standard YAML `---` delimiters.
중간 위험 문제 (1)
Ruby/Shell Backtick Execution False Positive
Static analyzer misidentified Rust code examples in markdown code blocks as Ruby/shell backtick execution. All flagged locations contain legitimate Rust domain modeling patterns.
낮은 위험 문제 (1)
System Reconnaissance False Positive
Static analyzer flagged legitimate Rust code patterns as system reconnaissance. Lines 95, 118 contain simple getter methods and ID generation, line 200 is markdown header.
감사자: claude

품질 점수

38
아키텍처
100
유지보수성
87
콘텐츠
30
커뮤니티
78
보안
91
사양 준수

만들 수 있는 것

Anämisches Benutzermodell refaktorisieren

Transformiere eine rein datenbasierte User-Struct mit Gettern und Settern in ein reichhaltiges Domänenmodell mit Verhaltensmethoden wie deactivate() und change_email(), die Geschäftsregeln durchsetzen.

Validierte Wertetypen erstellen

Ersetze primitive Typen wie String und i32 durch domänenspezifische Typen wie Email, Money und Age, die Validierungslogik kapseln.

Domänenereignisse zum Bestellworkflow hinzufügen

Implementiere ein Order-Aggregate, das UserCreated, EmailChanged und andere Domänenereignisse bei Zustandsänderungen emittiert.

이 프롬프트를 사용해 보세요

Einfaches Domänenmodell
Erstelle ein Domänenmodell für ein [concept] mit proper Validierung. Binde ein Value Object für [field] und eine Entität mit Verhaltensmethoden ein.
Anämisches Modell refaktorisieren
Diese Struct ist anämisch. Refaktorisiere sie in ein reichhaltiges Domänenmodell mit Verhalten: [code]. Verschiebe die Validierung in Value Objects und füge Domänenmethoden hinzu.
Geschäftsregeln hinzufügen
Füge Geschäftsregelvalidierung zu diesem Domänenmodell hinzu: [code]. Die Regeln sind: [rule1], [rule2]. Gib Fehler mit beschreibenden Nachrichten zurück.
Domänenereignisse implementieren
Modifiziere dieses Aggregate, um bei Zustandsänderungen Domänenereignisse zu emittieren: [code]. Binde Event-Struct-Definitionen und einen Mechanismus zur Ereignissammlung ein.

모범 사례

  • Erstelle Value Objects, die Primitive umschließen und Validierungslogik enthalten
  • Halte Entitäten fokussiert auf Identität und Verhalten, delegiere Daten an Value Objects
  • Modelliere Domänenereignisse, wenn Zustandsänderungen andere Verhaltensweisen auslösen müssen
  • Erzwinge Invarianten und Geschäftsregeln bei der Erstellung und bei Zustandsübergängen

피하기

  • Verwendung öffentlicher Felder auf Domänenentitäten ohne Kapselung
  • Platzierung von Validierung in Anwendungsservices statt in Domänentypen
  • Vermischung von Infrastrukturbelangen wie Datenbank-IDs mit Domänenidentität
  • Erstellung anämischer Modelle, die nur Datencontainer ohne Verhalten sind

자주 묻는 질문

Was ist der Unterschied zwischen einem Value Object und einer Entität?
Value Objects werden durch ihre Attribute definiert und sind unveränderlich. Entitäten haben eine eindeutige Identität, die durch Zustandsänderungen hindurch besteht. Verwende Value Objects für Konzepte wie Email oder Money, Entitäten für Dinge wie User oder Order.
Wann sollte ich Domänenereignisse verwenden?
Verwende Domänenereignisse, wenn Zustandsänderungen in einem Aggregat Verhalten in anderen Teilen des Systems auslösen müssen. Events entkoppeln das Aggregate von seinen Konsumenten und ermöglichen Event-Driven Architectures.
Wie gehe ich mit Validierungsfehlern um?
Gib Result-Typen von Konstruktoren und Methoden zurück. Erstelle ein ValidationError-Enum mit spezifischen Varianten für verschiedene Fehlermodi. Halte Fehlermeldungen beschreibend und handlungsorientiert.
Sollte ich Option oder Result für optionale Werte verwenden?
Verwende Option, wenn ein Wert legitim abwesend sein kann. Verwende Result, wenn Abwesenheit einen Fehlerzustand darstellt. In Domänenmodellen bevorzuge Result für Validierungsfehler und Option für optionale Attribute.
Wie teste ich Domänenmodelle?
Teste Domänenverhalten mit Unit-Tests, die gültige Zustandsübergänge, ungültige Operationen und Fehlerfälle abdecken. Verwende Property-Based Testing für Value Objects. Teste Invarianten mit mehreren Operationen.
Kann mir diese Anleitung bei bestehenden Rust-Projekten helfen?
Ja. Teile deine bestehenden Domänenmodelle und die Anleitung wird Verbesserungen für Kapselung, Validierungsplatzierung und Verhaltensanreicherung vorschlagen, während die Kompatibilität gewährleistet wird.

개발자 세부 정보

파일 구조

📄 SKILL.md