在为新系统编写代码时,我不想在设计中引入不必要的复杂性,因为我可能永远不需要这样做。因此,我在这里遵循YAGNI,并相当重构,因为我认为需要更多的灵活性或责任变得更加明确。这可以让我移动得更快。
但是初级开发人员在这里有一个问题,他们无法识别何时重构或在哪里构建设计。他们只是在现有的设计中加入更多的代码。
那么,解决这个问题的最好方法是什么呢?我是否应该更经常地构建一个更面向未来的设计,以便在添加时他们有一个很好的例子可以遵循,即使我们可能永远不需要添加任何东西?或者我应该继续进行更多的代码审查,教育,等等?还是两者都有?
你们中有没有遇到过这种类型的问题?你是怎么解决这个问题的?
发布于 2009-07-18 19:11:00
我推荐代码评审或结对编程。它让您有机会教育您的开发人员同事,并提高整体质量。
发布于 2009-07-18 19:54:26
也许你一开始就明确认识到,你的工作的一部分是帮助开发初级开发人员。如果你不是老板,管理层应该在这上面签字。管理层需要认识到,您的选择是现在开发它们,还是以后清理它们,并且您需要管理层的支持来应对这一过程。
代码评审和结对编程都是不错的主意。它们特别好,因为它们不是“仅供初级人员使用”,-I和我的一位亲密同事一起做这两件事;我们加起来已经将近100岁了,有70多年的编程经验:-)
但这里有一个更大的问题:让你变得最有效的编程方法(YAGNI +重构)对你的初级合作伙伴来说并不有效。我的经验是,人们需要数年时间才能了解YAGNI的好处,所以如果你期望他们仅仅学习你的做事方式,你就会让自己失望。
我鼓励你确定一些你认为对你的初级合作伙伴有用的方法。具体的方法论可能无关紧要(异端!);我已经在复合/结构化设计、基于对象的设计、代数规范(!)和极限编程方面取得了成功。但
祝好运!
发布于 2009-07-18 19:10:42
他们是初级的,而你是高级的,这是有原因的。
其中之一就是能够意识到何时需要更改设计。
我会像你一样继续下去,但鼓励他们在事情变得困难的时候来找你。然后,如果需要,您可以与他们一起更改设计,这将比重构更容易,并将帮助您将知识传授给初级开发人员。
https://stackoverflow.com/questions/1148314
复制相似问题