software-design
Installation
SKILL.md
软件设计与编码规范技能系统
任务目标
本技能系统提供全面的软件设计与编码规范指导,涵盖从基础术语到架构设计的完整知识体系。支持新手→进阶→架构师的学习路径,可根据不同场景调用相应子技能。
核心能力
- 术语概念解析: 作用域、闭包、命名空间、变量生命周期等基础概念
- 状态管理设计: 局部/全局/共享状态、不可变状态、单向数据流
- 函数设计原则: 单一职责、纯函数、方法封装、高内聚低耦合
- 模块化架构: 分层架构、目录规范、代码组织结构
- 错误处理机制: 异常捕获、错误码设计、异常抛出策略
- 性能优化: 内存管理、资源释放、性能瓶颈分析
- 代码质量: 可读性、语义化命名、编码风格、可维护性
- 设计原则: SOLID 原则、设计模式、重构技巧
子技能列表
| 子技能 | 用途 | 触发场景 |
|---|---|---|
| terminology | 编程术语与概念解析 | 遇到不理解的术语或概念时 |
| state-management | 状态管理方案设计 | 需要设计状态存储和管理逻辑时 |
| function-design | 函数设计与拆分 | 需要编写或重构函数时 |
| modularization | 模块化与架构设计 | 需要组织代码结构或分层时 |
| error-handling | 错误处理机制 | 需要设计异常处理策略时 |
| performance | 性能优化 | 遇到性能瓶颈或内存问题时 |
| code-quality | 代码质量优化 | 需要提升代码可读性和可维护性时 |
| naming | 命名与注释规范 | 需要改进命名或添加注释时 |
三步流程框架
所有技能操作遵循统一的三步流程:
┌─────────────────────────────────────────────────────────────┐
│ 第一步:查阅信息 (Research) │
│ ├── 理解用户问题和场景 │
│ ├── 调用相关子技能(如需要) │
│ └── 网络搜索最新实践(如需要) │
├─────────────────────────────────────────────────────────────┤
│ 第二步:执行操作 (Execute) │
│ ├── 应用设计原则和规范 │
│ ├── 提供具体代码示例 │
│ └── 解释设计决策和权衡 │
├─────────────────────────────────────────────────────────────┤
│ 第三步:检查验收 (Validate) │
│ ├── 验证方案符合 SOLID 原则 │
│ ├── 确认代码质量和可读性 │
│ └── 提供进一步优化建议 │
└─────────────────────────────────────────────────────────────┘
使用场景
场景 1: 新手学习路径
需求: 从零开始学习软件设计
调用方式:
调用 software-design 技能,选择"新手学习路径"
输出:
- 基础术语解释(作用域、变量、函数)
- 编码规范入门
- 简单示例和练习
场景 2: 代码重构
需求: 优化现有代码结构
调用方式:
调用 software-design 技能,选择"代码重构"场景
输出:
- 代码问题分析
- 重构方案设计
- 具体实现步骤
场景 3: 架构设计
需求: 设计大型项目架构
调用方式:
调用 software-design 技能,选择"架构设计"场景
输出:
- 分层架构设计
- 模块划分方案
- 设计模式应用
场景 4: 性能优化
需求: 解决性能瓶颈
调用方式:
调用 software-design 技能,选择"性能优化"场景
输出:
- 性能分析方法
- 优化方案设计
- 最佳实践建议
核心概念体系
一、基础术语(程序员必懂)
- 作用域(Scope): 全局变量 / 局部变量 / 块级作用域
- 变量生命周期: 声明周期、内存分配、垃圾回收
- 命名空间污染: 全局命名空间管理、模块化解决方案
- 闭包(Closure): 词法作用域、上下文保持
- 状态管理(State Management): 局部状态 / 全局状态 / 共享状态
- 不可变状态(Immutable State): 数据不可变性、纯函数
- 单向数据流: 数据流向控制、状态更新机制
二、设计原则(SOLID)
- 单一职责原则(SRP): 一个类只负责一项职责
- 开放封闭原则(OCP): 对扩展开放,对修改封闭
- 里氏替换原则(LSP): 子类可替换父类
- 接口隔离原则(ISP): 接口要小而专
- 依赖倒置原则(DIP): 依赖抽象而非具体实现
三、代码质量维度
- 可维护性: 易于理解、修改和维护
- 可扩展性: 易于添加新功能
- 可测试性: 易于编写单元测试
- 可读性: 代码清晰易懂
- 解耦: 模块间低耦合
四、架构设计模式
- 分层架构: Controller / Service / DAO / Utils
- 模块化设计: 高内聚、低耦合
- 设计模式: 23 种经典设计模式
- 重构技巧: 代码重构方法论
学习路线图
🌱 新手阶段(0-6 个月)
重点学习内容:
- 基础术语:变量、作用域、函数
- 编码规范:命名、注释、格式
- 简单函数设计:单一功能、参数设计
- 基础错误处理:try-catch、错误提示
推荐子技能:
- terminology(术语概念)
- naming(命名规范)
- function-design(基础函数设计)
🚀 进阶阶段(6 个月 -2 年)
重点学习内容:
- 函数设计进阶:纯函数、副作用管理
- 状态管理:局部状态、全局状态
- 模块化:代码组织、目录结构
- 错误处理:错误码设计、异常链
- 性能基础:时间复杂度、空间复杂度
推荐子技能:
- function-design(高级函数设计)
- state-management(状态管理)
- modularization(模块化)
- error-handling(错误处理)
🏗️ 架构师阶段(2 年以上)
重点学习内容:
- SOLID 原则深度应用
- 设计模式:23 种模式实战
- 架构设计:分层架构、微服务
- 性能优化:内存管理、并发处理
- 代码重构:重构方法论
- 工程质量:可维护性、可扩展性
推荐子技能:
- code-quality(代码质量)
- performance(性能优化)
- modularization(架构设计)
- 所有子技能综合运用
网络搜索配置
本技能支持网络搜索功能,用于获取最新的设计模式、最佳实践和技术趋势。
搜索触发条件
- 用户明确要求搜索最新实践
- 需要验证某个设计模式的当前使用情况
- 需要了解特定框架的状态管理方案
- 需要查询性能优化的最新技术
搜索关键词示例
- "2025 state management best practices"
- "SOLID principles real-world examples"
- "code refactoring techniques 2025"
- "performance optimization patterns"
参考文档
| 文档 | 用途 | 何时使用 |
|---|---|---|
| references/terminology.md | 编程术语详解 | 需要理解基础概念时 |
| references/state-management.md | 状态管理方案 | 设计状态管理逻辑时 |
| references/function-design.md | 函数设计指南 | 编写或重构函数时 |
| references/modularization.md | 模块化设计 | 组织代码结构时 |
| references/error-handling.md | 错误处理机制 | 设计异常处理时 |
| references/performance.md | 性能优化 | 解决性能问题时 |
| references/code-quality.md | 代码质量标准 | 提升代码质量时 |
| references/naming.md | 命名规范 | 改进命名时 |
使用示例
示例 1: 查询术语概念
用户: "什么是闭包?怎么用?"
技能调用:
调用 software-design/terminology
查询:闭包(Closure)
输出:
- 闭包定义
- 工作原理
- 使用场景
- 代码示例
- 注意事项
示例 2: 状态管理设计
用户: "这个组件的状态应该怎么管理?"
技能调用:
调用 software-design/state-management
场景:组件状态设计
输出:
- 状态分析(局部/全局/共享)
- 状态管理方案
- 代码实现示例
- 最佳实践建议
示例 3: 函数重构
用户: "这个函数太复杂了,怎么拆分?"
技能调用:
调用 software-design/function-design
场景:函数重构
应用原则:单一职责、纯函数
输出:
- 问题分析
- 拆分方案
- 重构后代码
- 设计原则说明
示例 4: 架构设计
用户: "我要开发一个电商系统,怎么设计架构?"
技能调用:
调用 software-design/modularization
场景:大型项目架构设计
网络搜索:电商系统架构最佳实践
输出:
- 分层架构设计
- 模块划分方案
- 技术选型建议
- 设计模式应用
注意事项
- 子技能调用: 根据具体场景选择合适的子技能,避免过度设计
- 网络搜索: 仅在需要最新信息时启用,避免不必要的搜索
- 学习路径: 根据用户水平推荐合适的学习内容和子技能
- 代码示例: 所有建议都应提供可运行的代码示例
- 原则应用: 解释设计原则时要结合实际场景,避免教条主义
- 版本控制: 重要修改需更新版本号并记录变更
版本历史
- v1.0.0 (2025-01-XX): 初始版本
- 创建完整的技能系统架构
- 定义 8 个子技能
- 配置网络搜索能力
- 提供学习路线图
Related skills