我想知道人们认为帮助初级成员获得重构代码信心的最佳方法是什么。我发现初级开发人员通常只是遵循现有模式,并因为感知到风险而对破坏任何东西产生厌恶感。我试图让他们查看要求(新的和现有的)并使代码映射到域模型,而不是“调整”或“弯曲”现有的代码库以支持新功能。只是想看看是否有任何成功的经验故事。我们目前正在考虑推动更多的配对编程、TDD、代码审查等,但想检查是否有其他成功案例...
在我看来,唯一可靠的答案是单元测试。不一定是TDD - 只需让他们编写针对要重构的现有方法/类的测试,确保他们正在做自己想做的事情,然后允许他们在信赖测试方法仍然有效的情况下进行大胆重构。
单元测试所提供的信心水平和灵活性在这些活动中具有极其宝贵的价值。
看起来与资深开发人员一起进行结对编程并编写测试是最理想的情况。如果在配对中更有经验的开发人员担任领导,测试将成为其中的一部分。
单独编写测试留下了改进的空间。在配对环境中编写测试是两全其美的选择,因此应该更快地建立信心。
我同意 - 单元测试和结对编程。
第一步是让他们先为想要重构的内容编写测试,然后再进行重构。我认为与更资深的开发人员进行代码审查以及配对编程也有一定的价值。
有些人更容易脱颖而出并冒险尝试,关键是让团队看到这样做的结果。最终你想要的是一群初级开发人员共同努力解决各种问题,而高级开发人员可能最初构建了系统或将各种产品集成在一起,因此可以提供意见,但应该充当指导者而不是父母角色来完成任务。
另一种看待这个问题的方式是从初级开发人员的角度简单地进行视觉化。如果他们提出建议并得到回应,例如赞扬或更好的任务分配,则这可能会推动事情的发展。但是,必须小心谨慎,以避免过度提高期望值而导致问题的产生。
另外,尝试做一些编程道场。一对人坐在投影仪前编程,每五分钟轮换一个开发者。让他们谈论如何重构以及为什么这样做。
我认为这个问题并不特定于C#,所以我建议尝试使用Eclipse来使用Java。Eclipse拥有迄今为止我见过的最好的重构工具(虽然我从未尝试过IntelliJ IDEA或Resharper)。通过Eclipse学习重构,特别是在执行任何更改之前使用预览窗口,让我受益匪浅。