Files
golang/golang-learning/10-projects/02-todo-list/README.md
2025-08-24 13:01:09 +08:00

3.0 KiB

待办事项列表项目

这是一个命令行待办事项管理程序,演示了 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 语言特性:

  1. 结构体和方法: 定义任务和管理器结构体
  2. 接口设计: 定义存储和界面接口
  3. JSON 处理: 数据序列化和反序列化
  4. 文件操作: 读写 JSON 文件进行数据持久化
  5. 错误处理: 完善的错误处理机制
  6. 字符串处理: 命令解析和文本处理
  7. 切片操作: 任务列表的增删改查
  8. 时间处理: 任务创建和修改时间
  9. 包管理: 多包项目结构
  10. 用户交互: 命令行输入输出
  11. 测试: 单元测试和集成测试

扩展建议

  1. 添加任务分类和标签功能
  2. 支持任务截止日期和提醒
  3. 实现任务导入导出功能
  4. 添加任务优先级排序
  5. 支持批量操作
  6. 实现 Web 界面
  7. 添加任务统计图表
  8. 支持多用户管理
  9. 集成云端同步
  10. 添加任务模板功能