文件名称:治疗性重构:谈话的代码示例治疗性重构
文件大小:10KB
文件格式:ZIP
更新时间:2024-03-15 06:07:54
Ruby
治疗性重构 谈话代码样本。 幻灯片 XYZ服务 这是演讲中的主要例子。 首先添加特性测试然后进行重构的每个步骤都已分别提交。 背景 该方法是一种笨拙而令人困惑的事情,它存在于非常大的厨房水槽型模块中。 该方法流失了很多,但是在重构时已经稳定了一段时间。 我选择了用方法对象重构替换方法,以确保我所做的任何更改都将完全隔离,并且不会污染其余代码。 如果您的计算量很大,并且有一堆小的临时变量,而又不想传递这些临时变量,那么方法对象通常是一个很好的解决方案。 在这里,我们只有一个target 。 换句话说:八角锤。 有人可能会说该方法属于实际的Target类,而不是某些厨房水槽模块,但这也不是很理想。 该逻辑仅用于从命令行脚本调用的辅助过程中,因此核心应用程序实际上不需要了解它。 在不同的重构实验中,我使用了来自Ruby STDLIB的delegate来创建一个名为XYZTarget
【文件预览】:
therapeutic-refactoring-master
----.gitignore(5B)
----xyz()
--------xyz_file.rb(736B)
--------xyz_service.rb(122B)
--------xyz_service_spec.rb(1KB)
----README.md(5KB)
----codejunk()
--------duplicate_spec.rb(419B)
--------return.rb(89B)
--------if_true.rb(139B)
--------whitespace.rb(93B)
--------codejunk_spec.rb(512B)
--------interpolation.rb(113B)
--------comments.rb(334B)
--------junk.rb(373B)
--------ternary.rb(76B)
--------dependencies.rb(90B)
--------parentheses.rb(191B)
--------commented_out.rb(214B)
--------arguments.rb(84B)
--------hard_work.rb(412B)
--------object_wrapper.rb(136B)
----Gemfile(30B)
----Gemfile.lock(327B)