plan_execute/README.md

96 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Todo Manager - C++ 命令行版
将 Python Todo ManagerPyQt5 桌面版)转换为 C++ 命令行工程。
保留核心业务能力:任务创建、查询、更新、删除,以及 JSON 文件持久化。
## 技术栈
- **语言**: C++17
- **构建工具**: CMake 3.14+
- **持久化**: 纯手写简易 JSON 解析器(零外部依赖)
- **测试**: 标准库 `assert`(零外部依赖)
## 工程结构
```
codegen-runs/codegen_9ecc529e4d094130b0491b9d389ef836/
├── CMakeLists.txt # CMake 构建配置
├── README.md # 本文件
├── include/
│ └── app.hpp # TodoItem / TodoService 公开声明
├── src/
│ ├── app.cpp # TodoService 实现 + JSON 解析器
│ └── main.cpp # 命令行交互入口
├── tests/
│ └── basic_test.cpp # 单元测试assert
└── todos.json # 运行时自动生成的数据文件
```
## 本地编译与运行
### 前置条件
- CMake 3.14 或更高版本
- 支持 C++17 的编译器GCC 7+、Clang 5+、MSVC 2019+
### 编译步骤
```bash
cd codegen-runs/codegen_9ecc529e4d094130b0491b9d389ef836
mkdir -p build && cd build
cmake ..
cmake --build .
```
### 运行主程序
```bash
# Linux / macOS
./todo_manager
# Windows
todo_manager.exe
```
程序启动后显示交互菜单:
```
===== Todo Manager =====
1. 列出所有任务
2. 添加任务
3. 编辑任务
4. 删除任务
5. 退出
请选择 (1-5):
```
### 运行测试
```bash
# 在 build 目录下
./basic_test
```
测试通过时会输出:
```
✓ test_create_and_list passed
✓ test_get_by_id passed
✓ test_update passed
✓ test_delete passed
✓ test_persistence passed
✓ ✓ ✓ 所有测试通过!
```
## 与 Python 原版的差异
| 特性 | Python 原版 | C++ 版 |
|---------------------|-------------------------------|--------------------------------|
| 用户界面 | PyQt5 桌面窗口 | 命令行交互菜单 |
| 数据校验 | Pydantic BaseModel | C++ 结构体 + 运行时检查 |
| JSON 解析 | 标准库 json 模块 | 手写简易递归下降解析器 |
| 测试框架 | pytest + httpx | 标准库 assert |
| 持久化文件 | todos.json | todos.json格式兼容 |
| 外部依赖 | PyQt5, Pydantic, pytest, httpx | **零外部依赖** |