金色时刻 · 15:48
让好资源,触手可及
AGENT SKILL

architecture

architecture 是面向软件开发的 Agent Skill,来自 HoangNguyen0403/agent-skills-standard。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。

Scalable project structure using Feature-Sliced Design (FSD).

SKILL.md

下载 MD ↓
nameNext.js Architecture (FSD)
descriptionScalable project structure using Feature-Sliced Design (FSD).
metadata{"labels": ["nextjs", "architecture", "fsd", "folder-structure"], "triggers": {"files": ["src/features/**", "src/entities/**", "src/widgets/**"], "keywords": ["FSD", "Feature Sliced Design", "slices", "segments"]}}

Architecture (Feature-Sliced Design)

Priority: P2 (MEDIUM)

Adopt Feature-Sliced Design (FSD) for scalable applications. Warning: FSD introduces boilerplate. Use it only if the project is expected to grow significantly (e.g., 20+ features). For smaller projects, a simple module-based structure is preferred.

Strategy

  1. App Layer is Thin: The app/ directory (App Router) is only for Routing. - Rule: page.tsx should only import Widgets/Features. No business logic (useEffect, fetch) directly in pages.
  2. Slices over Types: Group code by Business Domain (User, Product, Cart), not by File Type (Components, Hooks, Utils). - Bad: src/components/LoginForm.tsx, src/hooks/useLogin.ts - Good: src/features/auth/login/ containing both.
  3. Layer Hierarchy: Code can only import from layers below it. - App -> Widgets -> Features -> Entities -> Shared.
  4. Avoid Excessive Entities: Do not preemptively create Entities. - Rule: Start logic in Features or Pages. Move to Entities only when data/logic is strictly reused across multiple differing features. - Rule: Simple CRUD belongs in shared/api, not entities.
  5. Standard Segments: Use standard segment names within slices. - ui (Components), model (State/actions), api (Data fetching), lib (Helpers), config (Constants). - Avoid: components, hooks, services as segment names.

Structure Reference

For the specific directory layout and layer definitions, see the reference documentation.

Integration with Next.js Core

  • Server Actions: Place them in the model/ folder of a Feature (e.g., features/auth/model/actions.ts).
  • Data Access (DAL): Place logic in the model/ folder of an Entity (e.g., entities/user/model/dal.ts).
  • UI Components: Base UI (shadcn) belongs in shared/ui. Feature-specific UI belongs in features/*/ui.

来源:HoangNguyen0403/agent-skills-standard · MIT 许可 · 许可原文 · MD 为来源页保存的历史版本