anti-patterns相关内容

Symfony2 / Doctrine查询循环

我正在清理别人写的旧代码,因为我们遇到超时问题,特别是那些正在推动系统限制的客户。 我知道这是一个反模式,代码充满了这种变化: $ userIDs = [ 100,101,107,208,...] //吨的用户,但不是所有的公司用户。 $ companyID = 4356; foreach($ userIDs as $ id){ $ user = $ em-> getR ..
发布时间:2017-06-14 23:42:20 PHP

Struts ActionForm属性应该是什么类型的?

我继承了这个巨大的遗留Java Web应用程序使用Struts 1.2.4。我有一个关于ActionForms的具体问题。其中一些只有String属性(即使是数字),其中一些使用看似合适的类型(整数,日期,字符串等)。这里最好的做法是什么? 此外,似乎如果一个属性是Integer类型,而且用户输入的值不是一个整数值,Struts会静静地吞下这个并且不设置属性。这是什么? 解决方案 对 ..
发布时间:2017-05-16 19:08:56 Java开发

DI控制 - 怪兽反模式:难以理解

我正在阅读Mark Seemann的.NET中的依赖注入 虽然新关键字是一个代码气味,当涉及到VOLATILE DEPENDENCIES时,您不需要担心使用STABLE DEPENDENCIES。 新的关键字一般不会突然“非法”,而是 ,但您不应该使用它来获取VOLATILE DEPENDENCIES的实例。 也许是因为我仍然不能把我的头包裹在环境上下文中,而不是一个全局变量,但是 ..
发布时间:2017-05-16 19:08:06 C#/.NET

jQuery(反)模式:使用字符串操作构建选择器

好还是坏? / strong> 解决方案 那是什么问题?什么是替代品 - 只是将它们编码为单个字符串?但是,您可以在网站上使用约定如何组织布局。如果您只是将选择器组件定义在一个位置,并使用它来构建一个选择器,听起来像这样做不会比通过所有代码更麻烦,并且在其显示的任何地方进行搜索替换。 我会说这是很好的,假设你有其他组织的字符串(在一个地方定义,在几个地方使用)。 ..
发布时间:2017-05-16 18:15:31 前端开发

ActorRef到其他演员好还是坏?

我试图弄清楚我对于其他演员的使用​​情况并不是一种反模式。 我的系统中有几个演员。有些是长寿命的( restClientRouter ,发布者),有些死后,他们完成了工作( geoActor )。短命的演员需要向长期的演员发送消息,因此需要他们的 ActorRef 。 //路由器为一堆其他演员 val restClientRouter = createRouter(context. ..
发布时间:2017-05-14 21:47:40 软件设计

单身人士的具体合法用途是什么?

可能重复: 设计模式:何时使用单身人士? 此问题一般来说,单身人士是否“被认为是有害的”。我只是想从你的经验中知道,单身人士似乎运作良好的一些具体情况。 编辑: 如果你想讨论一般 的单身人士的适当性和/或邪恶,那么有一个潜在的问题: 137975 , 11831 糟糕!我刚刚发现我的问题已经在这里被问到:设计模式:何时使用Singleton? 解决方案 我们基本上 ..
发布时间:2017-05-14 21:27:46 软件设计

如何克服反模式“大泥泥”?

什么原因使计算机程序变成大泥泥球?有可能从这种反模式中恢复吗?是否有可以应用的重构方法? 解决方案 一大泥泥通常发生因为以下之一: / p> 需求更改 - 您构建了一套需求的解决方案,随着时间的推移,现在,您可能会喜欢不同的观众,他们希望使用具有略微不同要求的同一产品。您将这些要求烘焙到相同的产品中,最终使用BBOM。 开发人员更改 - 原始产品已被由具有某些设计和架构假设的一 ..
发布时间:2017-05-14 21:24:15 软件设计

单身亡

如何在go编程语言中实现Singleton设计模式? 解决方案 设置是否实现单例模式是一个好主意,这是一个可能的实现: package singleton type single struct { O interface {}; } var instantiated * single = nil func New()* single { 如果实例化== ..
发布时间:2017-05-14 11:59:09 软件设计

`return $ this;`设计模式或反模式?

我已经看到很多次Zend框架使用 return $ this; pattern style - 从我的角度来看: Pro:似乎是相当不错的模式风格,用于链接同一个对象上的许多操作,使您的代码更短。 Con:当您看到该对象在方法中返回自己的方法时,代码看起来有点奇怪,这样做会做些其他事情(例如某些属性的setter) 真的很好 pattern 练习或者可能是反模式实践? 编 ..
发布时间:2017-05-14 11:21:28 PHP

避免设计模式

许多人似乎都同意,Singleton模式有许多缺点,有些甚至建议完全避免这种模式。这里有一个非常好的讨论。请将有关Singleton模式的任何意见引到该问题。 我的问题:是否有其他设计模式,应该避免或非常小心使用? 解决方案 模式很复杂 所有的设计模式都应该小心使用。在我看来,如果有正当理由,您应该重构模式而不是立即实现模式。使用模式的一般问题是它们增加了复杂性。过度使用模式会 ..
发布时间:2017-05-14 09:11:19 软件设计

Python:正在使用“..%(var)s ..” %本地人()一个很好的做法?

我发现这种模式(或反模式),我很高兴。 我觉得这很敏捷: def example(): age = ... name = ... print“hello%(name )你是%(年龄)年龄“%本地人() 有时候我用它的表亲: def example2(obj): print“%(path)的文件有%(length) s字节“%obj .__ dict ..
发布时间:2017-05-14 09:05:24 Python

ServiceLocator是否是反模式?

最近我阅读了关于服务定位器的 Mark Seemann的文章反对模式。 作者指出ServiceLocator反模式的两个主要原因: API使用问题(我完全可以使用) 当课程使用Service定位器时,很难将其依赖项看作大多数情况下,类只有一个PARAMETERLESS构造函数。 与ServiceLocator相反,DI方法通过构造函数的参数明确地暴露依赖关系,因此Intelli ..
发布时间:2017-05-14 08:49:40 C#/.NET

为什么Singleton被认为是反格局?

可能重复: 对单身人士来说如此糟糕? Singleton设计模式:陷阱 Singleton反模式 我听说过最近Singleton是一个反模式。我知道这与一个类单例的事实有关,就是使这个唯一实例成为一个全局变量,但它也做了很多事情(限制该对象的实例数量,管理实例化等)。 为什么单身人士被认为是反模式?有什么选择? 解决方案 为了帮助回答,这里有更多关于反模式评论 ..
发布时间:2017-05-12 17:58:46 软件设计

依赖注入 - 使用数据传输对象(DTO)?

考虑下面的代码(已被简化)。我有一个服务类,返回一个特定DTO对象的列表,每个对象实现自己的特定接口。在实际的代码中,我们正在使用遗留代码,通过对数据集进行迭代来填充这些代码。 问题: 我们是否创建/使用DTO而不新建或使用服务定位器反模式?在组合根中组合一个空的DTO对象并通过构造函数将其注入到Service类中是没有意义的,因为我实际上将DTO用作一个填充列表的临时变量。 p> ..

你如何重构上帝的课?

有没有人知道重构一个上帝对象的最好方法? 它不是简单的打破成一些较小的类,因为有一个高方法耦合。如果我拉出一个方法,我通常最终拉走每一个其他方法。 解决方案 就像Jenga。你需要耐心和稳定的手,否则你必须从头开始重现一切。 其他建议: 在提取方法之前考虑:此方法运行什么数据?它有什么责任? 首先尝试维护god类的接口,然后委托调用到新提取的类。最后,神类应该是一个没有 ..
发布时间:2016-11-23 11:33:08 其他开发

是否是修改JavaScript内置原型的反模式?

我从这篇文章了解到,这是一种反模式在JavaScript中修改 Object 的原型。我很好奇,但是,如果它被广泛认为是一个反模式来修改其他“内置”原型。 例如:假设我们要将 setPixel(x,y,color)函数添加到 CanvasRenderingContext2D - 抽象出获取上下文图像数据的义务,将像素设置为某种颜色,并将图像数据返回。 CanvasRenderingC ..
发布时间:2016-11-12 23:55:46 前端开发

怎么办一个11000行的C ++源文件?

所以我们有这么大的(是11000行巨大?)mainmodule.cpp源文件在我们的项目,每次我必须触摸它我cringe。 这个文件是如此中央和大,它不断积累越来越多的代码,我想不出一个好的方法,使其实际开始收缩。 文件在我们的产品的几个(> 10)维护版本中使用和主动更改,因此它真的很难重构。如果我“简单地”把它拆分,说一开始,3个文件,然后合并回来的更改维护版本将成为一场噩梦。而且 ..
发布时间:2016-10-14 22:36:46 C/C++开发

单身缩放

有一些困难的时间思索一些体系结构问题对我的基于服务器的应用程序后,我觉得我将不得不使用单身来完成我的目标。纯粹是出于以下原因(我辩解闻): 我不需要昂贵的物品通过深入调用堆栈 我可以在任何上下文中的单管理对象履行职责。 (很多代码已经存在,所以我不愿重写,否则工作代码广泛块) 除此之外,单身建议的另一个问题。我的基于服务器的应用程序基本上是与可以调用服务器的多个实例的类的DLL。服务 ..
发布时间:2016-10-05 23:44:51 C#/.NET