Files
cmpdd/docs/03-tech-stack.md
T
chengmaandClaude Opus 4.8 2863bf2750 feat(T-001): 初始化 Python 项目骨架
- 建立 src/(main.py 最小可运行入口)、tests/(unittest 冒烟测试)、requirements.txt。
- 骨架阶段测试用标准库 unittest,零第三方依赖;pytest 留待后续按需引入。
- 文档占位符验证命令替换为真实命令(pytest -> unittest discover)。
- 同步 tasks.md(T-001 DONE)、progress.md、current-state.md。

验证:compileall OK;unittest 2 passed;python src/main.py exit=0。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 17:02:15 +08:00

4.0 KiB
Raw Blame History

技术栈(Tech Stack)

“用什么”的统一速查表。选型与理由在此集中维护;“怎么把它们搭起来”见 架构设计。 未定项必须标为待定,不要让 agent 在代码里自行决定。

一、技术栈一览

维度 选型 状态 理由 / 说明
主语言 Python 3.x 已定 与 uiautomator2、Excel 处理、桌面 GUI 衔接快。具体版本待项目初始化确认。
桌面 GUI PySide6 已定 适合 Windows 桌面程序,用户不需要部署 Web 服务。
Android 控制 ADB + uiautomator2 已定 MVP 只控制 Android 真机,开发成本低于 Appium。
Excel 处理 openpyxl 已定 读取/写入 .xlsx,适合固定表头和结果回写。
图像/截图 uiautomator2 截图能力;Pillow 待定 部分待定 MVP 先保存截图;如需图片处理再引入 Pillow。
OCR 待定 待定 MVP 不优先引入;UI XML 识别不足时再评估。
数据库 无数据库 已定 MVP 以 Excel 文件作为输入输出,避免过早引入数据库。
鉴权方式 无工具账号 已定 本地内部工具;拼多多账号由真机 App 登录态承担。
后端服务 无独立后端 已定 单机 GUI 内直接调用本地模块。
日志 Python logging 已定 保存执行日志,便于排查。
测试 标准库 unittest(当前);pytest 后续按需 已定(骨架阶段) 骨架阶段零第三方依赖,用 unittest;需参数化/夹具等能力时再按依赖纪律引入 pytest。
打包 PyInstaller 待定 MVP 稳定后打包为 Windows 可执行程序。

二、决策记录与演进

  • 当前选择 桌面 GUI,因为功能少、给运营内部使用、运行环境就是连接手机的 Windows 电脑,落地快。
  • 当前选择 uiautomator2 + ADB,因为只做 Android 真机控制,不需要 Appium 的跨平台和服务端复杂度。
  • 当前选择 Excel 输入输出,因为运营后期可直接整理历史文档,MVP 不需要数据库。
  • 当前不引入 Web 后台 / 多设备调度 / 数据库,避免第一版复杂度过高。
  • OCR、图像识别、Appium、SQLite 作为后续选项,仅在真实页面验证需要时引入。
  • T-001 骨架阶段测试先用标准库 unittest,不引入 pytest:骨架只需冒烟测试,且保持零第三方依赖、不依赖网络即可验证;待出现参数化、夹具、丰富断言等需求时再按依赖纪律引入 pytest。

三、构建与运行命令

骨架已初始化(T-001)。以下为真实命令;打包命令待 T-402 落地后确认。

用途 命令
创建虚拟环境 python -m venv .venv
激活虚拟环境 .venv\Scripts\Activate.ps1
安装依赖 pip install -r requirements.txt
本地运行 python src/main.py
测试 python -m unittest discover -s tests -t .
语法检查 python -m compileall src
打包(待 T-402) pyinstaller app.spec

Windows PowerShell:

python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python src/main.py
python -m unittest discover -s tests -t .

四、设备与环境要求

  • Windows 电脑。
  • Android 真机,已开启开发者选项和 USB 调试。
  • ADB 可用,电脑能看到设备。
  • 真机已安装拼多多 App,并已登录可下单账号。
  • 真机网络稳定,屏幕常亮或执行期间不锁屏。
  • 支付默认由运营人工确认;开启受控自动支付时,必须由配置、金额上限和二次校验控制。
  • 验证码、风控、人脸、短信等安全校验节点由运营人工处理。

五、依赖纪律

  • 新增第三方依赖前,先说明用途、替代方案和维护成本。
  • 不确定的技术选型先更新本文,再进入代码。
  • 不允许同一职责并存两套框架或两套状态管理方案。
  • 不允许为了绕过平台安全校验而引入逆向、Hook、抓包改包等依赖。