feat: 创建 CodePlay 实施任务列表
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
This commit is contained in:
@@ -0,0 +1,345 @@
|
||||
# CodePlay 代码转换平台 - 实施任务列表
|
||||
|
||||
Feature Name: codeplay-conversion-platform
|
||||
Updated: 2026-06-03
|
||||
|
||||
## Phase 1: 项目初始化
|
||||
|
||||
### Task 1.1: 创建 .NET Solution 和项目骨架
|
||||
- [ ] 创建 CodePlay.sln 解决方案文件
|
||||
- [ ] 创建 CodePlay.Core 类库项目(核心转换引擎)
|
||||
- [ ] 创建 CodePlay.Web ASP.NET Core Web API 项目
|
||||
- [ ] 创建 CodePlay.CLI 控制台应用项目
|
||||
- [ ] 创建 CodePlay.Tests 测试项目
|
||||
- [ ] 配置全局 using 和共享依赖
|
||||
- [ ] 创建解决方案级别的目录结构
|
||||
|
||||
### Task 1.2: 配置项目依赖
|
||||
- [ ] 安装 Microsoft.CodeAnalysis (Roslyn) 用于 C# 解析
|
||||
- [ ] 安装 JavaParser 或类似库用于 Java 解析
|
||||
- [ ] 安装 clang-sharp 用于 C++ 解析
|
||||
- [ ] 配置 xUnit 测试框架
|
||||
- [ ] 配置依赖注入容器
|
||||
- [ ] 创建 shared project 或 NuGet 包管理共享代码
|
||||
|
||||
### Task 1.3: 建立基础架构
|
||||
- [ ] 创建核心接口定义(IConverter, IParser, ICodeGenerator)
|
||||
- [ ] 创建基础抽象类(BaseConverter, BaseParser)
|
||||
- [ ] 创建数据模型类(ConversionRequest, ConversionResult, ConversionReport 等)
|
||||
- [ ] 创建枚举类型(LanguageType, ProjectStatus, ConversionStatus)
|
||||
- [ ] 配置日志系统(Serilog)
|
||||
- [ ] 配置异常处理中间件
|
||||
|
||||
## Phase 2: 核心转换引擎
|
||||
|
||||
### Task 2.1: 实现 C# 解析器
|
||||
- [ ] 使用 Roslyn 实现 C# 源代码解析
|
||||
- [ ] 生成 C# AST(抽象语法树)
|
||||
- [ ] 提取类、方法、属性、字段等语法元素
|
||||
- [ ] 保留注释和文档字符串
|
||||
- [ ] 编写 C# 解析器单元测试
|
||||
|
||||
### Task 2.2: 实现 Java 解析器
|
||||
- [ ] 集成 JavaParser 库
|
||||
- [ ] 实现 Java 源代码解析
|
||||
- [ ] 生成 Java AST
|
||||
- [ ] 提取语法元素并保留注释
|
||||
- [ ] 编写 Java 解析器单元测试
|
||||
|
||||
### Task 2.3: 实现 C++ 解析器
|
||||
- [ ] 集成 clang-sharp 库
|
||||
- [ ] 实现 C++ 源代码解析
|
||||
- [ ] 生成 C++ AST
|
||||
- [ ] 提取语法元素并保留注释
|
||||
- [ ] 编写 C++ 解析器单元测试
|
||||
|
||||
### Task 2.4: 实现 C# → Java 转换器
|
||||
- [ ] 基于 com.aspose.ms.jdk.NetFramework 类库设计转换策略
|
||||
- [ ] 实现类型映射(C# → Java)
|
||||
- [ ] 实现语法节点转换
|
||||
- [ ] 处理 LINQ 转 Stream API(保留 + TODO)
|
||||
- [ ] 处理 async/await 转 CompletableFuture(保留 + TODO)
|
||||
- [ ] 实现文档注释转换(XML Doc → JavaDoc)
|
||||
- [ ] 编写集成测试
|
||||
|
||||
### Task 2.5: 实现 Java → C# 转换器
|
||||
- [ ] 实现类型映射(Java → C#)
|
||||
- [ ] 实现语法节点转换
|
||||
- [ ] 处理 Stream API 转 LINQ(保留 + TODO)
|
||||
- [ ] 处理 CompletableFuture 转 async/await(保留 + TODO)
|
||||
- [ ] 实现文档注释转换(JavaDoc → XML Doc)
|
||||
- [ ] 编写集成测试
|
||||
|
||||
### Task 2.6: 实现 C# ↔ C++ 转换器
|
||||
- [ ] 实现 C# → C++ 类型映射
|
||||
- [ ] 实现 C++ → C# 类型映射
|
||||
- [ ] 处理泛型转模板(保留 + TODO)
|
||||
- [ ] 处理垃圾回收 vs 手动内存管理(添加 TODO 说明)
|
||||
- [ ] 处理 unsafe 代码和指针(添加 TODO 警告)
|
||||
- [ ] 编写集成测试
|
||||
|
||||
### Task 2.7: 实现 Java ↔ C++ 转换器
|
||||
- [ ] 实现 Java → C++ 类型映射
|
||||
- [ ] 实现 C++ → Java 类型映射
|
||||
- [ ] 处理 JNI 相关代码(保留 + TODO)
|
||||
- [ ] 处理异常模型差异
|
||||
- [ ] 编写集成测试
|
||||
|
||||
### Task 2.8: 实现不可转换语法处理
|
||||
- [ ] 创建 TODO 生成器
|
||||
- [ ] 实现原代码逻辑解析
|
||||
- [ ] 生成操作建议和替代方案
|
||||
- [ ] 实现注释保留机制
|
||||
- [ ] 创建不可转换语法知识库
|
||||
- [ ] 编写测试用例
|
||||
|
||||
## Phase 3: 编译验证引擎
|
||||
|
||||
### Task 3.1: 实现 C# 编译验证
|
||||
- [ ] 集成 Roslyn 编译器 API
|
||||
- [ ] 实现 C# 代码编译检查
|
||||
- [ ] 捕获编译错误和警告
|
||||
- [ ] 支持 .NET 版本选择
|
||||
- [ ] 编写编译器接口测试
|
||||
|
||||
### Task 3.2: 实现 Java 编译验证
|
||||
- [ ] 集成 javac 或 Eclipse JDT
|
||||
- [ ] 实现 Java 代码编译检查
|
||||
- [ ] 捕获编译错误和警告
|
||||
- [ ] 支持 Java 版本选择
|
||||
- [ ] 编写编译器接口测试
|
||||
|
||||
### Task 3.3: 实现 C++ 编译验证
|
||||
- [ ] 集成 MSVC/GCC/Clang 编译器
|
||||
- [ ] 实现 C++ 代码编译检查
|
||||
- [ ] 捕获编译错误和警告
|
||||
- [ ] 支持 C++ 标准版本选择
|
||||
- [ ] 编写编译器接口测试
|
||||
|
||||
### Task 3.4: 实现自动修复引擎
|
||||
- [ ] 分析常见编译错误模式
|
||||
- [ ] 实现第 1 轮修复(导入/using 语句)
|
||||
- [ ] 实现第 2 轮修复(类型映射)
|
||||
- [ ] 实现第 3 轮修复(API 调用替换)
|
||||
- [ ] 创建错误 - 修复映射表
|
||||
- [ ] 编写自动修复测试
|
||||
|
||||
### Task 3.5: 实现验证流水线
|
||||
- [ ] 实现 1-3 轮验证控制逻辑
|
||||
- [ ] 集成编译器和修复引擎
|
||||
- [ ] 实现验证结果聚合
|
||||
- [ ] 生成验证报告
|
||||
- [ ] 编写端到端验证测试
|
||||
|
||||
## Phase 4: Web 界面
|
||||
|
||||
### Task 4.1: 创建 ASP.NET Core Web API
|
||||
- [ ] 配置 ASP.NET Core Web 项目
|
||||
- [ ] 实现转换控制器(ConversionController)
|
||||
- [ ] 实现项目控制器(ProjectController)
|
||||
- [ ] 实现文件上传接口
|
||||
- [ ] 实现 API 文档(Swagger/OpenAPI)
|
||||
- [ ] 配置 CORS
|
||||
|
||||
### Task 4.2: 实现 API 认证
|
||||
- [ ] 实现 API Key 认证中间件
|
||||
- [ ] 创建 API Key 管理和存储
|
||||
- [ ] 实现访问控制和限流
|
||||
- [ ] 实现请求日志记录
|
||||
- [ ] 编写认证测试
|
||||
|
||||
### Task 4.3: 创建前端项目(Blazor/React)
|
||||
- [ ] 选择前端框架(推荐 Blazor Server)
|
||||
- [ ] 创建前端项目结构
|
||||
- [ ] 配置与后端的 API 连接
|
||||
- [ ] 实现路由和导航
|
||||
- [ ] 创建共享组件库
|
||||
|
||||
### Task 4.4: 实现代码编辑器组件
|
||||
- [ ] 集成 Monaco Editor 或 CodeMirror
|
||||
- [ ] 实现语法高亮(C#、Java、C++)
|
||||
- [ ] 实现代码补全
|
||||
- [ ] 实现错误提示
|
||||
- [ ] 实现代码格式化
|
||||
|
||||
### Task 4.5: 实现转换界面
|
||||
- [ ] 创建语言选择器组件
|
||||
- [ ] 创建配置面板(验证轮次、选项)
|
||||
- [ ] 实现转换触发按钮
|
||||
- [ ] 实现进度显示
|
||||
- [ ] 实现转换结果展示
|
||||
|
||||
### Task 4.6: 实现代码对比视图
|
||||
- [ ] 集成 Diff 库(如 diff-match-patch)
|
||||
- [ ] 实现并排对比视图
|
||||
- [ ] 实现差异高亮
|
||||
- [ ] 实现逐行对比模式
|
||||
- [ ] 实现差异统计显示
|
||||
|
||||
### Task 4.7: 实现项目管理界面
|
||||
- [ ] 创建项目列表页面
|
||||
- [ ] 实现项目创建表单
|
||||
- [ ] 实现项目详情页面
|
||||
- [ ] 实现转换历史查看
|
||||
- [ ] 实现项目导出功能
|
||||
|
||||
## Phase 5: CLI 工具
|
||||
|
||||
### Task 5.1: 实现命令行解析
|
||||
- [ ] 集成 System.CommandLine 或 CommandLineParser
|
||||
- [ ] 定义命令和参数
|
||||
- [ ] 实现 --help 帮助文档
|
||||
- [ ] 实现参数验证
|
||||
- [ ] 实现配置解析
|
||||
|
||||
### Task 5.2: 实现文件处理
|
||||
- [ ] 实现单文件转换命令
|
||||
- [ ] 实现目录递归转换
|
||||
- [ ] 实现文件类型过滤
|
||||
- [ ] 实现输出路径配置
|
||||
- [ ] 实现文件编码处理
|
||||
|
||||
### Task 5.3: 实现批量转换
|
||||
- [ ] 实现并发转换控制
|
||||
- [ ] 实现进度显示
|
||||
- [ ] 实现转换汇总报告
|
||||
- [ ] 实现错误汇总
|
||||
- [ ] 实现性能统计
|
||||
|
||||
### Task 5.4: 实现 CLI 配置
|
||||
- [ ] 创建全局配置文件格式(JSON)
|
||||
- [ ] 实现配置读取和写入
|
||||
- [ ] 实现环境变量支持
|
||||
- [ ] 实现默认值管理
|
||||
- [ ] 编写 CLI 配置测试
|
||||
|
||||
## Phase 6: 报告服务
|
||||
|
||||
### Task 6.1: 实现转换报告生成
|
||||
- [ ] 设计报告数据结构
|
||||
- [ ] 实现转换统计计算
|
||||
- [ ] 实现问题分类和聚合
|
||||
- [ ] 实现 TODO 列表生成
|
||||
- [ ] 生成 JSON 格式报告
|
||||
|
||||
### Task 6.2: 实现报告展示
|
||||
- [ ] 实现报告 HTML 模板
|
||||
- [ ] 实现 Web 界面报告组件
|
||||
- [ ] 实现报告导出(PDF、Markdown)
|
||||
- [ ] 实现报告历史记录
|
||||
- [ ] 编写报告相关测试
|
||||
|
||||
## Phase 7: 存储和持久化
|
||||
|
||||
### Task 7.1: 实现项目存储
|
||||
- [ ] 设计项目数据库模式
|
||||
- [ ] 使用 SQLite 或 LiteDB 存储项目信息
|
||||
- [ ] 实现 CRUD 操作
|
||||
- [ ] 实现查询和过滤
|
||||
- [ ] 编写数据访问测试
|
||||
|
||||
### Task 7.2: 实现代码文件存储
|
||||
- [ ] 设计代码文件存储结构
|
||||
- [ ] 实现源代码存储
|
||||
- [ ] 实现转换结果存储
|
||||
- [ ] 实现文件版本管理
|
||||
- [ ] 实现存储清理策略
|
||||
|
||||
### Task 7.3: 实现配置存储
|
||||
- [ ] 实现用户配置持久化
|
||||
- [ ] 实现项目配置存储
|
||||
- [ ] 实现转换规则配置
|
||||
- [ ] 实现配置导入导出
|
||||
- [ ] 编写配置存储测试
|
||||
|
||||
## Phase 8: 错误处理和日志
|
||||
|
||||
### Task 8.1: 实现全局错误处理
|
||||
- [ ] 实现全局异常中间件
|
||||
- [ ] 实现错误响应格式统一
|
||||
- [ ] 实现错误码定义
|
||||
- [ ] 实现错误日志记录
|
||||
- [ ] 编写错误处理测试
|
||||
|
||||
### Task 8.2: 实现详细日志系统
|
||||
- [ ] 配置 Serilog 日志框架
|
||||
- [ ] 实现结构化日志
|
||||
- [ ] 实现日志级别配置
|
||||
- [ ] 实现日志文件轮转
|
||||
- [ ] 实现日志查询和分析
|
||||
|
||||
### Task 8.3: 实现用户友好的错误提示
|
||||
- [ ] 设计错误消息模板
|
||||
- [ ] 实现错误消息国际化
|
||||
- [ ] 实现错误恢复建议
|
||||
- [ ] 实现错误详情链接
|
||||
- [ ] 编写错误提示测试
|
||||
|
||||
## Phase 9: 测试和质量保证
|
||||
|
||||
### Task 9.1: 建立测试用例库
|
||||
- [ ] 收集中介语言示例代码
|
||||
- [ ] 创建测试用例目录结构
|
||||
- [ ] 实现测试用例加载器
|
||||
- [ ] 实现测试结果验证器
|
||||
- [ ] 创建回归测试集
|
||||
|
||||
### Task 9.2: 实现端到端测试
|
||||
- [ ] 实现 Web API 集成测试
|
||||
- [ ] 实现 CLI 工具集成测试
|
||||
- [ ] 实现前端界面 E2E 测试(Playwright)
|
||||
- [ ] 实现性能基准测试
|
||||
- [ ] 实现稳定性测试
|
||||
|
||||
### Task 9.3: 代码质量检查
|
||||
- [ ] 配置代码分析规则
|
||||
- [ ] 配置代码风格检查
|
||||
- [ ] 运行单元测试覆盖率检查
|
||||
- [ ] 修复所有警告
|
||||
- [ ] 进行代码审查
|
||||
|
||||
## Phase 10: 部署和文档
|
||||
|
||||
### Task 10.1: 创建用户文档
|
||||
- [ ] 编写用户手册
|
||||
- [ ] 创建快速入门指南
|
||||
- [ ] 编写 API 参考文档
|
||||
- [ ] 创建常见问题解答
|
||||
- [ ] 录制使用演示视频
|
||||
|
||||
### Task 10.2: 创建开发者文档
|
||||
- [ ] 编写架构说明文档
|
||||
- [ ] 创建贡献指南
|
||||
- [ ] 编写代码规范文档
|
||||
- [ ] 创建扩展开发指南
|
||||
- [ ] 维护更新日志
|
||||
|
||||
### Task 10.3: 打包和发布
|
||||
- [ ] 创建 NuGet 包(Core 库)
|
||||
- [ ] 创建自包含 CLI 可执行文件
|
||||
- [ ] 创建 Docker 镜像(Web 服务)
|
||||
- [ ] 编写安装脚本
|
||||
- [ ] 发布到 GitHub Releases
|
||||
|
||||
---
|
||||
|
||||
## 实施优先级
|
||||
|
||||
**高优先级**(MVP):
|
||||
- Phase 1: 项目初始化
|
||||
- Phase 2: Task 2.1, 2.4, 2.5(C# ↔ Java 转换)
|
||||
- Phase 3: Task 3.1, 3.2, 3.5(C# 和 Java 验证)
|
||||
- Phase 4: Task 4.1, 4.3(基础 API 和前端)
|
||||
- Phase 5: Task 5.1, 5.2(基础 CLI)
|
||||
|
||||
**中优先级**:
|
||||
- Phase 2: 剩余转换器
|
||||
- Phase 4: 剩余前端功能
|
||||
- Phase 5: 高级 CLI 功能
|
||||
- Phase 6: 报告服务
|
||||
- Phase 8: 错误处理
|
||||
|
||||
**低优先级**:
|
||||
- Phase 7: 存储持久化(可先用文件系统)
|
||||
- Phase 9: 高级测试
|
||||
- Phase 10: 文档和打包
|
||||
Reference in New Issue
Block a user