- 实际应用场景描述
在职场中,尤其是技术开发、项目管理、运营等岗位,工作中难免会出现失误,例如:
- 代码上线前未充分测试,导致生产环境故障
- 需求理解偏差,造成返工
- 沟通不及时,错过关键截止时间
- 配置错误,引发数据丢失
这些失误如果只靠记忆,很容易重复发生。复盘记录可以帮助团队沉淀经验,形成可复用的知识库。
- 痛点分析
- 记录分散:很多人用笔记软件或聊天记录,难以统一检索
- 缺乏分类:无法按项目、类型、严重程度快速查找
- 无结构化:原因、解决方案、改进措施混在一起,不便分析
- 不易分享:团队成员无法快速学习他人经验
-
核心逻辑讲解
-
数据存储:使用 JSON 文件模拟轻量级数据库(可扩展为 SQLite)
-
数据结构:
- 场景描述
- 原因分析
- 解决方案
- 改进措施
- 分类标签(如:代码、沟通、测试、部署)
- 时间戳
-
功能模块:
- 添加记录
- 查询记录(按分类、关键词)
- 列出所有记录
- 导出为 Markdown(方便分享)
-
交互方式:命令行界面(CLI)
-
模块化 Python 代码
目录结构
mistake_review/ ├── main.py ├── data_manager.py ├── utils.py └── README.md
"data_manager.py"
import json import os from datetime import datetime
DATA_FILE = "mistakes.json"
def load_data(): """加载 JSON 数据,如果不存在则初始化空列表""" if not os.path.exists(DATA_FILE): return [] with open(DATA_FILE, "r", encoding="utf-8") as f: return json.load(f)
def save_data(data): """保存数据到 JSON 文件""" with open(DATA_FILE, "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=4)
def add_mistake(record): """添加一条失误记录""" data = load_data() record["timestamp"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") data.append(record) save_data(data)
def query_by_category(category): """按分类查询记录""" data = load_data() return [r for r in data if category.lower() in [c.lower() for c in r.get("categories", [])]]
def search_by_keyword(keyword): """按关键词搜索""" data = load_data() result = [] for r in data: if (keyword.lower() in r["scenario"].lower() or keyword.lower() in r["cause"].lower() or keyword.lower() in r["solution"].lower()): result.append(r) return result
def export_to_markdown(): """导出所有记录为 Markdown 文件""" data = load_data() with open("mistakes_summary.md", "w", encoding="utf-8") as f: f.write("# 工作失误复盘记录\n\n") for idx, r in enumerate(data, 1): f.write(f"## {idx}. {r['scenario']}\n") f.write(f"- 时间: {r['timestamp']}\n") f.write(f"- 原因: {r['cause']}\n") f.write(f"- 解决方案: {r['solution']}\n") f.write(f"- 改进措施: {r['improvement']}\n") f.write(f"- 分类: {', '.join(r['categories'])}\n\n")
"utils.py"
def print_record(record): """格式化打印单条记录""" print(f"\n场景: {record['scenario']}") print(f"时间: {record['timestamp']}") print(f"原因: {record['cause']}") print(f"解决方案: {record['solution']}") print(f"改进措施: {record['improvement']}") print(f"分类: {', '.join(record['categories'])}")
"main.py"
from data_manager import * from utils import print_record
def main(): while True: print("\n=== 工作失误复盘记录系统 ===") print("1. 添加记录") print("2. 按分类查询") print("3. 关键词搜索") print("4. 查看所有记录") print("5. 导出 Markdown") print("0. 退出") choice = input("请选择操作: ").strip()
if choice == "1":
scenario = input("场景描述: ")
cause = input("原因分析: ")
solution = input("解决方案: ")
improvement = input("改进措施: ")
categories = input("分类(逗号分隔): ").split(",")
categories = [c.strip() for c in categories]
record = {
"scenario": scenario,
"cause": cause,
"solution": solution,
"improvement": improvement,
"categories": categories
}
add_mistake(record)
print("记录已添加!")
elif choice == "2":
cat = input("输入分类: ")
results = query_by_category(cat)
for r in results:
print_record(r)
elif choice == "3":
kw = input("输入关键词: ")
results = search_by_keyword(kw)
for r in results:
print_record(r)
elif choice == "4":
all_data = load_data()
for r in all_data:
print_record(r)
elif choice == "5":
export_to_markdown()
print("已导出 mistakes_summary.md")
elif choice == "0":
break
else:
print("无效选择")
if name == "main": main()
- README.md
工作失误复盘记录系统
一个轻量级的 CLI 工具,帮助职场人记录、分类、查询工作失误,形成经验库,避免重复踩坑。
功能
- 添加失误记录(场景、原因、解决方案、改进措施、分类)
- 按分类查询
- 关键词搜索
- 导出 Markdown 报告
使用方法
- 安装 Python 3.x
- 运行
python main.py - 按提示操作
数据存储
默认使用 mistakes.json 存储记录,可扩展为数据库。
-
使用说明
-
运行程序后,选择 "1" 添加记录
-
输入场景、原因、解决方案、改进措施、分类
-
使用 "2" 按分类快速查找同类问题
-
使用 "3" 搜索关键词
-
使用 "5" 导出 Markdown 分享给团队
-
核心知识点卡片
知识点 说明 JSON 数据持久化 轻量级存储,易读易写 模块化设计 分离数据管理、工具函数、主程序 列表推导式 高效过滤数据 字符串处理 "lower()"、 "split()" 用于搜索和分类 CLI 交互 "input()" 与 "print()" 实现简单交互 Markdown 导出 便于分享和文档化
- 总结
这个程序通过结构化记录 + 分类查询 + 搜索 + 导出的功能,解决了职场中失误复盘零散、难复用的问题。
它适合个人和小团队使用,后续可扩展为 Web 版或接入企业知识库系统。
如果你需要,还可以升级为 Flask Web 版本,并加上用户登录和图表统计功能,让复盘更直观。
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!