DRY原则下区分重复还是巧合
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
老邓聊开发
扫码关注公众号
扫码阅读
手机扫码阅读
DRY原则(Don't Repeat Yourself)强调避免代码的重复,但在实践中,区分真正的重复与表面的巧合性重复非常重要。不恰当地应用DRY原则,将外表相似的代码片段抽象化,可能会随着业务的发展导致更多的问题。
代码的重复有时仅是暂时的巧合,尤其是当两部分代码服务于迥然不同的业务逻辑时。随时间推移,业务发展导致原本相似的代码逐渐背离,若早期根据DRY原则进行抽象,可能会造成这些业务逻辑强制捆绑在一起。这种耦合导致后续的业务修改变得复杂,因为任何一个业务的改动都可能影响到另一个。
例如,将不同业务逻辑的“单据”抽象化,最初看似解决了重复问题,但随着业务的差异化发展,导致在处理不同单据时必须编写大量特定的代码,最终使得系统变得难以维护和更新。
在应用DRY原则时,关键在于从业务角度判断是否面对的是真正的重复,还是仅仅是巧合的相似。对于确实属于相同业务的重复代码,应当遵循DRY原则进行合理抽象。而对于巧合性的重复,更明智的选择是保持它们的独立性,分别处理,以避免未来潜在的耦合问题。
老邓聊开发
老邓聊开发
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
老邓聊开发的其他文章
如何提升代码质量
好的代码都有一些共同的特征,如可读性、较少的方法行数、高内聚低耦合、职责单一。但这只是一个结果,作为一个工程
业务模型驱动需求编写
王大锤老师在上BA课的时候,经常会用一个俄罗斯方块的例子:请描述俄罗斯方块旋转的逻辑。由于俄罗斯方块有好几种
劝君放弃微服务
最近几年以来,微服务开始大行其道。各种项目都开始采用微服务架构。在此基础上,又诞生了多种服务、框架用来治理
测试左移,如何移?
Google曾经公布过一组数据,Bug在不同阶段被发现后修复的成本。从需求、编码、测试、上线,每晚发现一个阶
依赖倒转以及为何要倒转
SOLID原则里面的D,就是依赖倒转原则。我们为何要依赖倒转?在面向对象中如何利用依赖倒转?
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线