草庐IT

反模式

全部标签

c# - 如何防止箭头反模式

我对如何最好地将我的代码重构为更具可读性的东西感到困惑。考虑这段代码:varfoo=getfoo();if(foo!=null){varbar=getbar(foo);if(bar!=null){varmoo=getmoo(bar);if(moo!=null){varcow=getcow(moo);...}}}return;如您所见,需要大量嵌套的ifblock,因为每个嵌套的if都依赖于先前的值。现在我想知道如何让我的代码在这方面更简洁一些。我自己想到的一些选择是:在每个if子句之后返回,这意味着我会在多个地方离开我的方法抛出ArgumentNullException,之后我会在最后

C# 反模式

锁定。这个问题及其答案是locked因为这个问题离题但具有历史意义。它目前不接受新的答案或互动。长话短说:我找到了Javaantipatterns不可或缺的资源。对于初学者和专业人士一样多。我还没有为C#找到类似的东西。所以我将把这个问题作为社区wiki开放,并邀请大家分享他们的知识。由于我是C#的新手,我对此很感兴趣,但不能从一些反模式开始:/以下是我发现特别适用于C#而不是其他语言的答案。我只是复制/粘贴这些!也考虑看看对这些的评论。ThrowingNullReferenceException抛出错误的异常:if(FooLicenceKeyHolder==null)thrownew

javascript - JavaScript 存在哪些反模式?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我发现不该做的事比该做的事更难学。根据我的经验,专家与中间人的区别在于能够从各种看似等效的方法中选择做同一件事的能力。那么,当涉及到JavaScript时,哪些事情是你不应该做的,为什么?我能够为Java找到很多这样的内容,但是由于JavaScript的典型上下文(在浏览器中)与Java的非常不同,我很想知道结果是什么。

php - `return $this;` 设计模式还是反模式?

我见过很多次ZendFramework使用return$this;pattern风格-从我的角度来看:优点:似乎它的pattern风格相当不错,可以将许多操作链接到同一对象上并使您的代码更短。缺点:当您看到对象在方法中返回自身时,代码看起来有点奇怪,该方法执行其他操作(例如,某些属性的setter)它真的是很好的pattern实践还是反pattern实践?编辑:好吧,从我的角度来说,称其为“模式”有点过分了,感谢大家为我指明了正确的方向! 最佳答案 返回this允许您链接调用和设置值。它对于配置某些对象非常有用(参见Fluentin

javascript - 在新的 Promise() 构造函数中使用 async/await 是一种反模式吗?

我正在使用async.eachLimit函数来控制一次操作的最大数量。const{eachLimit}=require("async");functionmyFunction(){returnnewPromise(async(resolve,reject)=>{eachLimit((awaitgetAsyncArray),500,(item,callback)=>{//dootherthingsthatusenativepromises.},(error)=>{if(error)returnreject(error);//resolveherepassingthenextvalue.}

java - 关于为什么 'Anemic Domain Model' 被视为反模式的具体示例

关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion如果这是重复的,我深表歉意,但我在相关问题中找不到关于该主题的任何具体示例。看完MartinFowler'sarticleonthe'AnemicDomainModel',我不知道为什么这被认为是反模式。甚至大多数企业开发人员是否认为它是一种反模式,因为AFAIK可能90%的j2ee应用程序都是以“贫乏”的方式设计的?有人可以推荐有关该主题的进一步阅读(除了“领域驱动设计”一书),或者更好的是,提供一个

java - 常量接口(interface)反模式说明

我刚刚在某处读到,使用通用项目常量的接口(interface)是不好的做法,也称为ConstantInterfaceAnti-Pattern。.如果我理解正确的话,提供的原因是一旦实现,该类会将这些常量公开。嗯,我首先不明白“实现”的必要性。难道不能直接使用这些静态常量吗?那么,当我可以执行以下操作时,为什么还要经历importstatic的麻烦:interfaceConstants{publicstaticfinalintFOO_1=1;publicstaticfinalintFOO_2=2;}publicclassTest{publicstaticvoidmain(String[]

c# - 没有catch block 的finally block 是java反模式吗?

在对一些看起来像这样的代码进行故障排除时,我遇到了非常痛苦的故障排除经验:try{doSomeStuff()doMore()}finally{doSomeOtherStuff()}问题很难解决,因为doSomeStuff()引发了异常,这反过来又导致doSomeOtherStuff()也引发了异常。第二个异常(由finallyblock抛出)被抛出到我的代码中,但它没有处理第一个异常(从doSomeStuff()抛出),这是问题的真正根本原因。如果代码是这样说的,问题就会很明显:​​try{doSomeStuff()doMore()}catch(Exceptione){log.erro

javascript - 什么时候 .the(success, fail) 被认为是 promise 的反模式?

我看过bluebirdpromiseFAQ,其中提到.then(success,fail)isanantipattern.对于try和catch的解释我不太明白。以下有什么问题?some_promise_call().then(function(res){logger.log(res)},function(err){logger.log(err)})似乎该示例表明以下是正确的方法。some_promise_call().then(function(res){logger.log(res)}).catch(function(err){logger.log(err)})有什么区别?

java - 为什么数据传输对象 (DTO) 是反模式?

我最近无意中听到有人说datatransferobjects(DTO)是一种反模式。为什么?有哪些替代方案? 最佳答案 有些项目的所有数据都有两次。一次作为域对象,一次作为数据传输对象。这种重复会带来巨大的成本,因此架构需要从这种分离中获得巨大的yield才值得。 关于java-为什么数据传输对象(DTO)是反模式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1440952/