DRY原则下区分重复还是巧合
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
老邓聊开发
扫码关注公众号
扫码阅读
手机扫码阅读
DRY原则(Don't Repeat Yourself)强调避免代码的重复,但在实践中,区分真正的重复与表面的巧合性重复非常重要。不恰当地应用DRY原则,将外表相似的代码片段抽象化,可能会随着业务的发展导致更多的问题。
代码的重复有时仅是暂时的巧合,尤其是当两部分代码服务于迥然不同的业务逻辑时。随时间推移,业务发展导致原本相似的代码逐渐背离,若早期根据DRY原则进行抽象,可能会造成这些业务逻辑强制捆绑在一起。这种耦合导致后续的业务修改变得复杂,因为任何一个业务的改动都可能影响到另一个。
例如,将不同业务逻辑的“单据”抽象化,最初看似解决了重复问题,但随着业务的差异化发展,导致在处理不同单据时必须编写大量特定的代码,最终使得系统变得难以维护和更新。
在应用DRY原则时,关键在于从业务角度判断是否面对的是真正的重复,还是仅仅是巧合的相似。对于确实属于相同业务的重复代码,应当遵循DRY原则进行合理抽象。而对于巧合性的重复,更明智的选择是保持它们的独立性,分别处理,以避免未来潜在的耦合问题。
老邓聊开发
老邓聊开发
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
老邓聊开发的其他文章
需求在变,还要写自动化测试吗?
当问一个团队为什么不写自动化测试的时候,往往有两种答案。一是我们的系统已经没什么变化,写测试没意义;
代码Review,Review些什么?如何Review?
从我个人面试经历来看,执行代码Review的公司要比执行了TDD的公司稍微多一点
电影魔戒中的需求问题
电影《魔戒2-The Two Towers》中,佛罗多的任务是要把魔戒丢入到末日火山。在他看来,如果要完成任
业务模型驱动需求编写
王大锤老师在上BA课的时候,经常会用一个俄罗斯方块的例子:请描述俄罗斯方块旋转的逻辑。由于俄罗斯方块有好几种
测试左移,如何移?
Google曾经公布过一组数据,Bug在不同阶段被发现后修复的成本。从需求、编码、测试、上线,每晚发现一个阶
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线