272得票15回答
什么是反模式?

我正在学习设计模式和反模式。对于设计模式,我有清晰的理解,但是我不太懂什么是反模式。我在网上和维基百科上找到的定义让我感到困惑。 有人能简单地向我解释一下反模式吗?它的目的是什么?它们都做些什么?这是好事还是坏事?

250得票39回答
什么是最常见的 SQL 反模式?

与关系型数据库打交道的我们皆知(或正在学习)SQL的独特性。要达到所需结果且高效地做到这一点,需要进行一项繁琐的过程,其中一部分特点是学习不熟悉的范例,并发现我们最熟悉的一些编程模式在此处不起作用。您见过哪些常见反模式(或者自己犯了哪些)?

231得票34回答
如何处理一个有11000行的C++源代码文件?

我们的项目有一个巨大的(mainmodule.cpp)源代码文件,大约有11000行。每当我需要修改它时,我都感到非常恐惧。 由于这个文件是如此核心和庞大,它会不断积累更多的代码,我无法想出一个好方法使它开始缩小。 该文件在我们产品的多个(>10)维护版本中被使用并经常进行更改,因此重构它...

203得票31回答
单元测试反模式目录

反模式 :要正式区分实际的反模式与简单的坏习惯,不良实践或错误想法,必须至少有两个关键因素: 某些被重复使用的动作、过程或结构模式,最初似乎有益,但最终会产生更多的负面结果而非获益; 经过重构且有明确文档、在实际应用中被证明并可重复操作的解决方案。 投票选出您“在野外”中见过太多次的T...

168得票21回答
Java中带参数的单例模式

我在维基百科上阅读了“单例模式”文章,发现了这个例子:public class Singleton { // Private constructor prevents instantiation from other classes private Singleton() {}...

165得票10回答
服务定位器(ServiceLocator)是一种反模式吗?

最近我读了Mark Seemann写的文章,讲述了Service Locator反模式的两个主要原因: API使用问题(我对此完全没有问题): 当类使用Service Locator时,很难看到它的依赖关系,因为在大多数情况下,该类只有一个“无参数构造函数”。相比之下,使用DI方法通过构造函...

155得票11回答
为什么数据传输对象(DTO)是反模式?

我最近听到人们说数据传输对象(DTO)是一种反模式。 为什么?有什么替代方案吗?

138得票8回答
用“+”连接两个字符串有什么不好的原因吗?

Python中常见的反模式是在循环中使用+来连接一系列字符串。这样做不好,因为Python解释器必须为每次迭代创建一个新的字符串对象,最终导致时间复杂度为二次方。 (最近的CPython版本可以在某些情况下进行优化,但其他实现可能无法进行优化,因此程序员被劝阻依赖此功能)。正确的方法是使用''...

116得票4回答
为什么“记录和抛出”被认为是一种反模式?

这个问题是由这篇文章所引起的讨论,我没有得到任何好的答案。 如果你不能以其他方式处理异常,为什么记录异常并重新抛出它(当然要保留原始的堆栈跟踪)会是一个不好的想法?

111得票12回答
避免使用的设计模式

许多人似乎都认为,单例模式存在一些缺点,有些人甚至建议完全避免使用该模式。在这里有一个很好的讨论。请向那个问题提出任何关于单例模式的评论。 我的问题:是否还有其他设计模式应该避免或者需要格外小心使用?