反对复活节彩蛋有哪些论点?是否有任何论点甚至支持复活节彩蛋?[关闭]


28

我有点开玩笑,所以复活节彩蛋的念头仍然吸引着我。我之前已经在代码中添加了它们,但是我的一群朋友开玩笑说使用CTRL-FU来触发鸡蛋。

现在,我对性能也有些偏执,因此我希望尽可能消除多余的性能。这与复活节彩蛋非常矛盾,因为它们是100%多余的代码。

反对复活节彩蛋有哪些论点?另外,是否有任何论点甚至支持复活节彩蛋?


5
恕我直言,这个问题根本不应该被否决,当然不是一个没有动机的问题。我对这个话题很感兴趣。尤其是了解最终用户,真正的老板如何看待它。

这是经典@Mark Trapp的最佳选择,“我们在这里解决您可能面临的实际问题。”
Gratzy 2011年

1
@ChrisF哇,如果我的问题programmers.stackexchange.com/questions/38810/…收到“真正的问题”答复,而您告诉我这没有,那么我对于这个站点的目的真的感到很困惑。
Gratzy 2011年

1
很好的问题,恕我直言。
Uri

1
@Mark C Aye,我对浪费资源实在是太偏执了。

Answers:


11

一如既往,答案是“取决于”。

复活节彩蛋是鼓励探索“世界”计划的一种方式。在游戏中,这非常明显-例如,您爬到最高的山顶并找到了它,但是对于其他应用程序,则必须使用隐藏选项作为复活节彩蛋。但是,它们在某些人看来是轻浮的,因此,如果您编写的是非常严肃的业务应用程序,则当他们找到神奇的组合键时,不希望通过向他们展示唱歌仓鼠的屏幕(或其他方式)来打扰用户。 。

在应用程序中使用复活节彩蛋不会对性能产生不利影响。因此,除非为应用程序的正常操作解析键盘输入,否则以Ctrl+ FU作为触发器是一个坏主意。只要仅在找到代码后才执行代码,因此不会造成运行时损失。唯一的惩罚是程序大小的增加-这可能是问题,也可能不是问题。如果程序大小是一个问题,那么一定要忽略它。

但是,有了额外的代码,就会遇到支持问题。您仍然需要支持代码,并确保它可以运行并且在执行时不会引起问题。您想要做的最后一件事是使应用程序崩溃,就像用户找到复活节彩蛋一样!


“在应用程序中拥有复活节彩蛋不会对性能造成不利影响。只有在发现复活节彩蛋后才会执行,因此不会造成运行时损失。” 真?如果它是由CTRL-FU作为OP状态触发的,那么您不是在陷害每个按键吗?
Gratzy 2011年

2
@Gratzy-其实这是一个好主意-除非您为正常操作捕获了击键,否则这就是不良复活节彩蛋的一个示例。
克里斯·弗雷德

7

我想说这在很大程度上取决于您所开发的软件类型。

与游戏软件相比,游戏中更容易接受(甚至赞赏)Imho复活节彩蛋。甚至微软都在他们的产品中加入了一些复活节彩蛋,但是现在几乎完全停止了。微软停止放复活节彩蛋的原因与抵制复活节彩蛋的可能原因密切相关:安全问题。如相关维基百科文章所述,复活节彩蛋通常是(至少对于用户/客户端而言)代码中未记录的部分,这可能使他相信该产品更容易受到攻击或以其他方式不可信。此外,并非所有复活节彩蛋代码都经过测试和审核,达到了与“任务关键”代码相同的程度。这可能会导致代码库中未发现的漏洞或漏洞,这可能是后来的攻击或恶意软件利用的起源。

但是,并非所有的复活节彩蛋都是“坏蛋”,需要篡改产品的实际代码。呈现复活节彩蛋的方法有很多,特别是在代码与内容(游戏/图形/脚本引擎与实际脚本或关卡文件)有些分离的游戏中。这些方法的范围从特殊的纹理/对象和主角的音频注释(例如,在DN3D中使用:“ 末日”,“ 终结者”,“ 印第安纳·琼斯”,“ 星际迷航”)到秘密级别(“没有奶牛级别”)到显示某个对象何时出现的对话框单击用户界面中的/ location等等。当然,并非所有这些产品都适合每种类型的产品。

在产品中放入复活节彩蛋的一种好方法是以某种方式包含自己(不仅限于功劳部分)。暴雪在《星际争霸2》中做到了这一点。一幅单元画像实际上是其中一名开发人员的脸。这样不太明显的东西通常适用于许多不同类型的软件,因为它不依赖于媒体知识或某种幽默。例如,也许您可​​以将自己作为角色包含在产品的上下文中。取决于产品,这甚至可能不需要机会编写代码,也可能只需要一个非常简单的代码。

复活节彩蛋很棒,但不是必需的。实施复活节彩蛋绝不能损害实际产品,并且其呈现方式应适合最终产品的目标受众。在“严重”应用程序中使用的复活节彩蛋或针对非成人的产品,无论看上去多么有趣或无害,都绝对不应包含成人的幽默或色情内容。这不仅可能导致法律后果,而且还会影响软件的营销范围(例如,USK / PEGI / ESRB等级)。


1
您真的需要看看为什么 Microsoft停止在其代码中添加复活节彩蛋。复活节彩蛋是未经充分测试的代码路径(如果您有机会对复活节彩蛋进行完整的质量检查,那么为什么不花时间包括另一个有用的功能呢?),这意味着它是潜在的安全漏洞来源。
Anon。

@Anon:我在回答中提到的Wikipedia文章中说:“过去曾经创建了一些最大,最复杂的复活节彩蛋(例如Microsoft Office中的Microsoft)的Microsoft,不再允许在其软件中使用复活节彩蛋作为他们的可信赖计算计划。” 该声明的来源是Charles的答案中链接的MSDN博客文章。我认为我的发言没有任何矛盾。你能解释我错了吗?:)
Baelnorn

答案的第一部分显示为“嘿,Microsoft曾经这样做过,不是很厉害”,但后来他们不再这样做的实际原因却被埋在了答案的一半。随便的读者不会看到它,并且与相关上下文断开连接。理想情况下,我希望对段落进行改组以使cons段落更显眼。
Anon。

@Anon:感谢大家的注意。我编辑了答案,并对段落重新排序,在第一部分中详细说明了反对EE的原因。
Baelnorn 2011年

5

即使在80年代和90年代的主要商业软件版本中,复活节彩蛋也很常见。在大多数情况下,它们都很可爱,很少有人被它们打扰。我认为它们在当今并不常见,原因有以下三个:

  1. 像所有实际的笑话一样,它们很有趣,直到有人将目光放开为止。如果您的复活节彩蛋有一个导致数据丢失或性能问题的错误,那么您可能最终不得不向一群律师解释您实际上并未分发“恶意软件”。

  2. 幽默是非常非常非常困难的,如果做错了,就会冒犯付费客户,然后客户将停止为软件付款,并且会向新闻界写很多讨厌的信,说明您的公司多么糟糕,不成熟对于。Ctrl-FU触发的复活节彩蛋示例就是一个很好的例子。对于您17岁的朋友来说,这可能有点歇斯底里,但是永远不要开玩笑地告诉客户“ FU”是行销的第0条规则。请注意,大型商业软件中的复活节彩蛋从未取笑用户,只有竞争对手。

  3. 在顽童合唱团在电影的彼得·托克的不朽名言:“没有人贷款的钱有幽默感的人。” 如果您要购买关键的软件基础架构,那么作者的幽默感并不能令人放心。除此之外,为什么他们本来可以解决许多安全漏洞的时候却花时间写复活节彩蛋呢?

几年前,拉里·奥斯特曼(Larry Osterman)在一个相当著名的博客上发表了一篇文章,讨论了为什么Microsoft的OS小组不再允许使用复活节彩蛋


1
即使在今天,Google都有一个复活节彩蛋 -这意味着他们正在检查输入内容,以在每次搜索时触发复活节彩蛋。可能处理的不是很多,但是考虑到他们每天处理的亿万次搜索...我不知道。
Charles Salvia

我必须承认,我读CTRL-FU是一种功夫。
Christopher Creutzig 2011年

@Christopher这是一个完全合理的解释。幽默常常受到多种解释,这就是为什么在不冒冒犯他人风险的情况下安装软件的棘手原因之一。
查尔斯·格兰特

@CharlesSalvia取决于他们如何处理搜索以确定“您的意思是”结果,它可能根本不会为该行为增加任何开销。
JAB 2016年

4

复活节彩蛋是建筑商留下的小秘密。会伤害最终用户吗?没有。

许多知名流行的软件都包含隐藏的复活节彩蛋。复活节彩蛋也已被用来以一种相当优雅的方式向开发人员展示对特定敏感主题的感觉

至于代码优化,只要复活节彩蛋不太密集(您好,飞行模拟器),就不会以有意义的方式损害性能。


我不同意。复活节彩蛋会增加发生可能伤害使用者的事件的风险。充其量,这些“附加功能”经过测试,仅占用开发人员和质量检查人员的时间。最糟糕的是,除了实现者以外,没人知道这一点。实施者后来离开公司,之后对软件进行更新,无意间使复活节彩蛋变得恶意,采取了诸如切断键盘事件,吞噬所有可用RAM或在极端情况下...删除用户内容的行为。硬盘。越过高峰?也许。但是,我已经看到所有这些都是正常的错误。
mummey,2011年

@mummey:我认为这极不可能发生。
乔什(Josh K)

您是否会尽全力减轻这些风险?
StuperUser 2011年

@Stuper:您是否听说过复活节彩蛋使程序崩溃?
乔什K

没有任何消息,但是复活节彩蛋期间的撞车还不够严重,不足以保证在大多数情况下可以发布该问题。在正常运行期间,大多数MS程序崩溃时,用户通常不发送回信息。
StuperUser 2011年

2

尽管我喜欢软件中的复活节彩蛋,但重要的是要记住,从法律的角度来看,留在产品中用于娱乐的彩蛋与恶意后门之间的界限可能非常狭窄。例如,是否需要显示伤害?是否需要证明意图伤害?

考虑到法院对计算机和软件的理解是很痛苦的(某些软件专利已证明),因此辩论此案将为几位律师在阿斯彭市提供一个不错的度假屋。当考虑到在世界各地发布和分发软件的各种法律环境(例如DMCA)时,它可能还会在阿尔卑斯山购买度假屋。

作为聘用的工程师,我们保证对我们的公司无害。诉讼可能会造成损害,如果我们将合同软件交付给其他客户,尤其是政府或大型企业,则可能会提起诉讼。因此,我个人会选择在安全方面犯错误。

请记住,工程师的存在是为了达到目的而使用逻辑,而律师的存在是为了邪恶而扭曲逻辑。这就是为什么他们获得比我们高得多的报酬。


0

许多人说复活节彩蛋更适合游戏,但我认为它们在商业应用中很有用。太多的人只是为使用商务应用程序创建了一系列食谱,而他们从不看应用程序的其他区域。我的意思是,如果这不是他们的培训的一部分,那么他们可能不会看整个应用程序的整个部分,而这可能对他们有些用处。目前,我在一个包含75个报告的应用程序上工作,并且用户要求提供信息,他们甚至从未运行过一个报告。他们需要某种动机来弥补自己缺乏好奇心(在防御中,一些用户害怕破坏某些东西。)。


-2

我使用复活节彩蛋来帮助我进行调试和编码。因此,我放入的复活节彩蛋是有目的的,可能不被认为是复活节彩蛋。


您的用法中的“复活节彩蛋”到底是什么意思?你能给我一个例子吗?

那不是复活节彩蛋,而是后门。当工具双击屏幕位置(0,0)上的鼠标中键,然后输入正确的密码时,我们会做一些特殊的GUI测试。这样做是为了使GUI自动化工具可以处理它。从理论上讲,用户也可以做到这一点,但实际上他们不会到达那里。另外,到处都有警告标志。
Job

1
@Glenn,如果您要交付桌面GUI应用程序,则将是一个很好的例子。当用户单击按钮时,他们将获得一个新对话框。当用户在按住Shift键的同时单击该按钮时,会得到一个旧的按钮。当尝试修复由新窗口小部件引起的错误时,这将是比较旧功能和新功能的好方法。如果您保持谨慎,则可以保留双重代码,但可以注释掉后门。然后,当您需要调试事物时,取消注释,重新构建,现在您可以并行比较两个事物。戴夫,很抱歉尝试窃取您的雷声。
工作
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.