当前位置:网站首页>遗留系统的自动化策略
遗留系统的自动化策略
2022-07-31 02:56:00 【CrissChan】
遗留系统的自动化策略
维基百科:遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序,“属于或与以前的、过时的计算机系统有关” ,但仍在使用中。通常,将系统称为“遗留系统”意味着它可能已经过时或需要更换。
什么样的系统是遗留系统
Martin Fowler说过Let’s face it, all we are doing is writing tomorrow’s legacy software today.这句话说出了残酷的现实,我们团队现在写的每一行代码最后都会变成遗留系统的代码,这也变相的说明每一个研发工程师都脱离不了改造遗留系统的宿命。从Martin Fowler对遗留系统的描述中我们不难看出来,遗留系统并不是单靠系统的第一行代码距离现在的时间来衡量的,还包含了代码的质量、架构设计、DevOps流水线、支持系统等。很多遗留系统的代码质量都非常差,没有单元测试、API自动化测试、UI自动化测试等自动化的质量保障活动;架构设计混乱,各种设计方式、技术交织在一起;没有交付流水线,所有的交付流程仰仗于某几个研发工程师等等问题才是遗留系统需要面对的痛点。
Michael Feathers在他的书《Morking Bfectively with Legacy Code》中给出了遗留系统的定义:没有自动化测试的系统就是遗留系统。虽然这个定义并不是所有人都认同,但是已经足以看出没有自动化测试的遗留系统对于参与修改的开发工程师是一个灾难。那么对于一个遗留系统,并不是每次都可以启动重构大法完成项目的改进,通过弥补自动化测试解决遗留系统变更的痛点也是不失是一个好办法。
没有自动化测试的遗留系统如何弥补
遗留系统弥补自动化测试实践的首要原则就是”让自动化测试那些你修改的代码“。这句话指导我们所有
边栏推荐
- MPPT太阳能充放电控制器数据采集-通过网关采集电池电压容量电量SOC,wifi传输
- Mysql 45讲学习笔记(二十四)MYSQL主从一致
- CentOS7下mysql5.7.37的卸载【完美方案】
- [C language foundation] Solve C language error: expected ';', ',' or ')' before '&' token
- Installation, start and stop of redis7 under Linux
- 什么是分布式锁?实现分布式锁的三种方式
- Hanyuan Hi-Tech 8-channel HDMI integrated multi-service high-definition video optical transceiver 8-channel HDMI video + 8-channel two-way audio + 8-channel 485 data + 8-channel E1 + 32-channel teleph
- php 网站的多语言设置(IP地址区分国内国外)
- Go 项目实战-获取多级分类下的全部商品
- return in try-catch
猜你喜欢
【C语言】三子棋(经典解法+一览图)
StringJoiner in detail
JS function this context runtime syntax parentheses array IIFE timer delay self.backup context call apply
你们程序员为什么不靠自己的项目谋生?而必须为其他人打工?
C#远程调试
Face detection based on opencv
STM32CUBEMX develops GD32F303 (11) ---- ADC scans multiple channels in DMA mode
Why is String immutable?
Mycat's master-slave relationship, vertical sub-database, horizontal sub-table, and detailed configuration of mycat fragmented table query (mysql5.7 series)
10、Redis实现点赞(Set)和获取总点赞数
随机推荐
Basic learning about Redis related content
Discourse 自定义头部链接(Custom Header Links)
Mysql 45讲学习笔记(二十五)MYSQL保证高可用
LeetCode 1161 最大层内元素和[BFS 二叉树] HERODING的LeetCode之路
LeetCode 1161 The largest element in the layer and the LeetCode road of [BFS binary tree] HERODING
CorelDRAW2022精简亚太新增功能详细介绍
【C语言】求两个整数m和n的最大公因数和最小公倍数之和一般方法,经典解法
Clustering index, and what is the difference between a clustering index
2022牛客多校联赛第四场 题解
TCP/IP四层模型
Uninstallation of mysql5.7.37 under CentOS7 [perfect solution]
全流程调度——MySQL与Sqoop
The Sad History of Image Processing Technology
品牌广告投放平台的中台化应用与实践
MPPT太阳能充放电控制器数据采集-通过网关采集电池电压容量电量SOC,wifi传输
Mysql 45讲学习笔记(二十四)MYSQL主从一致
8. Unified exception handling (controller notifies @ControllerAdvice global configuration class, @ExceptionHandler handles exceptions uniformly)
10 权限介绍
SQL injection Less47 (error injection) and Less49 (time blind injection)
10、Redis实现点赞(Set)和获取总点赞数