写点什么

文章:如何处理遗留代码

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

    阅读完需:约 2 分钟

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

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

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

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

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

2007-11-20 23:511155

评论

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

微信小程序二维码文件流上传到OSS解决方法

北桥苏

php OSS thinkphp

AntDB数据库携手金蝶Apusic应用服务器, 共促信创产业繁荣发展

亚信AntDB数据库

AntDB AntDB数据库 企业号 5 月 PK 榜

穿越数据智能“海峡”,企业更需要什么样的数智底座?

用友BIP

软件测试是青春饭吗?

测吧(北京)科技有限公司

测试

2023 开源之夏来啦!报名 MegEngine 项目,赢取万元奖金!

MegEngineBot

深度学习 开源之夏 MegEngine 学生比赛 奖金

网页版超强ChatGPT插件应用ZipZap来了,每日免费10K Token足够使用

Ricky

openai ChatGPT GPT-4

Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人

汀丶人工智能

人工智能 深度学习 ChatGPT prompt learning

Windows本地搭建RabbitMQ Server

北桥苏

Rabbit MQ RabbitMQ安装

Java面试题大全(整理版)1000+面试题附答案详解最全面看完稳了

Java你猿哥

Java MySQL redis mybatis java面试

BATM面试Java岗:精选200+面试题及答案、6大重点规划和经验总结

Java你猿哥

Java MySQL JVM 多线程 java面试

大厂工作四年Java经验总结了学习路线规划,所有私藏资料我都贡献出来了

Java你猿哥

Java Spring Boot JVM java基础 java面

大模型时代入场级技能:提示词工程!百度文心中文教程来啦

飞桨PaddlePaddle

百度飞桨

如何解决由于TLS版本不兼容导致的问题

JefferLiu

Java TLS

软件测试 | admin后台管理

测吧(北京)科技有限公司

测试

数据治理三大模式详解,治理新范式释放数据潜能

袋鼠云数栈

数据治理

Fabarta 参加 2023 数云原力大会,与各方共同发布《2023 数据资产盘点实践白皮书》

Fabarta

数据要素 数据资产管理 数据资产化 数据要素流通

【源码分析】【seata】at 模式分布式事务-server端与客户端交互

如果晴天

源码分析 分布式事务 分布式锁 seata Seata框架

以数据思维和技能提升数据应用测试实践 | 京东云技术团队

京东科技开发者

测试 测试覆盖率 数据思维 应用安全测试 企业号 5 月 PK 榜

中国20强(上市)游戏公司2022年财报分析:营收结构优化,市场竞争进入白热化

易观分析

公司 游戏

Django查询、删除、更新数据

测吧(北京)科技有限公司

测试

【5.05-5.12】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

京东短网址高可用提升最佳实践 | 京东云技术团队

京东科技开发者

最佳实践 高可用设计 企业号 5 月 PK 榜 短网址

数据库外网ip binlog主从配置

Java你猿哥

Java MySQL 后端 ssm

国内商业BI工具介绍,瓴羊Quick BI、帆软怎么样

流量猫猫头

中建信息亮相华为中国合作伙伴大会2023

极客天地

Django基本数据访问

测吧(北京)科技有限公司

测试

面试官:说说 WebSocket 和 Socket 及 Http 的区别?

Java你猿哥

Java TCP ssm HTTP webSock

从零开始打造一款基于SpringBoot+SpringCloud的后台权限管理系统

Java Spring Cloud Spring Boot 权限管理

夺冠秘诀?华为软件精英挑战赛两届冠军这样复盘比赛经验

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 5 月 PK 榜

Alibaba技术专家倾心五年打造!Java工程师成神之路(基础篇)

Java

MySQL主从配置+ThinkPHP5分布式数据库

北桥苏

MySQL 分布式 thinkphp

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