关于代码重构的思考

2026年ERP选型实战:按规模分档,避开成本与实施陷阱 企业资源计划(ERP)是现代企业数字化转型的核心系统,它将财务、供应链、制造、人力等业务整合到统一平台。随着云计算和人工智能技术的发展,ERP已从传统本地部署的记录工具演变为SaaS订阅制、具备AI辅助决策能力的智能运营平台。不同规模企业在选型时的关注点差异巨大:小微企业追求轻量化和快速出报表,中型企业需要在流程标准化与业务灵活性间取得平衡,大型集团则注重多法人管控和数据治理。此外,制造、电商、工程等行业对ERP的模块要求也各有侧重,成本核算数据跑不通更是普遍痛点。如何结合企业规模与行业特征,制定合理的选型 阅读详情

什么是重构?

软件设计大师Martin Fowler是这样定义重构的:“重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,使其更易理解,维护成本更低。”因此,本质上来讲,重构就是不改变功能的前提下,改进软件的设计。

为什么要重构?

1.降低维护成本
项目在演进,代码在堆砌,这个过程中伴随着需求的变化、技术的更新、人员的流动,如果没有人关注代码的质量,代码一定会越来越混乱。当混乱到一定程度,量变引起质变,项目的维护成本很可能已经高过重新开发的成本。
2.设计缺陷
优秀的代码并不是一开始就完全设计好的,而是像优秀的产品一样不断迭代出来的,因为难以预见未来所有的需求,所以随着项目演进,重构不可避免。
3.避免过度设计
如果不希望在项目前期投入过多的时间、精力进行过度的设计,那么后期重构是一种有效的手段。

重构的时机?

如果项目代码质量烂到它的维护成本已经高过重新开发的成本,此时重构已经没有意义了,我们要避免这样的情况发生。因此要树立日常持续重构的意识,我认为这比重构的能力更重要。
下面推荐几个重构的时机:
1.开发新功能时重构
此时可能会发现很多问题,比如发现不同的类需要使用同一段代码,而这段代码在之前的一个类中;发现分支条件越来越多,难以维护;发现随着功能的增强,函数的参数列表越来越长,代码长度太长难以理解等。
2.修复问题时重构
比如接口,可能是接口的返回结果不符合预期,也可能是接口的性能达不到要求。
3.代码审查时重构
一般重要的项目都要通过代码审查才能上线。在代码审查阶段,代码审查人员可能对代码的可读性、可维护性、代码的性能等进行评价并给出建议。

如何重构?

实际工作中重构时,应该先分清楚重构的规模,是大规模还是小规模的重构,根据规模大小采取不同的重构策略。
大规模重构包括代码分层、模块化、解耦、梳理类之间的关系、抽象复用组件等,这部分工作比较抽象,一般需要利用一些设计思想、原则、模式。小规模的重构包括规范命名、注释、函数参数过多、消除超大类、提取重复代码等编程细节问题,这部分工作比较具体,更多的是利用相关编码规范。
大规模重构难度比较大,需要有组织、有计划地进行,分阶段地小步快跑,每个阶段完成一小部分代码的重构,然后提交、测试、运行,发现没有问题之后,再继续进行下一阶段的重构,保证代码仓库中的代码一直处于可运行、逻辑正确的状态。而小规模低层次的重构,因为影响范围小,改动耗时短,所以随时随地都可以去做,并且容易借助代码分析工具自动发现问题,有针对性的重构。

u3d逆向学习之纯C内存读写与ImGui绘制(Android) 方法:需要在/proc/pid/maps文件查找模块名,一行行遍历所有内存,第一个参数为模块名,第二个参数为索引index(因为该模块会有多个,index为正序遍历第index个该模块),若找到了则使用。32位游戏的指针大小采用4字节,而64位游戏的指针大小采用8字节(这里需要注意),数据地址以16进制存储,使用unsigned long类型 ,该函数只有一个参数,数据地址,返回该地址的指针跳转地址。文件,比较其中的内容是否与传入的包名相同,如果相同,则返回该进程的PID。 阅读详情

相关推荐

基于人脸识别的驾驶员疲劳检测方法研究

摘 要交通安全问题愈发严重,疲劳驾驶已是造成交通事故的主要因素之一。为减少因疲劳驾驶造成的交通事故,本文设计了一种基于图像处理技术的疲劳驾驶监测系统,该系统结合了肤色模型、灰度积分投影技术以及PERCLOS方法,旨在通过实时视频图像分析准确检测驾驶员的疲劳状态。首先,系统通过肤色模型从图像中有效提取人脸区域,并在此基础上利用Haar级联分类器进行人脸检测,确保在人脸角度变化或部分遮挡的情况下依然能够实现高效识别。接着,灰度积分投影技术被应用于眼部定位,通过分析眼睛区域的灰度变化,精确确定眼睛的上下边界,从

carrott0617的博客 1005

常见代码重构技巧(非常实用)

点击上方 "编程技术圈"关注,星标或置顶一起成长后台回复“大礼包”有惊喜礼包!每日英文Man has to be crazy for once, whether it i...

程序员小乐 1373

Vmware虚拟机克隆详解:固定ip + 修改uuid等内容

分两大步 设置固定ip 克隆后修改相关配置 本文引用的其他地方的图片。会附上链接 若侵权,删 一、设置静态ip 先进行虚拟网络的编辑 接下来的操作需要管理员权限。(给权限就完事了) 接下来设置网卡: 网络和共享中心→ 更改适配器设置→VMware Network Adapter VMnet8 -> 右键属性 修改TCP/Ipv4的配置,网上常见是这种,笔者是英文的...

Unknownfuture的博客 9070

重构代码的7个阶段

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33694172的博客 171

常见的电容有哪些

电容在电路板中非常常见,类别纷繁复杂,本文化繁为简,主要介绍下常见电容。

qq_40170041的博客 768

简易电梯控制系统设计(两层楼)(

(电子科技大学 数字系统实验二 结课验收项目 ) 题目要求:

m0_48801027的博客 1万+

代码重构为什么很多人不敢做,因为满满的都是坑啊

重构一书的作者Martin Fowler对重构的定义:重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。大型重构:对顶层代码设计的重构,包括:系统、模块、代码结构、类与类之间的关系等的重构,重构的手段有:分层、模块化、解耦、抽象可复用组件等等。这类重构的工具就是我们学习过的那些设计思想、原则和模式。

程序员高级码农的博客 1386

ESP32搭配LVGL显示图片的两种方法详解:内部存储 vs 外部文件

本文详细介绍了ESP32搭配LVGL显示图片的两种方法:内部存储与外部文件。内部存储方案适合快速响应的小图片,而外部文件方案则适用于需要灵活更新和大容量图片的场景。通过对比分析,帮助开发者根据项目需求选择最优方案,提升嵌入式系统的UI性能。

weixin_30399821的博客 519

五、代码重构

如何代码易于重构

weixin_46488959的博客 832

Truncated SVD for faster dection

Truncated SVD方法最先被提出在《Fast R-CNN》论文中,用于降低全连接层的运算量,提升模型的速度。在卷积神经网络的分类任务中,FC层的运算速度远远大于CONV层,而在Fast R-CNN的目标检测任务中,大多数的运算时间发生在FC 的运算中,是因为针对每张输入图片,只进行一次卷积操作,而要对生成的Region Proposal,大致两千个,进行全连接操作进行分类与Bounding...

weixin_35747666的博客 1535

剪映自动化工具来了:AI帮你自动剪辑成片

🎬分享一个剪映自动化剪辑工具!AI 自动帮你完成从写文案、配音、加字幕、选音乐、上特效到最终导出的整套流程🎈

XiaoqiangClub的博客 858

代码重构常用的技巧

重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。对顶层代码设计的重构,包括:系统、模块、代码结构、类与类之间的关系等的重构,重构的手段有:分层、模块化、解耦、抽象可复用组件等等。这类重构的工具就是我们学习过的那些设计思想、原则和模式。这类重构涉及的代码改动会比较多,影响面会比较大,所以难度也较大,耗时会比较长,引入bug的风险也会相对比较大。

KevinChen2019的博客 851

基于Simulink和Control System Toolbox的线控转向(Steer-by-Wire)系统设计

通过上述步骤,我们成功设计并实现了基于 Simulink 和 Control System Toolbox 的线控转向(Steer-by-Wire)系统。该系统能够接收来自方向盘的角度指令,经过控制器处理后,驱动转向执行器(如电动机),实现对车辆前轮转向角度的精确控制。通过虚拟场景仿真、硬件在环测试和实车测试,验证了系统的响应速度、控制精度、车辆稳定性和实时性能,并通过参数优化进一步提升了系统的性能。

MHD0815的博客 550

代码重构思考

问题: functiongetStatusText($status){$text = '';if($status=='0'){$text = 'aaa';}elseif($status=='1'){$text = 'asdfa';}elseif ($status==5){$text = 'asdfasdf';}elseif ($status=='8'){$text = 'egwdf';}else

Sameen的博客 710

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

关于如何进行代码重构的思考

最近接手了新项目,出于对新功能实现的保证,需要对原有代码做较大程度的改动,在此过程中经常思考如何对原有代码做修改,来保证功能的实现与开发效率。 此文将着重关注“如何进行代码重构”这一问题。 第一,重构前必需对功能需求和原有代码架构有深入的研究。进而对以下几个问题给出明确的答案: 1.是否有必要要重构? 2.在什么样的代码层次上做重构操作? 为做好这一阶段的工作,你需要和策划、主管作充分讨

tanxcosx的博客 315

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

关于代码重构的一些思考

1.代码重构是亏损的,没有任何经济效益。 代码重构,完全是程序员个人的自我修养,一个程序员的编程水平高低,决定了他对代码的重构力度,听说最高的重构地步是一个方法只有7行。然而,现实中,我们如何有时间去重构到7行的代码。也许你会说,代码重构后,更易维护,更易后续开发呀?但是,你是否想过以下问题: a>你的程序真的能活那么久吗? b>上一个程序员(也许是你,也许位前辈),他是故意要写成这样差的代

青峰专栏 1981

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

重构代码的几点思考.

为什么要重构代码,因为原来的代码不能满足需要. 同时,也说明一开始有个好架构是多么的重要. 1,要把相互关联的代码放在一起.不要都放在一个文件夹里面,找都不好找. 2,过早的用模板没意义,反而搞复杂了.本来是一个的,搞成一对,结果每个都要搞一对.要坚持一的思想. 3,最重要的是基础构一定要设计好.当时为了节省一个串,现在必须要用时,就变得得不偿失了. 4,最好按一个个工序的操作,而不是一个产品一下走完所有流程,这样,这个产品是得不到工序做为整体的经验的. 让工序对接一系列产品.这样下个工序可以获得上个工序的

个人进步之路 596

基于SDD的Vibe Coding代码重构思考实践

先让AI理解目标状态,明确"为什么做"和"为什么不做"。当前问题observe函数定义错误:承担上下文管理、自建状态视图,读取工作记忆承担了3个不同层次的职责,违反单一职责原则预期目标observe只负责生成当轮观察快照上下文管理、agent状态视图管理交给独立模块重构observation与记忆交互通道硬性约束(不能做什么)action_plan不能进入observation结构(plan是意图,obs是事实)observe不能做跨轮状态管理(只处理当轮)

zuiyuelong的博客 1219

代码重构之TDD的思考

需求的不断变更是重构的最根本原因,代码架构最初的设计也是经过精心的设计,具有良好架构的。但是随着时间的推移、需求的剧增,必须不断的修改原有的功能、追加新的功能,还免不了有一些缺陷需要修改。为了实现变更,不可避免的要违反最初的设计构架。经过一段时间以后,bug越来越多,越来越难维护,新的需求越来越难实现,最初的代码构架对新的需求渐渐的失去支持能力,而是成为一种制约(新需求的开发成本会超过开发一个新的...

布道 1444

读《重构:改善既有代码的设计》的思考

重构不是一个一蹴而就的事,需要长期的实践和经验才能够完成得很好。我们重构强调的是 使代码变得更好,拥有代码洁癖。

简单猿 2662

项目中代码重构的几点思考

酷壳曾在http://coolshell.cn/articles/5201.html中对重构采用了保守的观点。这点很赞同。可以重构代码,需要满足的条件: 1. 谁可以重构代码 项目中,代码的重构人员最好是代码的原班人马,否则需要重构人员非常清楚项目原有的实现结构;并在重构前写好单元测试。  2. 单元测试 代码重构后,必须充分做单元测试(使用项目原有的单元测试用例,在需要时,补充单元测试用

我的E家 971

重构代码的简单思考

 重构代码可以从如下几个方面着手:1)已经废弃不用的注释,方法,属性,变量去掉他们;2)方法名称在各个模块雷同,但又不一致的,请修改为一致的命名;3)对相关的方法应该放在一起,便于查看;4)一些不应该作为public公开出去的属性和方法,考虑将其修改为private 或者 internal,增强封装的效果,避免误用;5)优化一些效率不高的,反复遍历查找的算法; ...

weixin_33923148的博客 85

记录下代码重构怎么做更稳妥的思考

1. 追本溯源,清楚逻辑 2. 代码未动,方案先行 3. 及时记录改动点、影响面 4. 改完一个点,要自测自测自测 最小化commit,message要规范清晰

TechMix的博客 393

java代码重构思考

场景: 下面代码是当添加评论时,后端接收到数据后,处理数据并添加的过程 public Review getReview(ReviewParamsModel reviewParamsModel) { Review review = new Review(); if (reviewParamsModel != null) { rev...

qq_35869079的博客 206

关于最近重构代码的一些思考

最近一直在参与重构项目中的代码。 之前写的代码最大的问题在于“想到哪里写到哪里”,没有从功能上先整体地进行分析,然后将类似的业务分类到一些,有条理地书写代码。应该来说本来是可以这么去做的, 因为我们花了不少时间去做详细设计。写代码的同事已经对业务的逻辑有了相对完整的理解。但由于不少同事在写代码方面经验还比较少,因此很难做到这一点。所以就想到哪里写到哪里,也比较少审视前后写的代码一起来看是不是结构...

weixin_30432007的博客 81

以重构致美学,以代码赴匠心——代码重构美学大赛技术实践与思考

本文分享了作者参加代码重构美学大赛的实践经验与思考。文章指出,代码重构不是简单的格式美化,而是通过系统性优化实现"规范性、可读性、可维护性"的统一。作者以前端管理系统为例,详细阐述了重构的三个阶段:制定编码规范、分层优化结构/样式/交互、细节打磨。重构后的代码实现了语义化标签、CSS解耦复用、JS逻辑分层等改进,兼顾了美学呈现与技术实用。作者强调,重构需要持续优化的匠心和平衡规范与创新的思维,优秀代码既要"好用"也要"好看"。通过参赛实践,作者深化

2601_95452756的博客 553
上一篇: 关于日志使用的思考
下一篇: mysql常用操作总结
acyb大麦
博客等级 码龄7年 79粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值