![]() |
1
3
像大多数编程一样,重构技能需要实践和经验。认为它可以被教授是很好的,但是它必须被学习——而且在不同的环境中可以完成的学习量有很大的差异。
|
![]() |
2
2
Code Smell 它包含了很多你可以展示给其他人的例子。 这是一个 list 何时应该使用重构(代码气味列表) |
![]() |
3
2
如果你还没有读过,马丁·福勒有一本关于这个主题的好书,叫做 Refactoring: Improving the Design of Existing Code . 他详细介绍了如何以及为什么重构特定代码段。 我甚至不敢提及这本书,因为我担心有人问起重构的问题时会假定我知道这本书,你会想,“嗯,我是说 此外 |
![]() |
4
2
你没提到考试。要“证明”重构不会破坏现有功能,您需要在进行重构之前进行现有测试或编写测试。 |
![]() |
5
1
结对编程似乎是我理解这一点的最佳方式。这样,当我们在处理真实的生产代码时,我们都会遇到一些闻起来不对劲的代码,我们一起处理代码重构。这两个人扮演着司机的良知角色,告诉司机要做正确的事情,而不是快速修复,反过来,他们都会在这个过程中学习好的代码。 重构可以是一门艺术,需要实践。你做得越多,做得越好。继续学习Martin Fowler的Ractoring书中描述的方法,并使用您的工具(Resharper for Visual Studio folk) |
![]() |
6
1
一种简单的重构方法就在它的名字里——就像从等式中提取一个公共变量一样:
变成
x已经算出了。重构代码也是一回事,因为您会发现重复的代码或逻辑并将其分解。 |
![]() |
7
1
听起来你的方法很好。在流程结束时,您展示了如何发现和修复许多问题。出于教育目的,发明新的更改/增强/修复可能会很有趣。然后,您可以询问您的导师,他们将如何使用旧的代码库和新的代码库来实施该更改。希望他们能看到,通过重构代码进行新的更改要容易得多(或者说,进行更多的重构是为假设的更改做准备的最简单的方法)。 |
![]() |
8
1
我看到了几种不同的方法可以尝试教授重构: 给出教科书式的例子。这里的一个缺点是,您可能有一些人为的或过于简单的例子,说明重构为什么有用,但这些例子并不一定像在其他情况下那样明显。
这并不是人们可以立即学会的东西,它需要时间、实践、努力和耐心,因为某些重构可能是出于个人喜好而进行的,而不是因为代码以某种方式以最佳方式运行。 |
![]() |
9
1
|
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 7 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 7 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |