【测开方法论】当老功能代码命名不规范的时候...如何安全增加新功能

简介: 【测开方法论】当老功能代码命名不规范的时候...如何安全增加新功能

 在我们开发一个大型代码项目的时候,总是会遇到下面这种头疼情况:

   小王是一家公司的测试开发人员,领导要求他开发一个可以支持A端自动化测试的测试平台。

   于是小王很快便搞定了这个自动化平台,只是代码中的很多变量,命名都是如下:

   比如

   进入脚本列表的url:/scriptList/

   进入环境变量设置页面的url:/set_A_Detail/

   进入元素库的url:/objects_A/

   项目库表名:DB_Project

   ...

   这种命名乍一看没有什么问题,直到有一天,领导要求小王在这个自动化平台上新增B端的自动化业务。

   小王打开代码一看,傻眼了,因为之前的这些A端代码变量命名并不规范,有的直接用了公共名,有的中间包含A,后缀A... 如果增加了B端业务,那么B端要怎么命名才能不冲突呢?

   小王想过重构更改A端整个代码,把所有变量命名全部规范,不过这样做的代价太大了,bug一定很多,甚至让本来没问题的A端瘫痪;如果B端直接取新名呢?比如项目库表名叫DB_Objects? 到时候别人一看,谁能知道 DB_Project是A端的表,DB_Objects是B端表?;如果全部按照一个规则,就是都增加后缀_B呢?那也看起来怪怪的,难道/set_A_Detail/ 要改为 /set_A_Detail_B/ ? 这显然也是不对的,总之,按照单一的规则已经行不通了。

   事已至此,多说无益,要怪就只能怪一开始的时候,没想到这个平台要承担多端的业务,以为只有A端,于是命名就没有太严格。

   于是,小王苦思冥想终于想到了一个好办法:既然没有条件重构,再考虑到今后可能会有C,D,E等等端业务,那就可以创建一个新功能的命名修改规范即可。

   规范中对各种情况名称做了严格的要求:

   1. 旧名不包含端名的,比如/scriptList/ ,DB_Project ,新功能要全部后缀端名,变为:/scriptList_B/ ,DB_Project_B ,以后只要看到没有后缀的,就可以认定为最早的A端业务代码。

   2. 旧名中包含端名的,比如/set_A_Detail/ ,/objects_A/  ,全部把端名进行更改,位置和大小写不变,变为:/set_B_Detail/ ,/objects_B/  。

   

   这样,在庞大的代码项目开发后,严格按照这个复合规则去改名,直到最终上线都没有出现bug。大大加快了研发新功能速度。

   比如你A后端的scriptList,复制代码为新功能后,B后端按照规则就改为scriptList_B。然后写到B前端的时候,你忘记了B后端的名称,找起来太麻烦,直接看看A前端的复制粘贴的代码是scriptList接口调用,那按照规则,B后端就一定是scriptList_B,直接改就行,而不需要去查B后端了。

   好,本节分享到此结束,祝大家吸收哦~

相关文章
|
存储 数据采集 NoSQL
收藏!一张图帮你快速建立大数据知识体系
对海量数据进行存储、计算、分析、挖掘处理需要依赖一系列的大数据技术,而大数据技术又涉及了分布式计算、高并发处理、高可用处理、集群、实时性计算等,可以说是汇集了当前 IT 领域热门流行的 IT 技术。本文对大数据技术知识体系进行划分,共分为基础技术、数据采集、数据传输、数据组织集成、数据应用、数据治理,进行相关的阐述说明,并列出目前业界主流的相关框架、系统、数据库、工具等。(文末福利:下载大数据知识体系图)
18669 3
收藏!一张图帮你快速建立大数据知识体系
|
数据库 数据安全/隐私保护 数据库管理
|
7月前
|
Windows
Geek Uninstaller软件卸载工具安装教程 Windows版:解压+管理员身份运行启动指南
Geek Uninstaller 是一款免费轻量的专业卸载工具,主打深度清理与极简操作,可彻底移除软件及残留文件。下载解压后以管理员身份运行即可使用,无需安装,即开即用。(239字)
1348 4
|
存储 固态存储
磁盘和内存的区别
存储特性: • 磁盘:非易失性存储,数据在断电后不会丢失,适合长期存储数据。 • 内存:易失性存储,数据在断电后会丢失,适合临时存储当前运行的程序和数据。 容量: • 磁盘:容量通常较大,从几百GB到数TB不等,适合存储大量的文件和数据。 • 内存:容量相对较小,一般在几GB到几十GB之间,用于提供快速的临时存储空间。 速度: • 磁盘:读写速度较慢,HDD一般在几十MB/s,SSD可以达到几百MB/s甚至数GB/s。 • 内存:读写速度非常快,通常在几十纳秒到几百纳秒之间,能够快速响应CPU的指令。
1449 2
|
设计模式 缓存 Dubbo
一文读懂微内核架构
微内核是一种典型的架构模式 ,区别于普通的设计模式,架构模式是一种高层模式,用于描述系统级的结构组成、相互关系及相关约束。
1701 0
一文读懂微内核架构
|
存储 Java Linux
Linux异步IO(AIO)
异步输入/输出 (AIO) 接口允许并行提交许多 I/O 请求,而不会产生每个请求的线程开销。 本文档的目的是解释如何使用 Linux AIO 接口,即函数家族 `io_setup`、`io_submit`、`io_getevents`、`io_destroy`。 目前,AIO 接口最适合直接“O_DIRECT”访问原始块设备,如磁盘、闪存驱动器或存储阵列。(访问裸盘)
1898 2
Linux异步IO(AIO)
|
JavaScript 5G 开发工具
《Flutter in action》开放下载!闲鱼Flutter企业级实践精选
独家开放,免费下载!《Flutter in action》电子书重磅发布,Google Flutter 团队强烈推荐,闲鱼多年最佳实践经验整理成册,揭秘亿级流量背后的技术秘籍,为你精解Flutter企业级实践。
90386 0
《Flutter in action》开放下载!闲鱼Flutter企业级实践精选
|
自然语言处理 并行计算 TensorFlow
spacy包及trained pipelines安装教程
spacy是自然语言处理中常用的Python包,本文介绍spacy包及其配套语言包的安装方式。
spacy包及trained pipelines安装教程
|
云安全 JSON 资源调度
node.js实现阿里云配置发送短信验证码
node.js实现阿里云配置发送短信验证码
2943 0
node.js实现阿里云配置发送短信验证码
|
算法 安全 Unix
翁恺C语言程序设计网课笔记合集
学习自翁恺C语言程序设计网课。
1238 0
翁恺C语言程序设计网课笔记合集