我最近正在阅读Wikpedia's list of Anti-Patterns并注意到这包括:
烟雾和镜子:展示如何 将出现未实现的功能
为什么这是一件坏事?我唯一能看到的是,如果你真的没有实现所述功能。如果函数在正式规范中,“保证”完成怎么办?为了向潜在客户展示他们有能力做什么,它仍然是不好的吗?
答案 0 :(得分:6)
要了解为什么烟雾和镜子会成为反模式,请查看Smoke and Mirrors维基百科条目。来自文章:
烟雾和镜子是一个隐喻 欺骗性的,欺诈性的或非实质性的 解释或描述。来源 该名称是基于魔术师' 魔术师制造的幻想 对象出现或消失 延伸或缩回镜子 混乱的烟雾。该 表达可能有一个内涵 携带的精湛技艺或聪明才智 出于这样的欺骗行为。在计算机编程领域, 它用于描述程序或 功能尚不存在, 但似乎确实如此(参见 雾件)。通常这样做 演示由此产生的项目 将在代码之后运行/看起来像 完成 - 在贸易展览会上,为 示例
更一般地说,“烟雾和镜子” 可以指任何形式的陈述 观众的目的是什么 被欺骗,比如企图 愚弄潜在的客户 认为一个人有能力 提供产品所必需的 问题
通常,使用烟雾和镜子来给管理层或客户留下深刻的印象,以获得/保持资金,但下面没有真正的代码。这种方法有一段时间了,但是,最终导致其他反模式(意大利面条代码,blob等),以便在实际需要时尝试获得真实内容。
以Smoke和Mirrors开头的项目往往会以可怕的方式结束。就像一段关系一样,如果你用谎言开发代码,最终一切都会崩溃。
答案 1 :(得分:2)
烟雾和镜子似乎与模型不同。
如果实现类似于计算器之类的东西,你可以编写所有加法,减法,乘法和除法的方法,但是更高级的函数都会随机返回,看起来像是在执行这项工作。管理oohs和aahs长长的数字。
答案 2 :(得分:1)
因为经常是90%的营销,10%的管理和0%的发展。
承诺不足,过度交付。不是相反。
答案 3 :(得分:1)
如果您点击Smoke and Mirrors的链接,您会看到以下代码段:
在计算机编程领域,它用于描述尚不存在的程序或功能,但看起来就好像(参见蒸发器)。通常这样做是为了演示代码完成后结果项目的功能/外观 - 例如在贸易展览会上。
这很危险,因为在我们的世界中,任何事情都可以改变。
答案 4 :(得分:1)
虽然许多答案暗示了(在我看来)真正的问题,但没有人真正直接给出答案。
烟雾和镜子的真正原因是反模式,它混淆了原型和成品之间的区别。创建原型非常好。许多(大多数?)我们遇到的主要问题之一是管理人员说“好吧,这似乎工作得很好,让我们发货。”
创建原型通常是件好事 - 但是你必须始终非常小心内部和(尤其)外部世界要清楚它是< / em>原型,而不是成品。无论如何,管理层通常都希望相信原型是成品(或者至少可以构成原型的基础)。鼓励这样的信念是件坏事。