对我而言,这取决于您团队的动力。
例如,如果您的团队没有按照标准,同行评审,有条不紊的测试进行统一,或者如果您的团队的成员之间的能力水平差异很大,那么最好寻求更强的代码所有权概念带有更多黑匣子式模块化思维方式。
缺少此功能,例如,您甚至不知道“ SOLID”的意思并想一直为该接口添加新的折衷功能以“方便”的人可能会很快破坏您精心设计的符合SOLID原理的界面。到目前为止,这是最糟糕的情况。
您可能还会遇到草率的同事,他们的错误修复想法是在不了解根本问题的情况下修复症状(例如:尝试通过仅在代码中放入替代方法来隐藏崩溃并转移致命错误来解决崩溃报告。对其他人的副作用)。在这种情况下,它并没有破坏接口设计那么糟,并且您可以通过精心构建的单元测试来保护自己的意图。
理想的解决方案是使您的团队变得更严格,以至于作者权和所有权这一概念不再变得如此重要。同行评审不仅涉及提高代码质量,还涉及改善团队合作。标准不仅要保持一致性,还可以改善团队合作精神。
但是,在某些情况下,同行评审并实际上使每个人都符合标准是没有希望的,并且会带来很多没有希望的经验不足的批评家。我想说的是,代码所有权或团队所有权是否具有更高的优先级,将取决于您的团队实际执行有效的同行评审并实际上使每个人都从中受益的能力(包括评审本身) ,从而在思想观念和标准上变得更加紧密)。在庞大,松散和/或分散的团队中,这似乎是无望的。如果您的团队能够像一个“小队”那样运作,甚至您几乎都无法说出谁写了什么,那么独占将开始显得很愚蠢。
在这种非常不理想的情况下,这种代码所有权概念实际上可能会有所帮助。它试图弥补最坏的情况,但是如果团队合作通常无法在作者的代码周围围上栅栏,它会有所帮助。在那种情况下,这会减少团队合作,但是如果“团队合作”只导致脚趾踩踏,那会更好。