待办事项列表项目
这是一个命令行待办事项管理程序,演示了 Go 语言在数据持久化、文件操作和用户交互方面的应用。
项目特性
- 添加、删除、修改待办事项
- 标记任务完成状态
- 按优先级和状态筛选任务
- 数据持久化到 JSON 文件
- 彩色命令行界面
- 任务搜索功能
- 统计信息显示
项目结构
02-todo-list/
├── README.md # 项目说明文档
├── main.go # 主程序入口
├── todo/ # 待办事项核心包
│ ├── todo.go # 待办事项数据结构
│ ├── manager.go # 任务管理器
│ └── storage.go # 数据存储
├── ui/ # 用户界面包
│ ├── cli.go # 命令行界面
│ └── colors.go # 颜色输出
├── data/ # 数据文件目录
│ └── todos.json # 任务数据文件
└── todo_test.go # 测试文件
运行方法
# 进入项目目录
cd 10-projects/02-todo-list
# 运行程序
go run main.go
# 或者编译后运行
go build -o todo main.go
./todo
使用示例
=== 待办事项管理器 ===
命令列表:
add <任务> - 添加新任务
list - 显示所有任务
done <ID> - 标记任务完成
delete <ID> - 删除任务
edit <ID> <新内容> - 编辑任务
search <关键词> - 搜索任务
stats - 显示统计信息
help - 显示帮助
quit - 退出程序
> add 学习Go语言
✅ 任务已添加: 学习Go语言 (ID: 1)
> add 完成项目文档
✅ 任务已添加: 完成项目文档 (ID: 2)
> list
📋 待办事项列表:
[1] ⏳ 学习Go语言 (优先级: 中)
[2] ⏳ 完成项目文档 (优先级: 中)
> done 1
✅ 任务已完成: 学习Go语言
> list
📋 待办事项列表:
[1] ✅ 学习Go语言 (优先级: 中)
[2] ⏳ 完成项目文档 (优先级: 中)
> stats
📊 统计信息:
总任务数: 2
已完成: 1
待完成: 1
完成率: 50.0%
学习要点
这个项目综合运用了以下 Go 语言特性:
- 结构体和方法: 定义任务和管理器结构体
- 接口设计: 定义存储和界面接口
- JSON 处理: 数据序列化和反序列化
- 文件操作: 读写 JSON 文件进行数据持久化
- 错误处理: 完善的错误处理机制
- 字符串处理: 命令解析和文本处理
- 切片操作: 任务列表的增删改查
- 时间处理: 任务创建和修改时间
- 包管理: 多包项目结构
- 用户交互: 命令行输入输出
- 测试: 单元测试和集成测试
扩展建议
- 添加任务分类和标签功能
- 支持任务截止日期和提醒
- 实现任务导入导出功能
- 添加任务优先级排序
- 支持批量操作
- 实现 Web 界面
- 添加任务统计图表
- 支持多用户管理
- 集成云端同步
- 添加任务模板功能