首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >复制和粘贴编码是否可以接受?

复制和粘贴编码是否可以接受?
EN

Stack Overflow用户
提问于 2008-12-30 23:40:50
回答 13查看 3.1K关注 0票数 13

大家普遍认为,复制和粘贴编程是个坏主意,但是如果您有两个函数或代码块(实际上是做的),那么需要通过几种不同的方式来处理这些函数或代码块的情况,这使得泛化变得非常混乱,这是最好的方法吗?

如果代码在本质上是相同的,除了几个小的变化之外,但是这些小的变化并不容易通过添加参数、模板方法或类似的东西来区分呢?

更一般说来,你是否曾遇到过这样一种情况:你会承认,一点点复制和粘贴编码确实是合理的。

EN

Stack Overflow用户

发布于 2008-12-31 00:03:36

在我公司的代码库中,我们有大约10个左右的大型SQL语句,它们具有高度的通用性。所有的语句都有一个共同的核心,或者至少有一个只有一两个单词不同的核心。然后,您可以将这10条语句分组为3或4组,为核心添加共同的附录,同样,每个附录中可能有一两个不同的单词。无论如何,将这10个SQL语句看作是具有显著重叠的Venn图中的集合。

我们选择对这些语句进行编码,以避免任何重复。因此,有一个函数(从技术上讲,是一个Java方法)来构建语句。它需要一些参数来解释共同核心中的一两个单词的差异。然后,它需要一个函子来构造附属物,当然这也是用更多的参数进行参数化,以求更小的差异,更多的函子用于更多的附属物,等等。

代码很聪明,因为没有任何SQL被重复。如果您需要修改SQL中的一个子句,您只需在一个地方修改它,并且所有10个SQL语句都会相应地进行修改。

但人类是很难读懂的代码。对于给定的情况,了解执行什么SQL的唯一方法是使用调试器,并在SQL完全组装之后打印出来。而找出生成子句的特定函数如何符合更大的图景是令人讨厌的。

写完这篇文章之后,我常常想知道如果我们只剪切和粘贴SQL查询10次会更好。当然,如果我们这样做,对SQL的任何更改可能会发生在10个位置,但是注释可以帮助我们指向要更新的10个位置。

将SQL放在一个地方可以理解的好处可能会超过裁剪和粘贴SQL的缺点。

票数 3
EN
查看全部 13 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/401856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档