From d260763e7aece4da0b5c84498d03177297226cdf Mon Sep 17 00:00:00 2001 From: monkeycode-ai Date: Wed, 3 Jun 2026 02:49:42 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BA=20CodePlay=20?= =?UTF-8?q?=E5=AE=9E=E6=96=BD=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8=20Co-aut?= =?UTF-8?q?hored-by:=20monkeycode-ai=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codeplay-conversion-platform/tasklist.md | 345 ++++++++++++++++++ 1 file changed, 345 insertions(+) create mode 100644 .monkeycode/specs/codeplay-conversion-platform/tasklist.md diff --git a/.monkeycode/specs/codeplay-conversion-platform/tasklist.md b/.monkeycode/specs/codeplay-conversion-platform/tasklist.md new file mode 100644 index 0000000..bbe135c --- /dev/null +++ b/.monkeycode/specs/codeplay-conversion-platform/tasklist.md @@ -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: 文档和打包