如何安全有效的删代码?

京东云开发者
• 阅读 4

作者:京东科技 王丹迪

删除代码是软件开发过程中常见的一部分,但必须谨慎操作以确保不会引入错误或破坏现有功能。有效的做系统瘦身会降低维护成本,减少冗余代码,减少开发同事踩坑的机会。以下是几个步骤和建议,帮助你更安全有效地删除代码:



  1. 确定范围
  • 优化总是被鼓励的,但方式和时间是同时需要被考虑进去的因素

  • 方式:这个方案是否好,有无漏洞?投入产出效益比如何?

  • 时间:是否要在这个版本,哪个版本能使所有开发投入时间最少(建议跟着需求一起,使测试范围一致)

  • 文档:若为专门的优化版本,则建议维护一份改动文档,方便回顾、检查、及同步相关人



  1. 备份/新建分支
  • 在开始之前,创建项目的完整备份。

  • 使用版本控制系统(如 Git)进行分支管理,以便可以轻松回滚更改。



  1. 理解要删除的内容
  • 确保你完全理解将要删除的代码的作用及其依赖关系,做到这一点,业务流程图和代码流程图也许能更好的帮你一目了然。

  • 如果不确定,询问同事或查看文档,但应当注意,这里的信息不应被完全依赖,它只能作为理解代码的背景渠道。



  1. 测试
  • 在删除代码前后运行所有的自动化测试。

  • 手动测试受影响的区域,特别是那些与用户界面交互部分。



  1. 逐步删除
  • 而不是一次性删除大量代码,尝试分阶段删除。

  • 删除一小部分后立即测试,确保没有引入新的问题。



  1. 注释而非直接删除
  • 如果你不确定是否应该永久删除某些代码,可以先将其注释掉而不是直接删除,并且加告警以备线上出现问题。(要知道,用告警的方式反馈问题是一个非常被动的选择,这应该是你在测试环境已经确定过后的代码,所以梳理这边的逻辑自查并同步测试才是首要任务哦)

  • 这样做可以让你以后更容易地恢复这部分代码。



  1. 清理
  • 下游检查:删除不再需要的文件、变量、函数、接口、混入和方法等,这一步总是会被轻易忽视。

  • 上游检查:检查其他可能引用已删除代码的地方

  • 全局搜索:如果判断所删除的对象的关键字可能为动态拼接,则此时选择部分字符进行匹配,不选择【match whole word】;如果判断关键字可能使用类似toLowerCase方法,则不选择【match case】

  • 如果有依赖内部组件库记得也要搜索一下关键字哦

  • 确保所有相关的文档和注释也被更新。

  • 如果有abtest下线,则记得将测试、生产ab平台的相关版本也一并下线,或备注,以防他人在不知情的情况下更改配置导致产生问题



  1. 提交和记录
  • 将你的更改提交到版本控制系统中,提交之前的二次确认也很重要哦。

  • 提供清晰的提交消息commit解释为什么要删除这段代码。



  1. review
  • 让团队成员review你的变更。

  • 特别是对于那些不经常接触的代码部分,审查尤为重要。



  1. 监控
  • 发布更改后的软件后,密切监控日志和用户反馈,以便及时发现任何潜在的问题。



通过遵循这些步骤,你可以减少因误删代码而导致的风险,并保持代码库的健康和可维护性。记住,在任何时候都要小心行事,特别是在涉及关键业务逻辑的情况下。

点赞
收藏
评论区
推荐文章
企业级低代码 | 灵魂拷问:低代码真的安全可靠吗? | 飞速创软
在一篇题为《低代码和无代码开发的4个安全问题》的文章中,作者ChrisHughes表示,“通过允许企业中更多的人开发应用程序,低代码开发会产生新的漏洞,并在安全性方面隐藏问题。”我并不同意这个说法。具体来说,低代码或无代码解决方案本身并没有什么安全或不安全的地方。所有应用程序开发框架、系统、流程和策略(手动或自动)的安全性与企业为确保它们安全所做的投资
飞速低代码 | 低代码开发会带来更多安全问题吗?一文了解
​低代码不会带来额外的安全风险,也不会带来更多的运营风险或无法管理的成本,关键是要妥善处理。低代码开发目前已被大量应用,其本身并没有什么安全或不安全一说,所有应用程序开发框架、系统、流程和策略(手动或自动)的安全性取决于企业自身。企业不应该阻止使用低代码工具,而是应引入企业级低代码开发工具,让用户能够了解其工作原理,并鼓励使用这类工具。同时,确保这些工具的安
Stella981 Stella981
3年前
Code Review最佳实践
  我一直认为CodeReview(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,CodeReview都是基本要求,代码合并之前必须要有人审查通过才行。  然而对于我观察到的大部分软件开发团队来说,认真做CodeReview的很少,有的流于形式,有的可能根本就没有Co
Stella981 Stella981
3年前
53w字!阿里首推系统性能优化指南太香了,堪称性能优化最优解
性能优化我们都知道代码是系统的基石,没有良好的代码,系统架构就不牢固。但作为一般一个普通程序员,很少有机会参与系统架构级别的优化,甚至暂时不能理解架构上的调整。在开发新功能或审查组内的代码时,优化系统的方式主要是优化自己或他人写的代码。但是真实的情况是:且不说其他层次的优化,就一个代码优化很多入行没有多久的小伙伴甚至都还没入门,更别说啥实现
邢德全 邢德全
5个月前
万界星空科技低代码平台+商业开源低代码MES
低代码平台的最大优势之一是它们让人们可以大规模构建,而不会产生高昂的成本或花费太多时间。与传统开发相比,使用无代码和低代码工具进行软件开发所需的时间要少得多。
爱学it学无止境 爱学it学无止境
4个月前
看动画,轻松学习23种C++设计模式完结无密
C设计模式深度解析:提升代码质量与可维护性的关键在C软件开发中,设计模式作为一种经过验证的软件开发方法,被广泛用于解决常见的设计问题,提高代码的可读性、可维护性和可扩展性。本文将深入探讨C中几种常用的设计模式,分析其原理、应用场景及实现方式,以
codigger codigger
4个月前
与Bug较量:Codigger之软件项目体检Software Project HealthCheck来帮忙
Codigger之软件项目体检SoftwareProjectHealthCheck工具旨在帮助团队在整个软件开发生命周期中维护高标准的代码质量,减少技术债务,提高开发效率,并确保软件产品的稳定性和安全性。
简单概述Serverless
本文分享自天翼云开发者社区@《​​》,作者:我是小朋友Serverless是计算的趋势,它使诸如Web应用程序之类的代码执行与维护服务器以运行该代码的需求脱钩。创建,供应和维护服务器上运行的应用程序的操作开销(传统意义上)非常重要。减少或消除这项工作可以帮
贾敦 贾敦
8个月前
免费在线代码生成云平台
代码生成云平台是一种为开发人员提供便捷、高效的代码生成工具和服务的云服务平台。平台的目标是通过自动化和模板化的方式,帮助开发团队加速应用程序的开发过程,减少重复性劳动,提高代码质量,并降低维护成本。以下是一个代码生成云平台可能包含的产品和功能介绍:模板引擎
京东云开发者 京东云开发者
8个月前
代码精简的治理方案和工具
一、前言在大型软件系统中,随着业务的发展和变迁,部分代码线上已经废弃或者出现冗余,由于种种原因没有被及时删除和治理,随之而来的是代码维护成本提升。代码精简的价值如上图所示,并由此成为服务治理的一个重要方向,在业界头部企业也有对应的治理项目,其主要思路是通过