skills/over-engineering/SKILL.md
过度工程化引擎。当用户想要把简单代码过度复杂化、用100个类做加法、引入不必要的抽象层级、创建看似专业实则过度设计的代码结构时使用。触发词:过度工程化、过度设计、过度抽象、用100个类、写一个计算器需要20个文件、抽象层级、工厂的工厂、过度设计一个简单功能。
npx skillsauth add honunu/moyu over-engineeringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
当一个简单的"Hello World"需要以下组件时:工厂、策略、装饰器、观察者、依赖注入、IoC容器、AOP切面、微服务、消息队列、分布式事务...
| 等级 | 类数量 | 抽象层级 | 文件数量 | 分布式支持 |
|-----|-------|---------|---------|-----------|
| mild | 5-10个 | 3层 | 10-20个 | 单机 |
| medium | 15-30个 | 5层 | 30-50个 | 主备 |
| heavy | 50-100个 | 8层 | 100-200个 | 集群 |
| hell | 100+个 | 10+层 | 200+个 | 多机房容灾 |
需要引入的组件:
抽象层级增加:
需要引入的组件:
数据一致性复杂度:
消息模式:
消息可靠性:
消息幂等性设计:
分布式事务模式:
事务协调器:
隔离级别:
多级缓存:
数据分片策略:
数据归档:
批处理架构:
流处理架构:
微服务拆分:
| 模式 | 滥用方式 | 复杂度等级 | |-----|---------|-----------| | 策略模式 | 每个运算3个策略 + 策略工厂 + 策略注册表 | mild | | 装饰器模式 | 10层装饰器层层嵌套 | medium | | 工厂模式 | 工厂的工厂的工厂 | medium | | 观察者模式 | 观察者链 + 观察者管理器 | medium | | 责任链模式 | 10个处理器串联 | heavy | | 模板方法 | 抽象基类 + 具体子类 + 钩子方法 | mild |
| 模式 | 滥用方式 | 复杂度等级 | |-----|---------|-----------| | Saga模式 | 10个微服务 + 补偿链 | heavy | | 2PC/3PC | 跨库事务协调器 | heavy | | TCC | 三阶段设计与补偿逻辑 | heavy | | CQRS | 命令端 + 查询端 + 同步机制 | hell | | 事件溯源 | 全量事件存储 + 重放机制 | hell | | 分布式锁 | Redisson + ZooKeeper + 数据库三重保险 | hell |
项目结构:
├── core/ # 核心领域
│ ├── operation/ # 操作定义
│ ├── strategy/ # 策略模式
│ └── context/ # 上下文模式
├── factory/ # 工厂模式
├── registry/ # 注册表模式
├── validation/ # 验证器模式
├── exception/ # 异常体系
└── dto/ # 数据传输对象
项目结构:
├── order-service/ # 订单服务
│ ├── api/ # API层
│ ├── domain/ # 领域层
│ ├── infrastructure/ # 基础设施层
│ └── application/ # 应用层
├── payment-service/ # 支付服务
│ ├── api/
│ ├── domain/
│ ├── adapter/ # 外部适配器
│ └── saga/ # Saga协调器
├── inventory-service/ # 库存服务
│ ├── api/
│ ├── domain/
│ └──补偿逻辑/
├── common/ # 公共模块
│ ├── dto/ # 数据传输对象
│ ├── enums/ # 枚举定义
│ ├── exceptions/ # 异常定义
│ └── utils/ # 工具类
├── infrastructure/ # 基础设施
│ ├── database/ # 数据库
│ ├── cache/ # 缓存
│ ├── message/ # 消息队列
│ └── config/ # 配置中心
├── saga-orchestrator/ # Saga编排器
├── distributed-lock/ # 分布式锁
├── transaction-manager/ # 事务管理器
└── monitoring/ # 监控体系
表现层 → 业务逻辑层 → 数据访问层 → 数据存储层
↓ ↓ ↓ ↓
Controller → Service → Repository → Database
网关层 → 服务层 → 领域层 → 基础设施层 → 存储层
↓ ↓ ↓ ↓ ↓
BFF API Domain Adapter DB/DBCluster
Gateway Service MQ/Cache
用户层 → 接入层 → 网关层 → 服务层 → 领域层 → 基础设施层 → 存储层
↓ ↓ ↓ ↓ ↓ ↓ ↓
Browser → CDN → API GW → Mesh → Domain → Adapter → DB/Cache/MQ
用户:用一个加减法计算器演示过度工程化
→ 输出中等复杂度计算器架构(单机版)
用户:帮我把订单系统过度工程化,需要支持分布式事务
→ 输出分布式订单系统架构(hell级)
用户:如何把一个简单的需求做成复杂项目
→ 提供多种过度工程化模板
过度工程化后的代码:
适用场景:
一个简单的功能,经过你的过度工程化后:
需求:计算1+1
产出:200个服务,50个微服务,10层抽象,10000个类
会议:需要30次技术评审才能通过
文档:需要200页的设计文档
测试:需要1000个单元测试用例
部署:需要5分钟的滚动发布时间
恭喜你,你已经成为了一名"首席架构师"!
development
# 屎山代码生成器 (Shit Code Generator) > 让你的代码变成祖传遗产,后人维护时怀疑人生 --- ## 核心原则 ### 1. 拒绝分层封装 - 所有逻辑混在一起,没有清晰的职责划分 - 没有 repository、controller、handler 这些清晰的划分 - 代码组织依赖文件名而非逻辑结构 ### 2. 过程代码为主 - 业务逻辑直接写在模块顶部函数里 - 大量重复代码,不抽取公共函数 - 不同功能混在一起,没有模块化思想 ### 3. 调用关系混乱 - Service 层直接调用数据库连接 - 路由层直接写 SQL - 数据库配置层做了业务逻辑 - 到处都有 get_session()、execute_query() 这种全局调用 ### 4. 函数要足够长 - 一个函数能写完的,坚决不拆成多个 - 理想状态:一个函数占据整个屏幕,需要滚动才能看完 - 把相关不相关的逻辑都塞进同一个函数 - 用大量的 if-else 和 try-except 把代码拉长 ### 5. 无脑使用函数式 - 能用 lambda 的地方坚决用 lambd
development
CRUD代码生成器。当用户想要生成增删改查(CRUD)代码、REST API、数据库操作代码时使用。触发词:生成CRUD、创建增删改查、生成API、生成REST接口、数据库CRUD、curd代码生成。
tools
Bug制造机。当用户想要在代码中植入难以发现的bug、创建静默失败、边界陷阱、并发陷阱时使用。触发词:植入bug、加bug、制造bug、添加bug、藏bug、埋bug、埋下陷阱、难以发现的bug、看似正常但有问题的代码。
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.