a0971cf974
- 创建 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>
10 KiB
10 KiB
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: 文档和打包