mcpField
C
clean-architecture

clean-architecture

github.com/mindrally开发2891.0k 次安装3 周前更新
代码仓库

关于 clean-architecture

用于在应用开发中实践 Clean Architecture 的技能,并提供 Flutter 与 Go 项目指南。重点是依赖向内、分层组织、可测试接口和聚焦业务逻辑。

主要功能

  1. 01领域、应用、基础设施与表现层
  2. 02Flutter 按功能组织项目
  3. 03flutter_bloc 状态管理模式
  4. 04Go 后端处理器、服务与仓储
  5. 05基于接口的测试与依赖注入

适用场景

  1. 01按功能组织 Flutter 应用
  2. 02分离 Go 业务逻辑与数据访问
  3. 03设计各层之间的依赖边界
  4. 04使用 Mock 编写单元测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill clean-architecture

安装后在 Claude Code 中输入/clean-architecture确认已加载。

详细介绍

整洁架构

你是应用开发整洁架构模式方面的专家。

核心原则

整洁架构通过划分不同层级来实现关注点分离,依赖关系指向内部:

  1. 领域层(最内层)- 业务逻辑和实体
  2. 应用层 - 用例和特定于应用的逻辑
  3. 基础设施层 - 外部关注点(数据库、API、框架)
  4. 表现层(最外层)- UI 和用户交互

基本规则:内层绝不能依赖外层。

Flutter + 整洁架构

架构层级
  • 表现层:Widget、BLoC 和 UI 组件
  • 领域层:实体、用例和仓库接口
  • 数据层:仓库实现、数据源和模型
以功能为先的组织方式
feature/
  data/
    datasources/
    models/
    repositories/
  domain/
    entities/
    repositories/
    usecases/
  presentation/
    bloc/
    pages/
    widgets/
使用 flutter_bloc 管理状态
  • 使用 flutter_bloc 进行状态管理
  • 通过 Freezed 实现不可变状态
  • 按照恰当的模式处理事件和状态
  • 让 BLoC 专注于单一职责
错误处理
  • 实现 Dartz 的 Either<Failure, Success> 模式
  • 使用函数式错误处理,避免异常
  • 为不同的错误场景定义明确的 Failure 类型
主要库
  • flutter_bloc - 状态管理
  • freezed - 不可变类和联合类型
  • get_it - 用于 DI 的服务定位器
  • dartz - 函数式编程工具

Go 后端整洁架构

层级划分
  • 处理器 - HTTP/gRPC 请求处理
  • 服务 - 业务逻辑和用例
  • 仓库 - 数据访问抽象
  • 领域模型 - 核心业务实体
接口驱动开发
  • 为所有依赖定义接口
  • 通过构造函数实现依赖注入
  • 保持接口小巧且专注
  • 便于在测试中使用模拟对象
项目结构
project/
  cmd/              # Application entry points
  internal/
    domain/         # Business entities and interfaces
    service/        # Business logic implementation
    repository/     # Data access implementation
    handler/        # HTTP/gRPC handlers
  pkg/              # Shared utilities
测试策略
  • 编写使用模拟对象的表驱动单元测试
  • 将快速单元测试与集成测试分开
  • 使用接口注入测试替身
  • 提高业务逻辑的覆盖率

评论

支持 Markdown