Skip to main content

common-coding

编码技能,提供代码编写指导,遵循编码规范和最佳实践

Informações da origem

Repositório
bage2014/study
Última atividade na origem
24 de junho de 2026 às 23:18
Idioma detectado do SKILL.md
chinês
Estrelas
646
Forks
113

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
common-coding
description
编码技能,提供代码编写指导,遵循编码规范和最佳实践
trigger
用户需要编写代码时
disable-when
已有完整代码实现或仅需简单代码片段
category
common
tags
["coding","best-practices","standards"]
# 编码技能 ## 功能描述 提供代码编写指导能力,帮助开发者遵循编码规范和最佳实践,提高代码质量和可维护性。 ## 何时使用 在以下情况调用此技能: - 需要编写新代码时 - 需要审查代码质量时 - 需要优化现有代码时 - 需要生成代码文档时 ## 核心功能 - **代码生成**:根据需求生成符合规范的代码 - **代码审查**:检查代码是否符合编码规范 - **代码优化**:提供代码优化建议 - **文档生成**:生成代码文档和注释 - **设计模式推荐**:根据场景推荐合适的设计模式 ## 输入参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | language | String | 是 | 目标编程语言(Java/Python/JavaScript等) | | framework | String | 否 | 使用的框架(Spring Boot/React/Vue等) | | requirement | String | 是 | 功能需求描述 | | styleGuide | String | 否 | 编码风格指南名称 | ## 输出格式 ```json { "status": "SUCCESS", "language": "Java", "framework": "Spring Boot", "code": "生成的代码内容", "explanation": "代码解释和说明", "bestPractices": ["最佳实践1", "最佳实践2"], "improvements": [ { "issue": "问题描述", "suggestion": "改进建议", "severity": "高/中/低" } ] } ``` ## 编码流程 ``` 需求分析 → 技术选型 → 代码设计 → 代码实现 → 代码审查 → 优化改进 → 文档生成 ``` ### 详细步骤 1. **需求分析**:理解业务需求,确定实现方案 2. **技术选型**:选择合适的技术栈和框架 3. **代码设计**:设计类结构、方法签名和数据模型 4. **代码实现**:编写符合规范的代码 5. **代码审查**:检查代码质量和规范合规性 6. **优化改进**:根据审查结果进行优化 7. **文档生成**:编写代码注释和文档 ## 编码规范检查清单 | 检查项 | 说明 | 状态 | |--------|------|------| | 命名规范 | 变量、方法、类命名是否符合规范 | ✅/❌ | | 代码格式 | 缩进、空格、换行是否符合规范 | ✅/❌ | | 注释完整 | 是否有必要的注释说明 | ✅/❌ | | 异常处理 | 是否正确处理异常情况 | ✅/❌ | | 代码复用 | 是否避免重复代码 | ✅/❌ | | 性能优化 | 是否考虑性能问题 | ✅/❌ | | 安全性 | 是否存在安全隐患 | ✅/❌ | | 可测试性 | 代码是否易于测试 | ✅/❌ | ## 最佳实践指南 ### Java 编码规范 1. **命名规范**:类名使用 PascalCase,方法和变量使用 camelCase 2. **代码格式**:使用 4 空格缩进,每行不超过 120 字符 3. **注释规范**:使用 Javadoc 格式,方法必须有注释 4. **异常处理**:使用 try-with-resources,避免空 catch 块 5. **设计原则**:遵循 SOLID 原则,单一职责 ### 外部调用规范 #### 目录结构 所有外部调用相关代码必须放在 `infra` 目录下: ``` src/main/java/com/example/ ├── application/ # 应用层(业务逻辑) ├── domain/ # 领域层(业务实体) └── infra/ # 基础设施层(外部调用) ├── client/ # Remote Client 透传层 ├── proxy/ # Remote Proxy 适配层 └── adapter/ # Remote Adapter 转换层 ``` #### Remote Client 模式 **职责**:透传外部接口,不做业务逻辑处理 **命名约定**:`{ServiceName}RemoteClient` **示例**: ```java // infra/client/UserRemoteClient.java @FeignClient(name = "user-service") public interface UserRemoteClient { @GetMapping("/api/users/{id}") ResponseEntity<UserDTO> getUserById(@PathVariable Long id); @PostMapping("/api/users") ResponseEntity<UserDTO> createUser(@RequestBody CreateUserRequest request); } ``` #### Remote Proxy 模式 **职责**:对外部接口进行适配和调用,添加业务无关的通用处理 **命名约定**:`{ServiceName}RemoteProxy` **示例**: ```java // infra/proxy/UserRemoteProxy.java @Component public class UserRemoteProxy { private final UserRemoteClient userRemoteClient; private final RestTemplate restTemplate; public User getUser(Long id) { try { ResponseEntity<UserDTO> response = userRemoteClient.getUserById(id); if (response.getStatusCode().is2xxSuccessful()) { return convertToDomain(response.getBody()); } throw new RemoteServiceException("Failed to get user"); } catch (FeignException e) { log.warn("Remote call failed, fallback to cache"); return getFromCache(id); } } // 通用重试、熔断、降级处理 @Retryable(maxAttempts = 3) public User createUser(UserCreateCommand command) { // ... } } ``` #### Remote Adapter 模式 **职责**:数据转换和协议适配,将外部数据转换为领域模型 **命名约定**:`{ServiceName}RemoteAdapter` **示例**: ```java // infra/adapter/UserRemoteAdapter.java @Component public class UserRemoteAdapter { private final UserRemoteProxy userRemoteProxy; public UserDomain loadUser(Long userId) { User user = userRemoteProxy.getUser(userId); // 转换为领域模型 return UserDomain.builder() .id(user.getId()) .username(user.getUsername()) .email(user.getEmail()) .build(); } public UserDomain createUser(UserCreateDomain domain) { CreateUserRequest request = CreateUserRequest.builder() .username(domain.getUsername()) .email(domain.getEmail()) .build(); User user = userRemoteProxy.createUser(request); return convertToDomain(user); } } ``` #### 使用规范 | 层次 | 职责 | 适用场景 | |------|------|----------| | Remote Client | 透传调用,无业务逻辑 | 简单的 REST/gRPC 调用 | | Remote Proxy | 通用处理(重试、熔断、降级) | 需要容错处理的调用 | | Remote Adapter | 数据转换、协议适配 | 需要领域模型转换 | #### 调用流程 ``` Application Service → Remote Adapter → Remote Proxy → Remote Client → External Service ``` **说明**: 1. **Application Service**:业务层,调用 Adapter 2. **Remote Adapter**:数据转换,调用 Proxy 3. **Remote Proxy**:通用处理(重试、熔断),调用 Client 4. **Remote Client**:透传调用外部服务 ### Python 编码规范 1. **命名规范**:模块和函数使用 snake_case,类使用 PascalCase 2. **代码格式**:使用 4 空格缩进,每行不超过 79 字符 3. **注释规范**:使用 docstring,遵循 Google 风格 4. **类型提示**:使用类型注解提高代码可读性 5. **代码组织**:合理使用模块和包结构 ### JavaScript/TypeScript 编码规范 1. **命名规范**:变量和函数使用 camelCase,类使用 PascalCase 2. **代码格式**:使用 2 空格缩进,每行不超过 120 字符 3. **注释规范**:使用 JSDoc 格式 4. **异步处理**:使用 async/await,避免回调地狱 5. **类型安全**:TypeScript 项目严格启用类型检查 ## 核心组件 | 组件 | 职责 | 描述 | |------|------|------| | CodeGenerator | 代码生成器 | 根据需求生成代码 | | CodeAnalyzer | 代码分析器 | 分析代码质量和规范 | | PatternRecommender | 模式推荐器 | 推荐合适的设计模式 | | DocGenerator | 文档生成器 | 生成代码文档 | ## 配置要求 ### 环境变量 | 变量名 | 说明 | 默认值 | |--------|------|--------| | CODING_STYLE_GUIDE | 默认编码风格指南 | google | ### 配置文件 ```yaml coding: style-guide: google max-line-length: 120 enforce-type-hints: true ``` ## 扩展指南 ### 添加新语言支持 1. 创建对应语言的代码生成器 2. 定义该语言的编码规范规则 3. 添加代码分析和检查逻辑 ### 添加自定义规则 1. 在规则引擎中添加新规则 2. 定义规则的检查逻辑和修复建议 3. 更新编码规范检查清单 ## 触发条件
Ver no GitHub