影刀RPA新手教程:流程命名规范完全指南——怎么命名变量和子流程让别人能看懂
影刀RPA新手教程流程命名规范完全指南——怎么命名变量和子流程让别人能看懂三个月前我自己写的流程今天打开来看了看完全看不懂了。变量名叫a1、a2、b3子流程叫子流程1、“子流程2”、“测试”、“新流程”。点进去一个新流程里面100多个节点到底在做什么完全不知道。那一瞬间我意识到不是代码写得不好是名字起得太烂。安装与配置命名规范的安装在脑子里命名规范不需要安装任何东西。它是一种习惯你在大脑里安装一个规则所有名字包含信息。这个规则很简单看到名字就知道它是干嘛的。不需要翻文档不需要看注释。比如一个变量叫price你知道它是价格。叫price_after_tax知道是税后价格。叫p谁也不知道是什么。案例主线重构一个混乱的流程我拿自己写过的一个商品数据采集流程来举例。这是当时的原版变量名v1、v2、v3、temp、tmp、x、y子流程名子流程1、子流程2、测试、111、aaa指令注释无你能想象三个月后打开这个项目是什么感受吗我当时的感受就是想重写。下面一步一步重构这个流程。变量命名规范从混乱到清晰先说变量。影刀里的变量可以随意命名所以特别容易乱来。改名后的对照表原变量 - 新变量名 - 说明v1 - product_name - 商品名称v2 - product_price - 商品价格temp - current_page - 当前页码tmp - total_pages - 总页数x - row_index - 当前行号y - col_index - 当前列号变量的命名规则全英文小写多个单词用下划线连接名词在前修饰词在后必须包含类型暗示price就知道是价格count就知道是计数list就知道是列表常见后缀约定_list列表类型比如product_list、url_list_dict字典类型比如config_dict、user_info_dict_url网址比如login_url、product_url_path文件路径比如excel_path、screenshot_path拼多多店群自动化上架方案_count计数比如success_count、error_count_flag标记/布尔值比如login_flag、has_next_page子流程命名规范动词在前子流程代表一个动作名字应该以动词开头。原名 - 新名 - 说明子流程1 - 登录淘宝 - 登录淘宝平台子流程2 - 采集商品列表 - 抓取商品数据测试 - 翻页 - 翻到下一页111 - 写入Excel - 把数据写到Excelaaa - 发送飞书通知 - 通知采集完成子流程命名规则以子流程_开头清楚标记这是子流程动词开头登录、采集、写入、发送、读取后面跟操作对象淘宝、商品列表、Excel、飞书通知看名字就知道它做了什么完整示例子流程_登录淘宝子流程_采集商品列表子流程_翻页子流程_写入Excel子流程_发送飞书通知网页自动化指令的注释规范每个关键的指令节点都应该有注释。在影刀里右键节点可以添加注释。注释内容写做什么不写怎么做。例子错// 使用XPath定位到用户输入框然后使用输入文本指令输入admin对输入登录用户名错// For循环从1到10每次循环获取一行的数据对循环读取10行商品数据注释的价值在于快速扫一眼就知道这段在干什么。技术细节看代码就行不需要注释重复一遍。XPath与CSS选择器元素定位的注释元素定位很容易忘。三个月后回来看一个XPath表达式经常想不起来它定位的是什么。注释示例XPath: //div[class“price-box”]/span[2]注释提取商品当前售价第二个span是折扣价第一个是原价CSS: .product-list li:nth-child(3) .product-info注释获取第三个商品的详细信息区域这样即使页面结构变了看一眼注释也知道这个节点要的是价格还是标题。流程控制判断条件的变量命名If判断里的条件变量要有问题的含义让人一看就知道在问什么。原来如果 v1 True改为如果 is_login_success True如果 has_next_page True如果 price_below_threshold Trueis_开头的变量表示是不是是/否的判断。has_开头的变量表示有没有有/无的判断。命名本身就在提问is_login_success登录成功了吗has_next_page还有下一页吗数据处理临时变量管理有些变量只是中间步骤的临时工用完就没用了。原来temp1、temp123、tmp_data应该改成有意义的临时名raw_priceOCR读到的原始价格还没清洗clean_price清洗后的价格price_text文字形式的价格page_content当前页面的内容临时变量也要有含义。temp这个词表示它是临时的但加上具体说明是什么。用完就删。Python代码块里的变量也同理# 差tGetVar(p)cfloat(t.replace(¥,))SetVar(r,c)# 好price_textGetVar(raw_price)price_numfloat(price_text.replace(¥,))SetVar(clean_price,price_num)进阶技能参数命名规范子流程的输入输出参数也要规范。输入参数命名product_url商品链接target_price目标价格max_retry_count最大重试次数timeout_seconds超时时间注意带单位特别注意涉及时间的参数一定带单位timeout_seconds、wait_ms、delay_minutes。上一个同事写的timeout是秒下一个同事以为是毫秒就崩溃了。平台实战完整重构一个流程回到开头的混乱流程完整重构一遍。TEMU店群如何管理运营原变量名全部替换为新变量名v1 - product_namev2 - product_pricetemp - current_page_indextmp - max_page_count原子流程名全部替换子流程1 - 子流程_登录平台子流程2 - 子流程_采集数据测试 - 子流程_翻页111 - 子流程_保存到Excelaaa - 子流程_发送通知每个指令节点添加注释说明当前步骤在做什么。重构完成后这套流程给一个新同事看他花了5分钟就理解了全貌。而原来的版本他自己看了半小时还没绕明白。后来我把这套规范整理了一个模板在团队内部推广。新的项目全部遵守这个命名规则代码理解的效率提升明显。在home.linyan.cloud上我也分享了这套命名规范模板。鼠标键盘与图像图像模板文件的命名截图模板文件也要有规范。不要叫1.png、“abc.png”。命名规则类型_平台_位置_描述.png示例icon_taobao_cart.png淘宝购物车图标btn_jd_submit.png京东提交按钮icon_feishu_home.png飞书首页图标放到icons文件夹下一个项目所有图标集中管理。工程化规范团队协作的约定如果你不是一个人写流程建议团队内约定好以下内容变量命名规则文档写一份命名约定的说明放在团队共享文档里。子流程命名前缀全员统一用子流程_前缀。参数命名带单位、带类型暗示。注释标准每个关键节点必须有注释。一个团队最少需要这些约定。至于具体用英文还是拼音不重要重要的是保持一致。常见报错与解决“改了变量名流程跑不起来了”影刀里改变量名后记得同步更新所有引用它的指令。最好先用查找引用功能列出所有用到这个变量的地方再逐一修改。“子流程改名后调用失效”主流程里调用子流程是通过名字匹配的。子流程改名字后主流程里所有调用它的地方都要更新。“参数名修改后传参失败”子流程改名没关系但如果改了参数名所有调用方必须同步修改传入的参数名。#影刀RPA #RPA教程 #影刀新手教程 #命名规范 #代码规范 #团队协作 #RPA工程化作者林焱