YAGNI和初级开发人员

Bjø*_*aug 3 yagni

在为新系统编写代码时,我不希望在设计中引入我可能永远不需要的不必要的复杂性.所以我在这里关注YAGNI,而是重构,因为我认为需要更多的灵活性或责任变得更加明确.这让我可以更快地移动.

但是这里的初级开发者存在一个问题,因为他们无法识别何时进行重构或在何处构建设计.他们只是在现有设计中填充了更多代码.

那么,解决这个问题的最佳方法是什么?我是否应该更经常地构建一个更具前瞻性的设计,所以当添加它时,他们有一个很好的例子可以遵循,即使我们可能永远不必添加任何东西?或者我应该继续进行更多的代码审查,教育等?或两者?

你们有没有遇到过这类问题的经历?你是怎么解决的?

Seb*_*etz 11

我建议代码审查或配对编程.它让您有机会教育您的开发人员并提高整体质量.


Nor*_*sey 9

也许你首先明确认识到你的工作部分是帮助培养初级开发者.如果你不是老板,管理层应该签字.管理层需要认识到您的选择是现在开发它们或者稍后清理它们,并且您需要管理层支持这个时间.

代码评论和结对编程是很好的想法.他们特别好,因为他们不是"只为初级人士" - 我和我的一位同事一起做; 我们一起将近100岁,拥有超过70年的编程经验:-)

但是这里存在一个更大的问题:使您最有效的编程方法(YAGNI +重构)对您的初级合作伙伴无效. 我的经验是,花费多年的时间来学习YAGNI的好处,所以如果你希望他们只是学习你的做事方式,那么你就会让自己失望.

我鼓励您确定一些您认为对您的初级合作伙伴有用的方法.特定的方法可能无关紧要(异端邪说!); 我在复合/结构化设计,基于对象的设计,代数规范(!)和极端编程方面取得了成功.但

  • 选择一些有名称和一些文献的东西,你的大三学生可以为学习而感到自豪,这是他们可以为未来的项目带来的技能.

  • 为了表明它是美味的,你可能需要自己吃狗粮.挑选一些你可以忍受的东西并提高工作效率.

  • 仔细观察您的小辈,并教他们一个决定程序,他们可以用来确定他们何时应该向您寻求指导.

祝好运!