如果有人问如何做XYZ,而您认为完全做XYZ是一个Bad Idea™,那么发表这样的答案是否有效?您不是在回答问题,而是在争论问题的有效性。您可以在评论中进行此操作,但我认为评论有时并没有足够的分量。例如,今天我遇到了SO1176239。对于那些不想链接的人:


我想建立一个关于教授的Wiki网站,以便学生在为他工作之前可以共享信息并检查教授的声誉。


,我真的想发表一个回答,说:“我认为这是一个非常糟糕的主意”。 (事实上​​,尽管我意识到这样做可能会让我发火,但我还是这样做了。)

我错了吗?我应该怎么做呢?

评论

您为什么不告诉他们改用jQuery?

您必须在夜间围绕教授建立一个网站,这样当他醒来时他不会知道他在哪里。

标有SO1176239的SO帖子不存在。

非常相关,一个“不做”的问题显然是正确的答案,但是答案仍然给出了如何在Linux上禁用kill命令的方法

@DavyM链接到的答案并不是说不要这样做,只是希望发生非常糟糕的事情。

@zugzwang第二个答案以“您不应该在系统范围内禁用它,因为...”开头并带有解释,这是一个很棒的“不要这样做”的答案,并且是完全有效的答案。第一个答案(我直接链接到的答案)为用户提供了他们所要的确切信息-一种完全弄乱他们的机器的工具。关键是,两个答案都是有效的答案,包括“不要做”答案。

@DavyM对我而言,该问题的链接以“使用此内核模块禁用amd64上的kill系统调用。使用后果自负。预期会带来严重的副作用”。并且链接中的ID(1092160)与在我引用的答案的upvote标志上找到的ID相匹配。顺便说一句,我所引用的答案(和您的链接似乎指向)具有〜8倍的赞成票(57 vs 7),并且被认为是正确或最佳答案,而不是您引用的答案。

我不好,它没有被接受,但确实有更高的投票数。

被接受的答案也没有说“不做”,而是明确表示“不做”应该是一个理智的人在大多数情况下(即使不是所有情况)在回答问题时所做出的结论直接。

这是每个人的一堂课:在您的元问题中不包含指向问题的链接,该链接将被删除。

#1 楼

我认为这是一个有效的答案,前提是您要解释为什么OP不应该这样做(您在示例中所给出的问题中就是这样做的)。
但是我也将考虑回答实际的问题。如
“不要因为A,B和C而这样做。但是,如果您还是决定这样做,我会采用这种方法:...”

我已经收到了一两个不要回答我的问题,我发现质疑自己如何解决问题的决定非常有帮助。 (这也使我的自我受到了一点伤害,但好处却远远超过了)。

评论


同意,也可以,只要您以合理的方式解释为什么至少有一个网络引用来支持您的职位

–杰夫·阿特伍德
09年7月24日在9:27

对于使用正则表达式验证名称中的空格数的问题,我回答了“不要做”。我认为没有人介意,因为这是公认的答案。

– pipTheGeek
09年7月24日在15:51

如果不解释您的原因,请不要回答,这毫无意义,因为OP可能会继续尝试尝试

– Casebash
09-10-29在5:27

投票,如果有答案说不要因为这个原因而这样做,那么这是一个更好的方法,这将非常有帮助。有时候,尽管人们只是说不做,仅此而已,但无济于事。

– Rudiger
11年1月24日在22:41

“至少一个网络引用来支持您的职位”? ah,代表的全部意思是您是权威。

–CurtainDog
2011-02-23 14:08

您写的是“考虑实际答案”,但我想这是迄今为止最重要的事情,应该尽一切努力包括实际答案! SO上有很多误导的“不要这样做”答案(想到“永远不要在代码中创建NSView !!!”)。回答实际问题不仅是证明您的告诫不仅是下意识的无知的最简单方法,而且是表示尊重和教育SO社区的最简单方法。

–原始用户名
2015年10月23日,凌晨1:04

我只是想说明一下,“多加努力”的解决方案是说“不要这样做,因为<插入原因>”。但也要跟进“这就是我将如何解决您的原始问题/问题/要求”。通过教给他们一种思考问题的方式,简单地引导OP朝着正确的方向走很长的路要走。

–特克斯
18年1月13日在1:02

#2 楼

除非您的回答中嵌入“不要做”,否则“不要做”不是对“如何做XYZ?”问题的有用答案。

我通常将“不要这样做”这样的回答:


回答问题
为什么不应该那样做

过去,我正在做一个个人项目,只是为了探索一些想法/概念。我问“在Y情况下如何X?”并收到几十个“不要做!!!!”回复,然后被投票(被我拒绝),只有一个发帖人实际上回答了我的问题。

我的情况是,我特别指出我知道这不是最佳实践,我只是在尝试探索。因此,“不要这样做!

因此,因为这是一个技术问答网站,所以您应尽可能回答问题,以告诉操作人员“这是您的操作方式”或“这是方法您可能会用另一种方法来完成任务”。然后,只有在回答了实际问题之后,才应解释为什么这不是一个好主意。否则,您只是在骂人。

编辑

回应RSolbergs评论:“可以接受,如果您回答“这样做可以吗?””

如果有人问“可以这样做吗”,那么可以,只要您支持答案,就可以说“不”。那不是我所指的情况。在这种情况下,制定一项政策禁止50%的答案是没有意义的。

我说的是有人问“我如何做XYZ?”的情况,如果您说“不要做XYZ”,实际上是在回答问题!

打个比方。如果有人对你大喊:“嘿,如果我被困在井里怎么走?”然后您大喊“别掉进去!”

然后您可以嘲笑自己的聪明之处,然后在那个人淹死时走开。

编辑

回应Shog9,提到了不应该做的事情。

请参阅“有恶意意图的问题”。

Stack Overflow是一个技术问答网站。这里不应该是崇高而有能力对他人做出判断的地方。如果您对所问的问题感到不舒服,则不要回答。

我与一位同事讨论了是否可以创建可直接访问打印机的网页并打印一些东西。他说不是,我坚持认为这是可能的。在一百万年中,我们俩都没有在生产应用程序上使用过它,这简直是不可思议。但是,技术问题对我很困扰,因此我将其提出了Stack Overflow。我提到我显然永远不会这样做,而且我仍然收到“不要这样做!”回应。正如我一遍又一遍提到的那样,它们完全没有用。

对于与技术限制有关的问题,以及在受到严格限制的情况下可能创建某些功能的问题,我将转到Stack泛滥,因为那里的人比我聪明几百万倍。但是,一旦我提出了技术性问题,我就在寻找技术性答案,而不是找人讲教。

我不介意有人说“这是一个坏主意” ,我会这样做,但是这里是您的问题的答案“很好,因为他们仍然提供了答案。但是,如果他们只能说“不要那样做”,那我就是我的起点。

技术问题应得到技术解答,不这样做就不能回答技术问题。

评论


这个答案对于问“可以这样做的人......”完全有用。

– RSolberg
09年7月24日在15:16

一方面,我可以表示同情:我问了一个问题,目的是寻找一种用途广泛的语言功能的合法使用方式,并迅速被要求在任何情况下使用该功能的答复所抨击。不太有帮助...另一方面,我看到过一些问题,他们在做一些对他人不友好或完全危险的事情时寻求帮助。我不想回答这些问题,然后警告不要使用答案中提出的技术-那是要给学步儿童装上枪,然后要求他不要射击!我宁愿让他相信这种危险,并帮助他避免整个局势。

–Shog9
09年7月24日在17:26

我认为,如果有人问:“我跳进井后如何脱井?”会是一个更好的类比。

–男士
09年7月24日在17:31

@mmeyers,然后在SO上,您将得到“刚开始时不要跳入”的响应

– devinb
09年7月24日在17:36

技术问题应得到技术答案;没有实际应用的幻想飞行不是技术问题。

–CurtainDog
2011-02-23 14:12

绝对,此外,“不做”答案对于通过搜索到达问题的人们可能几乎是无用的。

–詹姆斯
11年5月23日在16:07

@CurtainDog仅仅因为某些东西没有真实的应用程序并不意味着它不是技术性的。另一方面,这可能是愚蠢的。

–Milind R
2014年2月5日在16:34

#3 楼

在我看来,这是有层次的。

在某些情况下,发帖人试图做他或她本不该做的事情,无论是非法的,不道德的还是完全不明智的。我倾向于在回答中提及这一点,以及任何有用的技术信息。

在某些情况下,发帖人试图做一些不可能的事情,在这种情况下,我通常会解释为什么这是不可能的,而且经常对发布者要完成的任务进行猜测,以便我提出建议。

在某些情况下,发布者正在询问如何以螺丝方式使用工具(希望在SVN上保留预订,例如),在这种情况下,我会解释为什么这是一个坏主意,以及(如果可能的话)如何做。

答案就是“不要那样做!”是没有用的,除非张贴者询问是否可以,在这种情况下,它几乎没有用。它应该始终伴随着原因。不尊重发布者的答案也几乎没有用(只要对问题投下赞成票,如果您觉得那样就离开)。但是,告诉发布者如何做一些愚蠢的答案(仅严格回答发布者的问题)比没有用的要糟。

#4 楼

这取决于上下文。

对某个问题的经过深思熟虑的答复,该问题寻求对可能有害或非法的事物(由于论坛的全球性质,后者是一个雷区)的帮助。似乎对我有帮助。评论在很多情况下就足够了,但有时可能需要一个答案,以使观点更清楚或布局支持材料和参考资料。极少数情况下,如果建议的职位显然很不好,则标记该职位可能是适当的。

另一方面,回答“您最好购买MAC”的答案询问如何在MS Vista上做某事似乎完全不合适(我不使用任何一个平台,因此在此类技术问题上可以保持中立)。

评论


Mac和Windows都不行?我不知道还有什么其他选择... BeOS? ;-)

–特雷布
09年7月24日在8:28

NeXT工作站?算盘? BSD4.4?

– Perbert
09年7月24日在13:04

噢... NeXT ...现在这些人很难找到。

–贝斯卡
09年7月24日在17:24

@beska:只要使用Mac。可可框架基本上是从NeXT派生的。

– David Thornley
2010-4-5 20:02

@David Thornley:我知道。我曾经在OmniGroup aka Omni Development工作,该公司专门为NeXT开发(现在为Cocoa开发)。 NeXTSTEP在很多方面都领先于曲线。

–贝斯卡
2010年4月6日,12:53

和OS / 2。您不敢忘记OS / 2。

–ЯegDwight
2010年8月26日在12:19



#5 楼

一般而言,如果有人问如何做某事,而您认为这是一个坏主意,请给他们一些答案,告诉他们他们想要的是什么,然后解释为什么您认为这是一个坏主意(或弊端是什么)以及他们可能如何做做得更好。

应该避免宣扬自己的观点。您的回答和语气应反映出周到和考虑。

评论


有时这不是观点,也不是讲道。 1/0会引起问题,通常是零除故障或异常。那只是事实。

–约翰·桑德斯(John Saunders)
09年7月24日在11:09

@John:但是在那种情况下,您并不是说“不要做”,而是在说“这是行不通的”。这是有区别的,因为人们通常只对实际可行的事情说“不做”,但不适合某些范例。

– devinb
09年7月24日在12:20

如果我问您“我该如何闯入您的房屋以及我可以利用您的安全系统中的哪些漏洞”,您是先“给我某种答案”,还是只是说“不做”?

– Paul Tomblin
09-10-31在15:33

1/0在IEEE浮点运算中并不算太糟糕;这只是正无穷大。 OTOH 0/0,这是个坏消息。

–研究员
2010-6-26 at 16:45

#6 楼

就个人而言,我最常见的经验是动态SQL与查询参数。如果您在某人的问题中使用动态SQL,则一定要假设他们没有充分的理由,除非他们告诉您其他情况。您可能会有不同的经历,但是我至少不会让一个明显的安全问题受到挑战。

现在,我认识到,并非该问题的所有实例都会引起安全问题。对于不太严重的问题,最好让它滑动。但是即使在这里,我仍然认为,即使OP知道他们在做什么,以后再阅读该问题的其他人也可能不知道,重要的是要有一个经过充分投票的问题,其中提到某些内容可能不适合大多数人。时间。

评论


在我进入决赛之前,重要的是要有一个经过投票表决的问题,我认为发表评论就足够了。但确实,答案比评论要好得多。

– Arjan
2010-4-5 17:13

@Arjan-投票得足够好的评论通常就足够了,有时我会这样做。但是更多时候,这确实是一个动态的sql问题,我不仅要建议查询参数,还要显示一个示例。并且注释不利于该代码示例。

–乔尔·科恩(Joel Coehoorn)
2010-4-5 17:27

我不确定是否要对此投票。我同意投票最多的答案应该提到这是一个坏主意,但我坚决认为,最高的“答案”根本不应该是答案。正如我在(非常沮丧的)答复中详细提到的那样,“不要这样做”并不是对技术问题的答案,主要是因为即使他们同意您的意见,他们仍然会遇到问题,而现在他们所面临的甚至更少想法如何处理它。那与帮助相反。这意味着最好的答案应为以下格式:...

– devinb
2010年7月6日在19:10

“您不应该因为Y而做X。Z可以实现相同的目的而没有A,B,C的缺点”。如果您没有提供VALID EQUIVALENT替代品,那么这根本不是答案。添加的注释是,当我说“有效等效”时,它不涉及其他技术/框架/产品。如果涉及更改框架或下载某些内容,那么这是无用的响应,因为您必须假设用户处于他们可以执行此操作的环境中。

– devinb
2010年7月6日19:11



投票得好!=投票最多

–乔尔·科恩(Joel Coehoorn)
2011年5月13日下午5:28

#7 楼

我认为总的来说还不行,原因如下:

以后在寻找相同问题的人们会发现问题-但却没有任何有用的答案。他们可能会有不同的情况,使“不做”的答案不正确,但是如果他们尝试打开一个新问题,则很可能会重复出现。

正确的做法是正确的在这种情况下,要做的就是编辑原始问题以使其更笼统,并增加赏金?

如果人们不得不描述证明其问题合理的情况的细节,那么很容易使它们更长,较难阅读,通用性较低。

1至少,并非没有提供所需答案的情况

评论


不,在这种情况下,正确的做法是提出一个新问题,将其与原始问题联系起来,但要说明您的具体情况有所不同,并且该问题的答案对您不起作用。完全可以接受。

–科迪·格雷
13年7月28日在10:13

“如果人们不得不描述情况的细节来证明他们的问题是合理的,那么它很容易使他们变得更长,更难阅读且不那么笼统。”这是真的。我认为,应该有一个完整的故事和动机超出了OP在问题中所写内容的假设。

–欧文
13年7月29日在1:34

#8 楼

您可以通过这种方式获得超过2600张选票。 <center>无法容纳它为时已晚。

#9 楼

是。如果它回答了问题。可能还会建议您该怎么做!

有人可能对此帖子说“不要做”,哦。

评论


我已经修改了我的回复,以纳入您的反馈。

– devinb
09年7月24日在17:08

#10 楼

正如我以前删除的当前问题答案清楚地表明,“不要这样做,这是个坏主意。”本身肯定不是一个有效的答案,它将立即被删除。这将表明当前的社区共识是“否”,这不是一个有效的答案。

完整和/或精心设计的答案将清楚表明某件事是否是一个坏主意。在这样的答案上加上“不做”不仅是多余的,而且是屈服的,因为它假设即使勺子提供了所有相关信息,提问者也无法下定决心。

即使有支持,如在Linux上如何禁用kill命令所说明的那样,社区似乎也同意这不是一个好答案。该问题的答案被引用为支持“不做”作为答案的有效性,但无论是被接受的答案还是对该问题的最高投票答案实际上都说“不做”。他们也为每次投票(集体)投票了15次(实际上是对答案的回答)。此外,这是不完整的答案,因为它根本无法直接回答问题。

“不要这样做,这是一个坏主意”不是有效的答案。充其量不过是一个可能不错的答案的多余组成部分。

#11 楼

较晚的答案,但纯粹的逻辑告诉我们,给定的问题对仅具有给定的答案类型:


您会...吗? ->是/否
...? ->是/否
如何/为什么...? ->说明

所以回答您的问题:


我真的很想发表一个回答,说“我认为这是一个非常糟糕的主意”。我错了吗?



不,如果问题是“这是一个坏主意吗?”
是的,如果问题是“如何做到这一点? “

,在后一种情况下,您的“这是一个坏主意”从技术上讲根本不是答案,因此您不会仅仅发表您的想法。

评论


对于一个帮助论坛来说可能是正确的,但是我觉得它(永远)不适用于这些问答网站试图提供的标准/规范,高质量问题和答案的库:“当您看到一个类似它可能反映了一个常见问题,而不仅仅是回答一些问题,这并不能使Internet变得更好,而是帮助我们建立规范问题和答案的库,它们是同一问题的更通用版本题 [...]”

– Arjan
2012年4月7日在10:54

#12 楼

不会。这几乎永远不是一个有效的答案,即使对于像



这样的问题也是如此,我该怎么做<...超现实的,无意义的,有害的废话...>?


原因是,如果一个问题要求做某件坏事,那么一个有效的答案就可以解释,OP怎么做那件坏事。

他们如此称呼名为“ XY问题”。所谓的“ XY问题”的真正原因是有时我们的社区想要回答一个不同的问题,他们迫使OP提出该问题。

在这种情况下的正确行为:


向OP解释,如果可能的话,他该如何做他想做的事情。
如果不可能,请向OP解释为什么。
/>向OP解释其不利之处。
或者,您可以向OP解释什么是解决他的问题的正确或更好的解决方案。

所谓的“ XY问题”和“不做”答案的结果是,社区只想说(4)而不是(1)-(3),可以选择用(4)扩展它。

评论


通常,“为什么”与什么一样重要。这与XY问题无关,而与常识有关。在适当的地点考虑一个问题,询问如何用带电电线为牙线洁牙。

–游侠怪胎♦
18年1月14日在10:20

似乎回答问题的人都是专家,并且会认识到提出问题的人无法解决的基本问题,然后回答该问题而不是表面问题。

– Nij
18年1月14日,12:52