网站首页 > 博客文章 正文
作者:京东科技 王丹迪
删除代码是软件开发过程中常见的一部分,但必须谨慎操作以确保不会引入错误或破坏现有功能。有效的做系统瘦身会降低维护成本,减少冗余代码,减少开发同事踩坑的机会。以下是几个步骤和建议,帮助你更安全有效地删除代码:
1. 确定范围
- 优化总是被鼓励的,但方式和时间是同时需要被考虑进去的因素
- 方式:这个方案是否好,有无漏洞?投入产出效益比如何?
- 时间:是否要在这个版本,哪个版本能使所有开发投入时间最少(建议跟着需求一起,使测试范围一致)
- 文档:若为专门的优化版本,则建议维护一份改动文档,方便回顾、检查、及同步相关人
2. **备份/新建分支**:
- 在开始之前,创建项目的完整备份。
- 使用版本控制系统(如 Git)进行分支管理,以便可以轻松回滚更改。
3. **理解要删除的内容**:
- 确保你完全理解将要删除的代码的作用及其依赖关系,做到这一点,业务流程图和代码流程图也许能更好的帮你一目了然。
- 如果不确定,询问同事或查看文档,但应当注意,这里的信息不应被完全依赖,它只能作为理解代码的背景渠道。
4. **测试**:
- 在删除代码前后运行所有的自动化测试。
- 手动测试受影响的区域,特别是那些与用户界面交互部分。
5. **逐步删除**:
- 而不是一次性删除大量代码,尝试分阶段删除。
- 删除一小部分后立即测试,确保没有引入新的问题。
6. **注释而非直接删除**:
- 如果你不确定是否应该永久删除某些代码,可以先将其注释掉而不是直接删除,并且加告警以备线上出现问题。(要知道,用告警的方式反馈问题是一个非常被动的选择,这应该是你在测试环境已经确定过后的代码,所以梳理这边的逻辑自查并同步测试才是首要任务哦)
- 这样做可以让你以后更容易地恢复这部分代码。
7. **清理**:
- 下游检查:删除不再需要的文件、变量、函数、接口、混入和方法等,这一步总是会被轻易忽视。
- 上游检查:检查其他可能引用已删除代码的地方
- 全局搜索:如果判断所删除的对象的关键字可能为动态拼接,则此时选择部分字符进行匹配,不选择【match whole word】;如果判断关键字可能使用类似toLowerCase方法,则不选择【match case】
- 如果有依赖内部组件库记得也要搜索一下关键字哦
- 确保所有相关的文档和注释也被更新。
- 如果有abtest下线,则记得将测试、生产ab平台的相关版本也一并下线,或备注,以防他人在不知情的情况下更改配置导致产生问题
8. **提交和记录**:
- 将你的更改提交到版本控制系统中,提交之前的二次确认也很重要哦。
- 提供清晰的提交消息commit解释为什么要删除这段代码。
9. **review**:
- 让团队成员review你的变更。
- 特别是对于那些不经常接触的代码部分,审查尤为重要。
10. **监控**:
- 发布更改后的软件后,密切监控日志和用户反馈,以便及时发现任何潜在的问题。
通过遵循这些步骤,你可以减少因误删代码而导致的风险,并保持代码库的健康和可维护性。记住,在任何时候都要小心行事,特别是在涉及关键业务逻辑的情况下。
- 上一篇: 编写优雅代码的五个简单技巧:从初学者到大师
- 下一篇: 写出高效、可维护代码的秘密:注释与命名规范
猜你喜欢
- 2025-01-03 好的代码和坏的代码有哪些本质区别
- 2025-01-03 为了绩效,10行代码被我改成了500行...
- 2025-01-03 一站式统一返回值封装、异常处理、异常错误码解决方案
- 2025-01-03 那些程序员才懂的梗,看到第10张笑喷了,网友:太真实了
- 2025-01-03 Java基础 | 专业排行榜前7的Java代码审计工具
- 2025-01-03 细数软件开发败笔:从代码冗余到架构失衡
- 2025-01-03 总是吐槽别人的代码,好像自己很厉害似的
- 2025-01-03 干掉 “重复代码” 的技巧有哪些
- 2025-01-03 代码太乱不好改?重构的12个理念帮你轻松搞定
- 2025-01-03 一文掌握代码走查规范和代码检查清单
你 发表评论:
欢迎- 最近发表
-
- 告别频繁登录!Nuxt3 + TS + Vue3实战:双Token无感刷新方案全解析
- SpringBoot实现单点登录(SSO)的4种方案
- 随机密聊 匿名聊天室程序源码(随机匿名聊天在线)
- SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!
- Java 微服务从源码实战开始 | Gitee 项目推荐
- 轻量级埋点sdk搭建,便捷更全面(埋点sdk是什么)
- Spring Boot 实现文件秒传功能(springboot上传文件到指定文件夹)
- 项目中不用redis分布式锁,怎么防止用户重复提交?
- SpringBoot项目日志打印traceId生成
- 如何实现PC端网站扫码登录操作?(网页 扫码)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)