影刀RPA完全指南:开发规范与团队协作——命名、注释、版本管理与代码审查

系列写了50多篇,内容覆盖了从入门到架构的方方面面,但有一个话题一直没系统讲过:团队协作时的开发规范。

如果你是一个人写流程,命名随便、注释不写、版本乱存,问题不大——自己记得住就行。但一旦团队有2个人以上协作,或者流程需要交给别人维护,没有规范的代码就是一场灾难。

今天把开发规范讲透:命名怎么统一、注释怎么写、版本怎么管理、代码怎么审查。适合团队协作,也适合“未来的自己”回来改代码时能看懂。


规范的价值:一个反例

假设你接手了这样一个流程:

# 变量名:a, b, c, temp, data
# 子流程名:流程1, 流程2, 新建流程3
# 没有注释
# 没有日志

picture.image

picture.image picture.image 你能看懂吗?你敢改吗?大概率不敢动,只能重写。

写规范的代码不是为了别人,是为了3个月后的你自己。

picture.image

第一部分:命名规范

1. 流程命名

picture.image

类型格式示例说明
主流程[业务名]_MainPriceMonitor_Main入口流程,只做调度
采集子流程Fetch_[数据源]Fetch_TaobaoFetch_Pinduoduo采集类

picture.image | 清洗子流程 | Clean_[数据集] | Clean_ProductData | 清洗类 | | 输出子流程 | Write_[目标] | Write_FeishuWrite_Excel | 输出类 | | 通用子流程 | Common_[功能] | Common_WaitCommon_Retry | 复用工具 | | 配置子流程 | Config_[类型] | Config_Load | 配置加载 |

picture.image

2. 变量命名

picture.image

类型格式示例说明
列表[复数名词]_listproduct_listorder_list明确是列表
字典[名词]_dictconfig_dictproduct_dict明确是字典
数字[名词]_[单位]page_numprice_value带单位说明
字符串[名词]_strkeyword_strurl_str可省略
布尔is_[状态]is_logged_inhas_next_page疑问句形式
计数器[名词]_countsuccess_counterror_count明确是计数
临时变量temp_[用途]temp_pricetemp_row明确用途
全局变量G_[变量名]G_DATA_PATHG_CONFIG大写G前缀

3. 浏览器环境命名(Profile)

[平台]_[账号标识]_[用途]
示例:
- Taobao_Main_Collect
- Pinduoduo_ShopA_Order
- Xiaohongshu_Test

4. 文件命名

文件类型格式示例
配置文件config_[用途].xlsxconfig_accounts.xlsx
输出文件[业务]_[日期].xlsxproduct_data_2026-07-01.xlsx
日志文件log_[日期].xlsxlog_2026-07-01.xlsx
截图文件error_[时间戳].pngerror_202607011030.png

第二部分:注释规范

1. 子流程文件头注释

每个子流程开头必须有注释块:

# ============================================
# 子流程:Fetch_Taobao
# 职责:从淘宝采集商品列表数据
# 输入参数:
#   - keyword: 文本类型,搜索关键词
#   - max_pages: 数字类型,最大翻页数
# 输出参数:
#   - product_list: 列表类型,采集到的商品数据
#   - status: 文本类型,"success" 或 "failed"
# 依赖子流程:
#   - Common_Wait
#   - Common_RetryClick
# 修改记录:
#   - 2026-07-01 林焱 初始版本

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/5f956920593a484b9417bebe6d5c6a96~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1783447525&x-signature=5UtTGmHRIl62NqLOuPPktDoPBSo%3D)
#   - 2026-07-15 张三 增加重试机制
# ============================================

picture.image

2. 指令块注释

每个逻辑块前加简短说明:

# ----- 1. 打开搜索页面 -----
打开网页("https://www.taobao.com")
等待元素加载("//input[@id='q']", 超时时间=10秒)

# ----- 2. 输入关键词并搜索 -----
输入文本("//input[@id='q']", keyword)
点击元素("//button[@class='search-btn']")

# ----- 3. 等待搜索结果加载 -----
等待元素加载("//div[@class='product-list']", 超时时间=10秒)

3. 复杂逻辑注释

对于容易混淆的逻辑,加上注释说明:

# 注意:这里用contains匹配class,因为class名是动态生成的
获取相似元素列表("//div[contains(@class,'product-item')]", 存入列表=items)

# 索引从0开始,写入Excel时用 idx+1 计算行号
按列表循环(items, 循环项=item, 循环索引=idx):
    excel_row = idx + 1
    # ...
结束循环

4. 不写“废话”注释

# ❌ 废话注释
# 打开网页
打开网页("https://www.baidu.com")

# ✅ 有价值注释
# 打开百度首页,用于输入搜索关键词
打开网页("https://www.baidu.com")

第三部分:流程结构规范

1. 主流程结构

主流程只做调度,不包含具体采集逻辑:

# ============================================
# 主流程:PriceMonitor_Main
# ============================================

输出日志("===== 流程开始 =====")

# 1. 加载配置
调用子流程(Config_Load)

# 2. 执行采集
调用子流程(Fetch_Taobao)
调用子流程(Fetch_Pinduoduo)

# 3. 清洗数据
调用子流程(Clean_Data)

# 4. 输出结果
调用子流程(Write_Report)
调用子流程(Send_Notification)

输出日志("===== 流程结束 =====")

2. 子流程结构

每个子流程统一结构:

1. 文件头注释
2. 进入日志
3. Try块(主体逻辑)
   - 分步骤执行
   - 关键节点加日志
4. Catch块(异常处理)
   - 记录错误
   - 截图(如果必要)
5. Finally块(收尾)
   - 关闭资源
   - 清理临时文件
6. 退出日志

3. 异常处理规范

# ✅ 分模块Try-Catch,而不是整个流程包一个Try
# 每个独立的操作单元用单独的Try

Try:
    登录操作()
Catch:
    输出日志("【错误】登录失败")
    # 登录失败通常需要停止流程
    抛出异常("登录失败")
EndTry

Try:
    采集操作()
Catch:
    输出日志("【错误】采集失败,跳过该条数据")
    # 采集失败可以继续
    继续循环
EndTry

第四部分:版本管理

1. 流程版本号

每次重大修改更新版本号:

V1.0 - 初始版本
V1.1 - 增加重试机制
V1.2 - 适配淘宝页面改版
V2.0 - 重构为模板化架构

2. 配置文件版本

# 在配置文件中加一行版本信息
配置表:
| 配置项 | 配置值 |
|--------|--------|
| config_version | 2.1 |
| last_update | 2026-07-01 |

3. 修改记录

每次修改后,在流程的注释块中记录:

# 修改记录:
#   - 2026-07-01 林焱 V1.0 初始版本
#   - 2026-07-15 张三 V1.1 增加超时重试
#   - 2026-08-01 林焱 V2.0 适配新页面结构

第五部分:代码审查清单

提交代码前,逐条确认:

流程结构

  • 子流程有文件头注释
  • 主流程只做调度,不含具体逻辑
  • 每个子流程有进入/退出日志
  • 关键操作有Try-Catch

命名

  • 子流程名符合命名规范
  • 变量名有意义(不是a/b/c/temp)
  • 浏览器环境名符合规范

注释

  • 复杂逻辑有注释说明
  • 没有“废话”注释
  • XPath有说明是捕获什么元素

可维护性

  • 敏感信息不在代码中硬编码
  • 路径使用配置文件或相对路径
  • 流程在其他电脑上能直接跑(不依赖本地特有文件)

团队协作建议

分工模式

角色职责输出
架构师设计整体架构、制定规范架构文档、规范文档
开发A采集层子流程各平台采集子流程
开发B清洗层+存储层Python清洗代码
开发C交付层看板、告警、报表
测试验证流程稳定性测试报告

协作工具

用途推荐工具
代码存储Git(流程文件是XML格式,可版本控制)
文档飞书/语雀
任务管理飞书任务/Trello
沟通企业微信/飞书

常见问题速查

问题解决方法
团队多人修改同一流程冲突用Git分支管理,每人一个分支
新人不熟悉规范把规范文档放在项目根目录
流程在其他电脑跑不起来检查路径是否用了绝对路径
不知道流程是谁写的文件头注释加作者信息

推荐资源

  • Git入门教程(网上很多)
  • 影刀官方《流程开发规范》文档
  • 本系列第36篇《流程模板化与复用策略》

#影刀RPA #RPA自动化 #开发规范 #团队协作 #代码审查

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论