Files
codeplay/.monkeycode/specs/codeplay-conversion-platform/tasklist.md
T
monkeycode-ai a0971cf974 feat: 完成 CodePlay 项目初始化和核心解析器实现
- 创建 CodePlay 解决方案和 4 个项目 (Core, Web, CLI, Tests)
- 实现核心数据模型 (ConversionRequest, ConversionResult, Project 等)
- 实现核心接口 (IParser, IConverter, ICodeGenerator 等)
- 实现基础抽象类 BaseParser
- 实现 CSharpParser 解析器 (基于 Roslyn)
- 添加 Microsoft.CodeAnalysis.CSharp NuGet 包
- 所有代码编译通过
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-03 02:57:13 +00:00

10 KiB
Raw Blame History

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.5C# ↔ Java 转换)
  • Phase 3: Task 3.1, 3.2, 3.5C# 和 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: 文档和打包