写点什么

文章:如何处理遗留代码

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

    阅读完需:约 2 分钟

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

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

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

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

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

2007-11-20 23:511169

评论

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

快手基于 Flink 构建实时数仓场景化实践

Apache Flink

flink 解决方案 实时数仓架构 快手

服务全球用户,EMQ X Cloud 新增欧洲部署支持

EMQ映云科技

服务器 mqtt 部署与维护 Cloud emq

neo4j 安装与基本操控

escray

学习 neo4j 8月日更

久等了!【Innovation 2021】网易应用创新开发者大赛正式开赛!

网易云信

开源 架构 开发者 网易 语言 & 开发

比特币矿池如何触底反弹?比特币矿企的未来出路在哪里?

CECBC

为什么Kafka的数据不写了?

BUG侦探

DNS gopack Linux操作系统

网络攻防学习笔记 Day116

穿过生命散发芬芳

网络安全 8月日更

深入了解现代web浏览器(第一部分)

GKNick

Baetyl推动边云融合 点亮智能物联网

百度大脑

人工智能 开源

PyFlink 开发环境利器:Zeppelin Notebook

阿里云大数据AI技术

如何利用FL Studio编曲--入门级

懒得勤快

安卓工控主板通信接口有哪些呢?

双赞工控

安卓主板 工控主板

你真的了解二叉树吗?(手撕算法篇)

有道技术团队

二叉树 网易有道

PyFlink 开发环境利器:Zeppelin Notebook

Apache Flink

Zeppelin notebook pyflink 开发环境利器

英特尔的碳中和版图

科技新消息

filecoin挖矿教程?filecoin挖矿收益如何?

区块链 分布式存储 IPFS filecoin挖矿 filecoin收益

如何短时间突击 Java 通过面试?

Java架构师迁哥

新思科技软件组成分析解决方案获得Forrester Wave认可

InfoQ_434670063458

新斯科技 Forrester 软件组成分析

如何认知新技术?区块链技术和应用

百度开发者中心

区块链 最佳实践 方法论

每天学习 10 个实用Javascript代码片段(六)

devpoint

mathjs 加密函数 随机数 8月日更

业界首个高性能交互式自动标注工具——EISeg正式开源!

百度大脑

人工智能 开源

区块链技术如何在涉诉信访中显身手

CECBC

关于数据库应用的一些思考

石云升

数据库 8月日更

Linux内核内存管理:地址转换和MMU

Linux服务器开发

操作系统 内存管理 Linux内核 内核开发 地址转换

阿里大牛肝出的443页TCP/IP协议趣谈笔记,竟然在GitHub标星27k+

Java 编程 架构 面试 架构师

中国做ipfs公司排名?挖ipfs排名前三的公司是?ipfs矿机哪家最好?

中国做ipfs公司排名 ipfs矿机哪家最好 挖ipfs排名前三的公司是

强化学习中,Q-Learning与Sarsa的差别有多大?

行者AI

强化学习

如何搭建SpringcloudAlibaba基础环境(一)

程序员半支烟

Java 微服务

Filecoin价格今日行情:filecoin价格还能怎么走?

区块链 分布式存储 IPFS filecoin价格 filecoin行情

Python代码阅读(第18篇):变形词判断

Felix

Python 编程 Code Programing 阅读代码

从技术到服务,小鹅通成功的「底层逻辑」是什么?

ToB行业头条

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