当前位置: 首页 > news >正文

创意歌曲:我是一段死代码

死代码就是没用的、但却留在程序库中的代码。这样的代码没有任何其它程序会调用它,没有任何函数、对象引用它。它就在程序中,但程序的运行状态跟它一点关系都没有。

为什么程序中会有死代码?有可能是程序库升级,老的接口不再使用。有可能是需求调整,但跟过时的需求相关的代码没有被删除。有可能是拷贝粘贴的过程中,有些没有用的函数也粘贴了过来。有可能是重构的过程中,把老代码保留下来备份用。等等…..

死代码是应该删除的代码。没有用的代码也就是没有人维护的代码。最后将变成没有人知道它是有什么用处的代码。后来的人也开始不敢删除这样的代码,怕万一什么地方需要用到它。于是这样的死代码积累的越来越多。技术债务越来越重。健康的项目慢慢腐烂变质。最终没有人能维护。

死代码应该及时大胆清除。很多程序员会担心,万一这段代码还有用呢?没错。因为你不熟悉这些代码,很多人修改过这些代码,没准什么地方还在用这段代码。但是,我们有代码保护工具:代码版本控制系统——git,svn等。即使是误删了代码,也能从历史记录里恢复。

最重要的,我们还有自动化测试。自动化测试是保证程序正确的最可靠的保证。无论做什么修改,添加功能,删除功能,最终都要运行自动化测试,让所有的测试点都绿灯通过。如果你还在担心害怕删除死代码,很可能是因为你的项目没有自动化测试。

死代码,如果你不删,它会很痛苦,因为无人问津它,无人调用它。它如同活死人,僵尸。

相关文章:

  • Elasticsearch 中文搜索搭建
  • 潜伏 11 年之久,Linux 惊现高危内核漏洞 Phoenix Talon
  • 权当开篇——Linux学习之路(一)
  • ReSharper Ultimate 2017 下载地址及破解方法
  • 洪水
  • 记一次ubuntu下通过grub引导win7 双系统
  • WebApi 接口参数不再困惑:传参详解
  • Sublime编译器快捷键大全
  • Scala 闭包
  • ElasticSearch5.x实践_day01_04_ElasticSearch增删改查
  • PHP 开源框架 MiniFramework 发布 0.10.0 版
  • kdev-ruby 停止开发,原 maintainer 转用其它编辑器
  • 人们对互联网的误解到底有多深?
  • Atlassian发布Bamboo 6.0和Bitbucket Server 5.0
  • 3.文件拷贝
  • [数据结构]链表的实现在PHP中
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • angular学习第一篇-----环境搭建
  • Iterator 和 for...of 循环
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Markdown 语法简单说明
  • mysql外键的使用
  • Twitter赢在开放,三年创造奇迹
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 记一次和乔布斯合作最难忘的经历
  • 精彩代码 vue.js
  • 树莓派 - 使用须知
  • 学习JavaScript数据结构与算法 — 树
  • 一天一个设计模式之JS实现——适配器模式
  • 责任链模式的两种实现
  • 追踪解析 FutureTask 源码
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 通过调用文摘列表API获取文摘
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​什么是bug?bug的源头在哪里?
  • # 安徽锐锋科技IDMS系统简介
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #QT(串口助手-界面)
  • #图像处理
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (2.2w字)前端单元测试之Jest详解篇
  • (4)Elastix图像配准:3D图像
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET企业级应用架构设计系列之结尾篇