流程写多了你就会发现,写得快的流程不一定好维护,写得规范的流程才能陪你走得更远。 我曾经接手过一个离职同事留下的流程,变量名叫a、b、c,注释一行没有,子流程文件名是“新建流程1”“新建流程2”。改一个功能花了整整两天,比重新写还费劲。
这篇文章不是给大厂程序员看的规范文档,而是我作为一个非技术人员,在实际工作中摸索出来的实用规范。每一条都是踩过坑之后的经验,适合单人开发也适合小团队协作。
为什么需要开发规范?三个真实场景
场景一:流程跑得好好的,改一个参数就全崩了
原因:流程里的关键数值(超时时间、等待时长、重试次数)全部写死在指令参数里,没有统一管理。改一个地方漏了其他地方,流程就出问题。
场景二:一个月前写的流程,现在看不懂了
原因:变量命名随意,注释几乎没有。看到a = 获取元素文本(元素1),完全想不起来a存的是商品标题还是店铺名称。
场景三:两个子流程拼在一起,参数对不上
原因:子流程的输入输出参数没有文档记录,全靠调用的时候现看。A子流程输出的列表是[标题, 价格, 销量],B子流程期待的是[标题, 价格, 链接],拼在一起全乱套。
这些问题都能靠一套简单的开发规范来解决。下面从命名约定、指令配置、注释规范、版本管理四个维度展开。
命名约定(变量、流程、子流程、元素库)
变量命名规则
核心原则:让变量名自己能说话,看名字就知道存的是什么。
| 类型 | 命名规则 | 示例 | 说明 |
|---|
| 字符串 | 小写+下划线,描述性名称 |
product_title、shop_name、search_keyword | 清晰描述内容 |
| 数字 | 同上,加_count/_num后缀 | page_count、retry_num、total_items | 一眼看出是数字 |
| 列表 | 同上,加_list后缀 | url_list、data_list、keyword_list | 表示这是列表类型 |
| 字典 | 同上,加_dict后缀 | product_dict、config_dict | 表示这是字典类型 |
| 布尔值 | 同上,用is/has/can开头 | is_logged_in、has_next_page、can_retry | 布尔值用疑问句式 |
| 临时变量 | 加
_temp前缀或后缀 | temp_price、temp_title、_temp_list | 用完即弃的数据 |
| 循环变量 | 单字母或简短名称 | i、j、item、url | 只在循环内部使用 |
错误示例 vs 正确示例:
❌ a = 获取元素文本(商品标题)
✅ product_title = 获取元素文本(商品标题)
❌ list1 = 读取Excel数据()
✅ keyword_list = 读取Excel数据()
❌ flag = True
✅ is_login_valid = True
流程文件命名规则
| 类型 | 命名规则 | 示例 |
|---|---|---|
| 主流程 | MAIN_业务名称 | MAIN_拼多多商品采集 |
| 子流程 | S模块编号_功能描述 | S02_01_采集_商品列表页 |
| 测试流程 | TEST_测试内容 | TEST_价格清洗函数 |
| 模板流程 | TPL_模板名称 | TPL_翻页采集模板 |
| 废弃流程 | OLD_原名称_日期 | OLD_商品采集_20251201 |
元素库命名规则
元素库里的元素多了以后,不命名根本找不到。我的规则是:平台_页面_功能_版本。
拼多多_首页_搜索框

拼多多_详情页_商品标题
拼多多_详情页_加入购物车按钮
小红书_搜索结果_笔记卡片
小红书_详情页_点赞数
这样按平台分组,在元素库里搜索“拼多多_”就能列出所有相关元素。
子流程参数命名规则
入参加前缀in_,出参加前缀out_,一目了然。
输入参数:in_url、in_keyword、in_max_pages
输出参数:out_data_list、out_success、out_error_msg
指令配置规范(让流程可维护)
规范一:所有数值类参数用变量代替字面量
错误写法:
等待时间:5(秒)
超时时间:15(秒)

循环次数:20(次)
正确写法:
等待时间:WAIT_TIME_SHORT
超时时间:TIMEOUT_DEFAULT
循环次数:MAX_PAGES
在主流程开头统一初始化这些变量:
# 配置参数初始化
WAIT_TIME_SHORT = 3(秒)
WAIT_TIME_MEDIUM = 5(秒)
TIMEOUT_DEFAULT = 15(秒)
TIMEOUT_LONG = 30(秒)
MAX_PAGES = 20(页)
MAX_RETRY = 3(次)
这样如果要调整超时时间,只需要改一个地方,所有用到该时间的指令自动生效。
变量集中管理的进阶做法:
把配置参数单独放在一个Excel或配置文件中(比如config.xlsx),主流程启动时先读取配置文件加载所有参数。这样修改配置不需要打开流程文件,运营人员也能操作。
规范二:每条关键指令加注释
影刀RPA的每条指令右侧都有一个“备注”输入框。利用好这个功能:
指令:获取元素文本
备注:# 取商品标题,用于后续写入Excel
指令:点击元素
备注:# 点击“下一页”按钮,翻页采集
指令:写入行数据到表格
备注:# 写入一条商品数据,列顺序:标题/价格/销量/店铺
规范三:流程分块用注释块做分隔
当流程超过50步时,建议用注释块做视觉分隔:
========================================
# 模块一:登录与登录态检查
========================================
(登录相关指令)
========================================
# 模块二:关键词搜索
========================================
(搜索相关指令)
========================================
# 模块三:翻页采集
========================================
(采集相关指令)
========================================
# 模块四:数据写入
========================================
(写入相关指令)
这样滚动查看流程时能快速定位到目标模块。
注释规范(给未来的自己和别人看)
流程文件头注释
每个流程文件的顶部,加一段文件头注释:
================================================
流程名称:MAIN_拼多多商品采集
功能描述:根据关键词列表采集拼多多商品数据,包含列表页采集和详情页价格采集
创建人:林焱
创建日期:2026-01-06
最后修改:2026-01-06
版本号:v2.3
依赖子流程:S02_01、S02_02、S05_01、S04_01
注意事项:需要配置代理IP;建议凌晨执行;最大采集页数20页
================================================
子流程文件头注释
子流程的文件头注释要更详细,因为它是被多个地方调用的:
================================================
子流程名称:S02_02_采集_商品详情页
功能描述:采集单个商品详情页的完整数据
创建人:林焱
创建日期:2026-01-06
版本号:v1.2
输入参数:
- in_url(字符串,必填):商品详情页URL
- in_timeout(数字,可选,默认15秒):超时时间
输出参数:
- out_data(列表):[标题, 价格, 详情, 规格, 店铺名]
- out_success(布尔值):采集是否成功
- out_error(字符串):失败时的错误信息
依赖指令:无
修改记录:
- v1.0 2026-01-06:初始版本
- v1.1 2026-01-10:优化了价格XPath,兼容券后价
- v1.2 2026-01-15:增加了规格采集
================================================
复杂XPath的注释
XPath表达式本身就很抽象,如果不加注释,过两周你自己都看不懂。
# 捕获元素:拼多多商品价格
# 定位策略:先找class包含price的容器,再取其中的数字部分
//*[contains(@class,"price")]//span[contains(@class,"value")]
# 捕获元素:小红书点赞数
# 定位策略:通过点赞图标的父级容器定位,取子元素的文本
//*[contains(@class,"like-wrapper")]//span[contains(@class,"count")]
# 捕获元素:下一页按钮(兼容有/无disabled状态)
# 定位策略:取class包含next或pagination的按钮,过滤掉disabled的
//*[contains(@class,"next") and not(@disabled)] | //*[contains(@class,"pagination") and not(@disabled)]
版本管理策略(小团队够用版)
不需要用Git那么复杂的东西,小团队用这套简单版本管理就够用了。
版本号规则
v主版本.次版本.修订号
- 主版本号:流程架构大改,参数接口不兼容(如把采集字段从5个改成10个)
- 次版本号:新增功能,但向后兼容(如增加了一个新的清洗步骤)
- 修订号:Bug修复、小优化(如调整了某个等待时间)
版本记录表
在项目文件夹里放一个版本记录.xlsx:
| 日期 | 版本 | 流程名 | 修改内容 | 修改人 |
|---|---|---|---|---|
| 2026-01-06 | v2.3 | MAIN_拼多多商品采集 | 增加价格清洗函数 | 林焱 |
| 2026-01-10 | v2.2 | MAIN_拼多多商品采集 | 修复翻页超时问题 | 林焱 |
| 2026-01-05 | v2.1 | S02_01_采集_商品列表页 | 优化XPath兼容性 | 林焱 |
文件备份策略
每次发布新版本前,把当前流程复制一份,文件名加上旧版本号:
拼多多商品采集_v2.2.bak
拼多多商品采集_v2.1.bak
保留最近3个版本即可,更早的可以删掉或归档到备份文件夹。
开发规范速查表
| 检查项 | 要求 | 检查结果 |
|---|---|---|
| 变量命名 | 用描述性名称,带类型后缀 | ☐ |
| 数值参数 | 用变量代替字面量 | ☐ |
| 关键指令 | 加备注说明 | ☐ |
| 流程分块 | 用注释块分隔 | ☐ |
| 文件头注释 | 包含功能、作者、日期、版本 | ☐ |
| 子流程头注释 | 包含参数说明和修改记录 | ☐ |
| 元素库命名 | 平台_页面_功能 | ☐ |
| 版本号 | 遵循v主.次.修格式 | ☐ |
| 版本记录 | 有Excel记录表 | ☐ |
推荐资源
- 影刀官方-开发规范文档:影刀官方有一套流程开发规范建议,在官网学习中心可以找到,比本文更详细。
- 飞书/钉钉流程管理表模板:建议用飞书多维表格或钉钉文档建一个“流程管理表”,记录所有主流程和子流程的基本信息,方便团队成员查询。
#影刀RPA #RPA自动化 #开发规范 #流程规范 #版本管理 #命名约定
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
