关于遗留项目重构反复看

如何为遗留Python代码添加单元测试?重构与测试策略 你是否遇到过这样的场景?接手一个运行了3年的Python项目,代码里满是全局变量、跨模块修改状态的函数,想修改一个功能却要反复手动测试3小时?本文将聚焦这类"难以下手"的遗留代码,教你如何逐步添加单元测试,建立安全基线,为后续重构铺平道路。本文将按照"认知→分析→行动"的逻辑展开:先理解遗留代码的特点,再学习处理依赖的核心技巧,接着通过实战案例演示完整流程,最后分享工具和长期维护策略。 阅读详情

https://www.youtube.com/watch?v=WhlpElaeYHE&t=186s

这个关于遗留项目的重构视频可以反复看

1. 关于 base fragment 的必要性?

        可能不太有必要,一些公用的方法可以通过ext扩展函数来实现

        如果一定要集成一个基类,比如实在不想每个fragment都添加方法,可以讲这个base写成具体的功能,不过Philip还是很拒绝使用继承来实现这些~~~~

2. 关于一些可能的公共功能,将功能从viewmodel中抽离出来,并且用interface的方式来引用,通过依赖注入来初始化,便于测试

3.有些很好的flow的方式,可惜没有源码贴不出来

从代码重构恐惧到安全重构实践:破解遗留系统维护困局 在软件工程领域,代码重构是提升系统可维护性和可扩展性的核心实践。其基本原理是在不改变外部行为的前提下,通过调整代码内部结构来改善设计、消除冗余并提升可读性。这一过程的技术价值在于显著降低后续维护成本、减少缺陷引入概率,并为团队协作与新功能开发奠定坚实基础。在实际应用场景中,开发者常面临遗留系统的高耦合模块、缺失的测试覆盖以及复杂的业务逻辑依赖,这些因素共同导致了普遍的“代码能跑就不要动”的保守心态。本文聚焦于如何通过建立有效的风险评估框架和测试先行的安全网,将重构实践系统化,帮助团队在保障系统稳定性的前提下 阅读详情

相关推荐

TP4054芯片实战:手把手教你设计USB锂电充电电路(附PCB散热优化技巧)

本文以TP4054芯片为核心,手把手教你设计稳定可靠的USB锂电池充电电路。文章详细解析了芯片的恒流恒压工作模式、关键外围元件选型计算,并重点分享了PCB布局与散热优化的实战技巧,帮助工程师从“能工作”提升到“工作得好”,确保充电效率与系统稳定性。

1a2s3d4f5g的博客 468

AI - 旧系统重构无从下手?AI 扫描遗留代码,自动生成模块依赖图 + 重构建议

重构遗留系统不再是“盲人摸象”。通过 AI 扫描代码、生成依赖图与重构建议,我们获得了上帝视角——看清系统的过去、理解它的现在、规划它的未来。从此,面对百万行遗留代码,你不再恐惧,而是自信地说:“给我 10 分钟,我让 AI 画出它的全貌。💡行动建议:今天就用 Python 脚本扫描你的项目,生成第一张依赖图。认知,是重构的第一步。🚀👨‍💻👩‍💻。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

深入剖析STM32F103 I2C总线死锁问题及高效应对策略

本文深入剖析了STM32F103硬件I2C总线在轮询模式下发生死锁的根本原因,即硬件状态机的预取机制与软件响应速度不匹配。文章提供了高效的解决方案,包括在轮询模式下提前发送NACK/STOP信号、降低总线速度,以及治本的中断与DMA应用策略,帮助开发者根据项目需求选择最合适的方案,彻底解决这一经典硬件缺陷问题。

weixin_29184371的博客 206

遗留系统改造:利用AI自动重构老旧代码的实战记录

摘要 本文记录了利用AI技术重构老旧Java代码的实战经验。面对一个技术债务高企的遗留结算系统,团队采用渐进式改造策略,结合AI辅助代码生成与严格的质量控制流程。通过绞杀者模式逐步替换核心模块,使用结构化Prompt工程指导AI生成符合DDD原则的代码,并建立AST差异分析、静态检查、特征测试三重验证机制。以折扣策略模块为例,展示了如何将1800行的"上帝类"重构为策略模式,消除硬编码,完善异常处理。最终在保证行为一致性的前提下,使代码可维护性显著提升,为类似遗留系统改造提供了可复用的方

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

分享一些基于微信小程序开发的小游戏源码

小游戏小程序是运行在微信生态系统(或其他支持小程序的平台)中的轻量级应用程序,专为休闲游戏体验而设计的小程序子类别,小游戏小程序通常体积较小,加载速度快,用户无需等待长时间即可开始游戏。用户无需下载或安装单独的游戏应用程序,即可通过小程序入口直接进入游戏,同时小游戏小程序通常包含排行榜、分享功能等社交元素,可以增强游戏体验并促进用户参与。game.js:游戏页面的逻辑文件,包含页面数据、生命周期函数、事件处理函数等。game.wxml:游戏页面的结构文件,定义了页面的布局和组件。

xinshangdian的博客 6240

数字频率计设计中的常见误区:从VHDL代码到硬件实现的避坑指南

本文深入探讨了数字频率计从VHDL代码到FPGA硬件实现过程中的关键误区与解决方案。重点分析了闸门时间生成的精度与资源平衡、控制时序设计中的竞争冒险规避,以及如何利用EDA工具进行综合、时序约束与调试,确保设计稳定可靠。文章为开发者提供了从仿真成功到硬件可用的实战避坑指南。

spark7igniter的博客 213

实战项目:遗留单体系统的AI重构

方法。我们不再手动划分微服务边界,而是通过精心设计的提示词(Prompt Engineering),让AI理解业务意图并推荐最优的绞杀点。来看一个实际例子:假设我们要从一个单体电商系统中剥离"订单履约"模块。传统方式需要架构师反复权衡数据依赖、事务一致性、网络延迟等因素。

wwlsm_zql的博客 685

基于MATLAB实现的克里金插值的代码

参考代码 克里金插值matlab代码 youwenfan.com/contentcsb/81657.html。

jghhh01的博客 484

Sourcetrail遗留系统分析:理解与重构老旧代码库的利器

你是否曾经接手过一个庞大的遗留代码库,面对数十万行陌生的代码感到无从下手?当你需要修改一个功能时,却不知道这个改动会影响哪些其他模块?或者当你试图理解一个复杂的类继承关系时,不得不在多个文件之间反复跳转? 这正是软件开发中常见的痛点:**遗留代码的理解和维护成本极高**。据统计,开发人员平均花费70%的时间在阅读和理解代码上,只有30%的时间在编写新代码。对于老旧系统,这个比例更加失衡。 ##...

gitblog_00602的博客 628

数据清洗(Data Cleansing)

数据清洗(Data Cleansing)是指对数据进行处理和纠错,以去除或修复数据集中存在的错误、不致、不完整和冗余的数据,从而使数据更加准确、可靠和有用。数据清洗是数据处理和数据分析中一个非常重要的步骤,它可以帮助我们提高数据的质量,从而提高数据分析和机器学习的准确性和可靠性。数据清洗是一个重要的过程,它可以帮助我们提高数据的质量,从而提高数据分析和机器学习的准确性和可靠性。在实际应用中,我们可以使用一些工具和技术来实现数据清洗,例如 Pandas、NumPy 和 OpenRefine 等。通过数据清洗,

meimei169500的博客 1万+

Nvidia Driveos SDK/PDK介绍

NVIDIA DRIVEOS SDK/PDK介绍

u011803281的博客 2178

用 Claude Code 重构遗留系统:从混乱到有序的实战指南

本文系统阐述如何借助 Claude Code 安全高效重构遗留系统。针对代码混乱、测试缺失、知识断层等痛点,提出“读懂系统、拆解计划、逐模块重构、升级依赖、沉淀文档”五步流程。通过订单系统实战案例,展示AI辅助下分步验证、风险可控的重构路径,并强调避免范围失控、盲目信任输出、跳过测试三大避坑原则,助力团队在低风险中实现老系统焕新。

vipxieliang的博客 3015

电路中的DGND、GROUND、GROUND_REF的区别,VREF、VCC、VDD、VEE和VSS的区别?

DGND是数字地,是数字电路部分的公共基准端,用于连接数字电路的接地。

XU157303764的博客 2342

用Claude Code重构遗留系统:老项目自动化重构实践,提示词与效果验证

用Claude Code重构遗留系统,先建测试安全网再让AI动手。本文给出TaoToken统一通道配置、分析/补测试/增量重构三阶段提示词模板,以及401、local proxy failed等报错排查清单,帮你把老项目自动化重构落地。详见 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_33193177的博客 201

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

从质疑到理解:遗留代码安全重构的工程实践

在软件工程中,重构是改善代码结构而不改变外部行为的关键手段,但面对历史遗留系统,重构常常伴随着不可预知的风险。如何理解遗留代码背后的业务约束,如何用特征测试固化现有行为,如何通过差分验证、功能开关与控制影响面,让重构变得可验证、可回滚、可观测?这些是每位后端开发者进阶之路上必须掌握的工程能力。本文以程序员“质疑—理解—成为”的成长视角,深入剖析安全重构的落地方法,包括特征测试、小步重构、代码审查与回滚策略,帮助你在高风险的遗留代码环境中做出理性决策。

weixin_29587015的博客 266

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

特性测试(Characterization Test):遗留系统重构的“行为保险“

特性测试(Characterization Test)介绍

小狼碎碎念的博客 989

AI自主重构遗留JavaScript模块的工程实践

遗留系统重构是软件工程中的经典难题,其本质是应对历史债务、文档缺失与认知断层带来的维护性危机。现代自主智能体通过静态分析、动态观测与影响测绘等技术手段,实现端到端的代码理解与安全重构。相比传统辅助型工具,自主智能体能主动建模函数调用图谱、捕获幽灵分支行为、生成可验证的JSDoc契约,并以黄金路径比对保障行为一致性。该方法已在真实场景中成功治理高复杂度JavaScript模块(如七层回调嵌套、跨服务字符串污染),显著提升可测试性与可维护性。本文聚焦于自主智能体在遗留前端模块重构中的落地路径,涵盖沙盒权限设计、

weixin_42116058的博客 363

遗留系统重构实战:四步让烂代码安全着陆

软件系统的长期演进难免积累技术债,遗留代码中常见的巨型函数、重复逻辑、循环依赖等坏味道,往往让维护成本持续攀升。代码重构不是简单地把代码写漂亮,而是通过结构调整在保持系统行为不变的前提下提升可维护性。面对缺乏测试覆盖的存量代码,特征测试是构建安全网的有效手段,它能锁定当前行为,为后续小步修改提供回归保障。基于风险与业务影响排序改造优先级,配合小步提交、代码审查和静态检查等工程实践,是实现渐进式重构的关键。无论是电商订单模块还是其他业务系统,只要模块仍在持续演进,就可以用这套方法在不停机的状态下偿还技术债,让

weixin_30983353的博客 255

Claude Code在遗留系统重构中的实战方法论

遗留系统重构是企业级软件演进的核心挑战,其本质在于突破代码腐化、文档缺失与技术债累积的三重困境。Claude Code并非通用AI编程助手,而是基于Claude 3.5 Sonnet微调的深度语义理解引擎,擅长跨文件解析调用链、异常路径与配置依赖,提供系统级上下文洞察。相比传统LSP工具,它对PHP/Java/Python旧版本语法、框架魔改及自定义DSL具备强适应性,尤其适用于无文档、高耦合、低测试覆盖率的生产环境。典型应用场景包括接口契约固化、依赖倒置改造、领域事件解耦与灰度流量迁移。本文聚焦‘ubun

weixin_28840143的博客 309

Claude Code实战:重构十年遗留系统的方法论

遗留系统重构是企业技术演进中的核心挑战,涉及代码腐化、技术断层与业务隐性知识沉淀等多重难题。其本质在于平衡稳定性与可维护性,在不破坏现有逻辑的前提下实现渐进式现代化。Claude Code凭借强上下文理解、本地化IDE集成与安全沙箱机制,成为面向真实生产环境的重构辅助工具——它不替代工程师决策,而是将业务规则、历史约束与代码意图结构化呈现,支撑可验证、可回滚、可度量的精准重构。典型应用场景包括VB6/Java 1.6/Spring 2.5等老旧技术栈的模块解耦、测试覆盖补全及重构契约沉淀。本文聚焦Claud

weixin_33212799的博客 292

opencode代码重构实战:AI辅助优化遗留系统架构案例

本文介绍了如何在星图GPU平台上自动化部署opencode镜像,构建本地化AI辅助代码重构环境。基于该平台,开发者可快速启动vLLM+Qwen3-4B-Instruct模型服务,并通过OpenCode终端工具对Java遗留系统(如电商订单服务)进行模块解耦、职责分离与测试生成,显著提升架构优化效率与安全性。

weixin_35811662的博客 679

AI自主代理重构遗留代码的实战风险与防御策略

代码重构是提升软件可维护性的基础工程实践,其核心在于保障行为一致性前提下的结构优化。随着大语言模型驱动的自主代理(Autonomous Agent)兴起,自动化重构能力显著增强,但其决策高度依赖静态分析与提示词约束,缺乏对遗留系统中隐性契约(如时间维度逻辑、数据兼容约定、运维脚本依赖)的理解能力。这导致在真实生产环境中易引发同步/异步误改、DTO破坏下游解析、日志格式变更致监控失效等典型生产风险。本文基于Java单体服务重构实战,系统揭示Agent‘优化’与业务稳定间的根本张力,并提出以防御性提示词、人机协

weixin_30527423的博客 426

Claude Code 跑遗留代码重构:用 TaoToken 核对调用量

Claude Code 重构 src/utils/client.ts 这类遗留代码时,最大的坑是 token 消耗失控:扫描、改回调、跑测试都烧钱。本文用一个五年老项目演示如何先在 ~/.claude/settings.json 里配置 ANTHROPIC_BASE_URL 指向 https://taotoken.net/api(勿加 /v1),再让 Claude Code 分阶段改 Promise.then 为 async/await。重构完成后,登录 TaoToken 后台按时间窗口筛选调用记录,即可核

weixin_35755562的博客 7

管理遗留代码的五个核心策略:从理解到重构的实战指南

在软件开发领域,遗留代码(Legacy Code)是普遍存在的技术债务,它通常指那些难以维护、缺乏文档但承载核心业务逻辑的旧代码。理解其原理在于认识到遗留代码并非单纯的负担,而是承载业务价值的技术资产,其管理核心在于平衡维护成本与业务连续性。从技术价值看,有效管理遗留代码能显著提升系统可维护性、降低故障风险,并为团队赋能。在应用场景上,无论是单体应用还是微服务架构,面对代码腐化、技术栈过时或团队更迭时,都需要系统性的改进方法。本文聚焦于通过渐进式重构、建立测试安全网、提升可观测性等工程实践,结合绞杀者模式(

weixin_30512965的博客 225

遗留系统重构实战:从可信基线到绞杀者式替换

技术债务并不只是代码风格问题,遗留系统的核心风险在于行为契约丢失:历史分支、特殊返回值、时区与字符集等隐式规则,会让线上偶发故障难以复现。处理遗留代码时,可信运行基线和特征测试用于锁定现有行为,绞杀者模式则通过接口适配、双跑对比和灰度开关分块替换,降低一次性重写带来的不可回滚风险。这套方法适用于老项目接手、后端服务重构、慢查询与连接池治理、事务失效排查等场景。把基线、用例、日志、发布清单串成闭环,才能让遗留系统重构从凭经验改代码,变成可验证、可灰度、可回滚的工程实践。

weixin_31155097的博客 238

从一到无穷大 #108:Meta 的 AI 存储架构——BLOB 重构与跨地域数据加载

在 Meta 的旧 BLOB 服务里,数据已经放到闪存上,一次请求中的多层元数据查询仍可能耗费数百毫秒,部分请求还要跨地域。底层介质变快以后,上层存储服务的查找和转发开销开始直接影响 GPU 利用率。[1]另一种等待发生在训练之前。GPU 分散在不同地域,研究者要先找到有算力的地方,再把训练数据搬过去。一次小规模实验也可能先花几个小时导入数据,调整数据后再等一轮。Meta 保留了底层 Tectonic,改造了它上面的 BLOB 访问路径。

李兆龙的博客 502
上一篇: 关于application的persistent属性
下一篇: 通过uri获取文件路径手机适配
lynn8570_blog
博客等级 码龄10年 254粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值