搜索

PythonReactSEOPDF
GitHub Skill

preferences-rust-development

Rust development conventions covering domain modeling, error handling, API design, testing, performance, and type-level programming. Load when working with .rs files or Rust projects.

cameronraysmith☆ 10 仓库 Stars0 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

Rust development

This guide integrates functional domain modeling (FDM) with pragmatic Rust practices from Microsoft engineers.

Primary lens: Functional domain modeling - type-driven design encoding business logic in the type system, making invariants explicit and violations compile-time errors.

Complementary guidance: Microsoft Pragmatic Rust Guidelines - industry best practices for API design, testing, performance, and safety.

Philosophical reconciliations:

  • Panic semantics: Panics for true programming bugs only (contract violations, impossible states). Domain and infrastructure errors use Result types. Good type design reduces both panic surface and error handling complexity.
  • Dependency injection: Prefer concrete types for domain logic, enums for testable I/O (sans-io), generics for algorithm parameters, dyn Trait only for true runtime polymorphism. This hierarchy complements FDM's emphasis on explicit, type-safe dependencies.
  • Type-driven design: Both approaches emphasize making invalid states unrepresentable. Smart constructors, state machines, and strong types eliminate bug categories.

Role in multi-language architectures: Rust often serves as the base IO/Result layer in multi-language monad transformer stacks, providing memory-safe, high-performance foundations for effect composition.

Contents

This guide is organized into focused topic files for easy navigation and AI agent efficiency.

File Description
01-functional-domain-modeling.md Core FDM patterns: smart constructors, state machines, workflows, aggregates, error classification; advanced patterns: phantom types, const generics, NonEmpty collections; Pattern 6: The Decider pattern (fmodel-rust) for event-sourced command handling
02-error-handling.md Canonical error structs, thiserror/anyhow/miette, Result composition, railway-oriented programming, applicative validation, #[must_use] enforcement
03-panic-semantics.md When to panic vs return Result, programming bugs vs domain errors
04-api-design.md Naming, dependency injection hierarchy, builders, sans-io pattern, serialization boundaries, command/event struct patterns
05-testing.md Mockable I/O, property-based testing, feature-gated test utilities
06-documentation.md Canonical doc sections, module docs, doc tests
07-performance.md Hot paths, throughput optimization, async yield points, allocators
08-structured-logging.md Tracing, message templates, OpenTelemetry conventions
09-unsafe-code.md Validation requirements, Miri testing, soundness guarantees
10-tooling.md Code quality, linting, dependency management
11-concurrency.md Capability-secure concurrency: deny capabilities, actor patterns, channel primitives, structured concurrency
12-distributed-systems.md Distributed patterns: idempotency keys, saga orchestration, transactional outbox, event sourcing integration
13-type-level-programming.md Strategic library extensions: typenum, frunk, nutype for type-level programming; compile-time assertions; anti-patterns to avoid

References

Primary sources

This document integrates guidance from:

  • Functional domain modeling: See ~/.claude/skills/preferences-domain-modeling/SKILL.md for universal patterns, ~/.claude/skills/preferences-architectural-patterns/SKILL.md for application structure, ~/.claude/skills/preferences-railway-oriented-programming/SKILL.md for error composition
  • Microsoft Pragmatic Rust Guidelines: https://microsoft.github.io/rust-guidelines/agents/all.txt - comprehensive production Rust guidance from Microsoft engineers
  • Rust API Guidelines: https://rust-lang.github.io/api-guidelines/ - official Rust API design checklist
Related documents
  • ~/.claude/skills/preferences-distributed-systems/SKILL.md - universal distributed systems decision framework
  • ~/.claude/skills/preferences-theoretical-foundations/SKILL.md - category-theoretic underpinnings
  • ~/.claude/skills/preferences-algebraic-data-types/SKILL.md - sum/product type patterns

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-03-11
索引更新时间
2026-03-11
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!