如何帮助初级成员增强重构代码的能力信心?

7
我想知道人们认为帮助初级成员获得重构代码信心的最佳方法是什么。我发现初级开发人员通常只是遵循现有模式,并因为感知到风险而对破坏任何东西产生厌恶感。我试图让他们查看要求(新的和现有的)并使代码映射到域模型,而不是“调整”或“弯曲”现有的代码库以支持新功能。只是想看看是否有任何成功的经验故事。我们目前正在考虑推动更多的配对编程、TDD、代码审查等,但想检查是否有其他成功案例...
11个回答

17

在我看来,唯一可靠的答案是单元测试。不一定是TDD - 只需让他们编写针对要重构的现有方法/类的测试,确保他们正在做自己想做的事情,然后允许他们在信赖测试方法仍然有效的情况下进行大胆重构。

单元测试所提供的信心水平和灵活性在这些活动中具有极其宝贵的价值。


4

看起来与资深开发人员一起进行结对编程并编写测试是最理想的情况。如果在配对中更有经验的开发人员担任领导,测试将成为其中的一部分。

单独编写测试留下了改进的空间。在配对环境中编写测试是两全其美的选择,因此应该更快地建立信心。


3
我建议您在进行大规模重构之前先进行单元测试,如果代码覆盖率良好,通过运行测试,您将能够查看哪些测试失败,哪些重构影响了期望的程序行为。
基本上,单元测试可以让您的团队有信心进行重构。

1
无论如何,你都应该推动“更多的配对编程、TDD、代码审查等”。你还应确保你的程序员(无论是年轻的初级程序员还是习惯上的初级程序员)掌握基本技能。
我建议建议他们阅读麦康奈尔的《代码大全》和福勒的《重构》。

0

我同意 - 单元测试和结对编程。


0

第一步是让他们先为想要重构的内容编写测试,然后再进行重构。我认为与更资深的开发人员进行代码审查以及配对编程也有一定的价值。


0
我的建议是选择一个随着时间变化而不断改变的系统,让初级开发人员提供他们想要应用的基本计划,例如缺少单元测试、使用什么设计模式来添加新功能、你觉得这是“好”的代码吗?如果不是,你会对它做出哪些改变?其中一部分是让他们进入代码并熟悉它,因为当开发人员不知道系统中的任何内容时,他们往往只想进行最小限度的更改,以免破坏某些东西和随后的负面影响。如果有一位资深成员可以担任导师,并将初级开发人员建议的内容指导成更符合要求的内容,那么这可能是一个重要的事情。
请注意,对于上述问题,资深成员可能必须具有相当的熟悉度,并以某种方式已经完成了初级开发人员将要做的更改的计划,但是我的想法是让初级开发人员更多地参与到代码中。如果初级开发人员能够养成跳入事物并被鼓励这样做的习惯,那么我可以看到一些成功的迹象。关键是要有纠正初级开发人员建议的想法,同时鼓励他们更多地参与整个过程,而不是被告知该做什么。

有些人更容易脱颖而出并冒险尝试,关键是让团队看到这样做的结果。最终你想要的是一群初级开发人员共同努力解决各种问题,而高级开发人员可能最初构建了系统或将各种产品集成在一起,因此可以提供意见,但应该充当指导者而不是父母角色来完成任务。

另一种看待这个问题的方式是从初级开发人员的角度简单地进行视觉化。如果他们提出建议并得到回应,例如赞扬或更好的任务分配,则这可能会推动事情的发展。但是,必须小心谨慎,以避免过度提高期望值而导致问题的产生。


0
  • 要求他们编写或调查现有的测试用例
  • 运行这些测试用例,记录结果
  • 要求他们重构代码
  • 审查重构后的代码
  • 运行测试用例以匹配之前的观察结果

0

另外,尝试做一些编程道场。一对人坐在投影仪前编程,每五分钟轮换一个开发者。让他们谈论如何重构以及为什么这样做。

参见:http://www.codingdojo.org/


0

我认为这个问题并不特定于C#,所以我建议尝试使用Eclipse来使用Java。Eclipse拥有迄今为止我见过的最好的重构工具(虽然我从未尝试过IntelliJ IDEA或Resharper)。通过Eclipse学习重构,特别是在执行任何更改之前使用预览窗口,让我受益匪浅。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接