产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

文章:如何处理遗留代码

  • 2007-11-20
  • 本文字数:659 字

    阅读完需:约 2 分钟

在职业生涯中的很多时候,我们不得不面对遗留代码。本文中,遗留代码是指出于他人之手的代码或者自己很久之前写的代码。因为对代码不熟悉,或许一次微小的 改动就会影响其他代码。正如文中所描述的“当你改变一个数据结构或者更新一个变量时,你无法确信将要发生什么”。这就好比在沙滩上筑屋,你还寄希望于造出 香榭楼台吗?

幸运的是,作者给出了解决办法。他强调,不要作出改变后就期待着万事如意,要化被动防守为主动进攻,用“BAT”——构建(build)、自动化(automate)和测试(test)—— 来赢得比赛。构建是指,用构建脚本工具创建一个不依赖于平台的易于运行、易于维护的干净的构建。自动化是指,尽可能将那些可以合理自动化的执行的东西都写 入脚本。测试是指,从客户的观点出发,进行模拟客户测试。作者又用此三种武器,描绘出了工作场景:当我们把所作的修改提交到源代码管理器中,持续集成系统 就会从 SCM 中检出代码,构建它,并且运行整个测试。我们也会及时地通过邮件得知修改和测试是通过还是失败。

最后,作者指出构建、自动化和测试(BAT)能够让我们及时地得到反馈,从而在数小时之内抓住并且解决问题;能够让我们拥有自信的重构能力,从而让我们能够集中精力设法完成性能改进。总之,它能够让我们高效的处理遗留代码。

查看文章:如何处理遗留代码 - - - - - -

译者简介: 包亮,一名普通的程序员,喜欢敏捷实践,喜欢"懒惰",减少重复,尽可能让工作变得简单。几年来,一直通过网络汲取知识,也希望通过网络将知识与人分享 。志愿参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2007-11-20 23:51696

评论

发布
暂无评论
发现更多内容

架构实战营模块一作业

东尼大锤

网安超基础一周目

吉师职业混子

9月月更

【数据结构】利用Python手把手带你自定义矩阵

迷彩

数据结构 矩阵 矩阵运算 9月月更 自定义矩阵

汽车总线系统

不脱发的程序猿

汽车电子 CAN总线 汽车总线系统

基于微信小程序的会议室预定平台开发笔记

CC同学

大数据调度平台Airflow(六):Airflow Operators及案例

Lansonli

airflow 9月月更

Java | extends关键字【面向对象的第二大特征——继承】

Fire_Shield

Java 9月月更 extends

开发者有话说|谈谈自己大学期间的收获,以及毕业的求职经历

梦笔生花

个人成长 成长路上的思考 初心不变

Vue3-无限滚动的懒加载-模拟网络请求Mock版

Sam9029

Vue 前端 9月月更 无限滚动

【Kafka】编译 Kafka 源码并搭建源码环

石臻臻的杂货铺

kafka 9月月更

从0开始的计算机之路

吉师职业混子

9月月更

【网络安全】记一次简单渗透测试实战

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞利用

Java 面试之技术框架

小小怪下士

Java spring 编程 程序员

Python语法之流程控制

梦笔生花

流程控制 9月月更 嵌套

Hybrid App会靠小程序崛起吗

Geek_99967b

小程序

Python语法之循环

梦笔生花

Python 9月月更 循环控制

Vue3-无限滚动的懒加载-本地数据操作版

Sam9029

Vue 前端 懒加载 9月月更

Docker镜像列表中的none:none是什么

程序员欣宸

Docker 9月月更

【云原生 | 从零开始学Kubernetes】四、Kubernetes之YAML文件详解

泡泡

云计算 云原生 k8s 9月月更

C++学习---__gen_tempname函数原理分析学习

桑榆

c++ 源码分析 9月月更

多维分析利器Druid

穿过生命散发芬芳

Druid 9月月更

追光动画《杨戬》:水墨、石窟、洛神赋,中式美感背后有中国云计算

B Impact

PipyJS - 函数式网络编程语言

Flomesh

Service Mesh 服务网格

设计模式和七大设计原则不难的

知识浅谈

设计模式 设计原则 9月月更

netty原理分析

小小怪下士

Java 编程 程序员 后端 Netty

Python语法之列表

梦笔生花

列表 元素 9月月更

易观千帆联合《扬子晚报》发布苏州市手机银行应用活跃人数榜单

易观分析

金融 手机银行 苏州

2022-09-22:以下go语言代码输出什么?A:5、B:不能编译;C:运行时死锁。 package main import ( “fmt“ “time“ ) func main

福大大架构师每日一题

golang 福大大 选择题

Java基础科普

吉师职业混子

9月月更

经久不衰的设计定律是不要让我思考的设计

宇宙之一粟

读书笔记 设计 设计思维 设计原则 9月月更

Qt|制作简单的不规则窗体

中国好公民st

qt 事件 9月月更

文章:如何处理遗留代码_研发效能_包亮_InfoQ精选文章