重构的目的,以及重构时的“测试先行”——to:Schlemiel(维特根斯坦的扇子)
1. 重构的目标是否一定是一个模式。我认为不是。不错,模式常常会指明重构的方向,在某些情况下模式也确实是重构的目标,但这却不是必然。重构的目的是改进程序的质量、驱除程序中的smell。具体说就是要高内聚、低耦合,并提高程序的可读性。Fowler在他书中举出的smell of code都是对高内聚、低耦合这一原则的违反,或是降低程序的可读行,而重构的方法都是在内聚、耦合、可读性这几方面做文章的。
模式是实践中形成的解决常见问题的通常解法。但不是唯一解法,也不是任何情况下的最优解。因此软件中也不是要处处用模式,更何况某些情况下Pattern会成为AntiPattern。模式也就更不会总是成为重构的目标了。
而且某些重构的粒度是非常小的,是不可能以某个模式为目标的,比如extractMethod,moveMethod等。
2. 如果要对一个没有任何单元测试代码的软件进行重构,此时能不能做到“测试先行”,如何做到“测试先行”。我觉得在一定条件下还是可以的。因为每一个重构的步骤是很小的。所以是可以针对这一小步骤写单元测试代码的。然后随着重构范围的扩大,在逐渐扩大测试覆盖的范围。因此也不能就说是Mission Impossible。不过前提是能把要重构的部分与软件其它部分隔离开来。如果软件设计的实在太差,代码件的依赖关系是在太复杂,这时到真有可能成为Mission Impossible。如果一定要对这样的软件进行重构,而非重写,我也不知道该怎么做最好。希望能听到高见。
相关推荐
【电池寿命预测】基于早期循环数据的随机森林模型与不确定性评估:融合袋外误差选择与保形校准的可复现技术体系 MATLAB 早期循环数据预测电池寿命|随机森林与不确定性评估
内容概要:本文档介绍了一个基于MATLAB的项目,旨在利用早期循环数据预测锂离子电池的循环寿命。项目采用随机森林回归模型,建立从电池早期五个关键特征(容量保持率、内阻、电压平台偏移、平均工作温度、库仑效率)到最终循环寿命的非线性映射。为增强预测的实用性,项目引入了基于袋外(Out-of-Bag, OOB)机制和保形预测(Conformal Prediction)的不确定性评估,生成自适应的预测区间,量化预测结果的可信度。整个流程涵盖了从模拟数据生成、模型训练与参数调优、不确定性校准到结果可视化的完整链条,并设计了可复现、防信息泄露的三阶段数据划分(训练、校准、测试),最后探讨了模型在电池研发、制造、新能源汽车和储能等领域的应用前景。; 适合人群:具备一定编程基础,熟悉MATLAB环境,对机器学习和数据分析有兴趣的研发人员、工程师和研究生。; 使用场景及目标:①利用随机森林模型,基于电池早期循环数据预测其全生命周期;②建立可量化的预测不确定性区间,为风险决策提供依据;③构建一套完整的、可复现的数据分析与模型评估流程,服务于电池的全生命周期管理。; 阅读建议:此资源以MATLAB为开发平台,通过详细的代码示例展示了从数据生成到模型部署的全过程。学习者应重点关注数据划分、袋外参数选择、保形预测区间的构建等核心模块。建议在学习时,结合文档中的理论阐述,亲手运行并调试代码,深入理解随机森林在回归任务中的应用以及不确定性评估的实现细节。
政府科技管理者如何精准匹配区域重点产业与科技成果资源?.docx
政府科技管理者如何精准匹配区域重点产业与科技成果资源?
高校技术转移办公室如何优化技术成果的展示与推介流程?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
Special-Comfy-part1.7z.027
ComfyUI专用模型资源分卷压缩包,Special-Comfy-part1系列第027卷。7z分卷格式,单卷900MB,需配合全部分卷解压使用。
Python3 datetime时区避坑指南
原生datetime.now()获取本地时间,不带时区属性,属于 naive时间,跨服务器比对会报错。带时区时间使用datetime.astimezone,强制绑定东八区时区。禁止手动加减8小时修改时差,夏令时更新会导致时间错误。时间计算:timedelta直接实现天数、小时增减,无需手动换算秒数。字符串解析使用strptime,格式化使用strftime,格式符号严格区分大小写,%Y四位年份、%y两位年份极易写错。线上时间异常大多源于时区不统一。 http://dejiazhibozaixian.org/index.html http://bjbmhy.com/index.html https://zhida.zhihu.com/share/7702393071245885926 http://dejiazhiboquantianmianfei.org/index.html http://cqbesttoo.com/index.html


