我有点开玩笑,所以复活节彩蛋的念头仍然吸引着我。我之前已经在代码中添加了它们,但是我的一群朋友开玩笑说使用CTRL-FU来触发鸡蛋。
现在,我对性能也有些偏执,因此我希望尽可能消除多余的性能。这与复活节彩蛋非常矛盾,因为它们是100%多余的代码。
反对复活节彩蛋有哪些论点?另外,是否有任何论点甚至支持复活节彩蛋?
我有点开玩笑,所以复活节彩蛋的念头仍然吸引着我。我之前已经在代码中添加了它们,但是我的一群朋友开玩笑说使用CTRL-FU来触发鸡蛋。
现在,我对性能也有些偏执,因此我希望尽可能消除多余的性能。这与复活节彩蛋非常矛盾,因为它们是100%多余的代码。
反对复活节彩蛋有哪些论点?另外,是否有任何论点甚至支持复活节彩蛋?
Answers:
一如既往,答案是“取决于”。
复活节彩蛋是鼓励探索“世界”计划的一种方式。在游戏中,这非常明显-例如,您爬到最高的山顶并找到了它,但是对于其他应用程序,则必须使用隐藏选项作为复活节彩蛋。但是,它们在某些人看来是轻浮的,因此,如果您编写的是非常严肃的业务应用程序,则当他们找到神奇的组合键时,不希望通过向他们展示唱歌仓鼠的屏幕(或其他方式)来打扰用户。 。
在应用程序中使用复活节彩蛋不会对性能产生不利影响。因此,除非为应用程序的正常操作解析键盘输入,否则以Ctrl+ FU作为触发器是一个坏主意。只要仅在找到代码后才执行代码,因此不会造成运行时损失。唯一的惩罚是程序大小的增加-这可能是问题,也可能不是问题。如果程序大小是一个问题,那么一定要忽略它。
但是,有了额外的代码,就会遇到支持问题。您仍然需要支持代码,并确保它可以运行并且在执行时不会引起问题。您想要做的最后一件事是使应用程序崩溃,就像用户找到复活节彩蛋一样!
我想说这在很大程度上取决于您所开发的软件类型。
与游戏软件相比,游戏中更容易接受(甚至赞赏)Imho复活节彩蛋。甚至微软都在他们的产品中加入了一些复活节彩蛋,但是现在几乎完全停止了。微软停止放复活节彩蛋的原因与抵制复活节彩蛋的可能原因密切相关:安全问题。如相关维基百科文章所述,复活节彩蛋通常是(至少对于用户/客户端而言)代码中未记录的部分,这可能使他相信该产品更容易受到攻击或以其他方式不可信。此外,并非所有复活节彩蛋代码都经过测试和审核,达到了与“任务关键”代码相同的程度。这可能会导致代码库中未发现的漏洞或漏洞,这可能是后来的攻击或恶意软件利用的起源。
但是,并非所有的复活节彩蛋都是“坏蛋”,需要篡改产品的实际代码。呈现复活节彩蛋的方法有很多,特别是在代码与内容(游戏/图形/脚本引擎与实际脚本或关卡文件)有些分离的游戏中。这些方法的范围从特殊的纹理/对象和主角的音频注释(例如,在DN3D中使用:“ 末日”,“ 终结者”,“ 印第安纳·琼斯”,“ 星际迷航”)到秘密级别(“没有奶牛级别”)到显示某个对象何时出现的对话框单击用户界面中的/ location等等。当然,并非所有这些产品都适合每种类型的产品。
在产品中放入复活节彩蛋的一种好方法是以某种方式包含自己(不仅限于功劳部分)。暴雪在《星际争霸2》中做到了这一点。一幅单元画像实际上是其中一名开发人员的脸。这样不太明显的东西通常适用于许多不同类型的软件,因为它不依赖于媒体知识或某种幽默。例如,也许您可以将自己作为角色包含在产品的上下文中。取决于产品,这甚至可能不需要机会编写代码,也可能只需要一个非常简单的代码。
复活节彩蛋很棒,但不是必需的。实施复活节彩蛋绝不能损害实际产品,并且其呈现方式应适合最终产品的目标受众。在“严重”应用程序中使用的复活节彩蛋或针对非成人的产品,无论看上去多么有趣或无害,都绝对不应包含成人的幽默或色情内容。这不仅可能导致法律后果,而且还会影响软件的营销范围(例如,USK / PEGI / ESRB等级)。
即使在80年代和90年代的主要商业软件版本中,复活节彩蛋也很常见。在大多数情况下,它们都很可爱,很少有人被它们打扰。我认为它们在当今并不常见,原因有以下三个:
像所有实际的笑话一样,它们很有趣,直到有人将目光放开为止。如果您的复活节彩蛋有一个导致数据丢失或性能问题的错误,那么您可能最终不得不向一群律师解释您实际上并未分发“恶意软件”。
幽默是非常非常非常困难的,如果做错了,就会冒犯付费客户,然后客户将停止为软件付款,并且会向新闻界写很多讨厌的信,说明您的公司多么糟糕,不成熟对于。Ctrl-FU触发的复活节彩蛋示例就是一个很好的例子。对于您17岁的朋友来说,这可能有点歇斯底里,但是永远不要开玩笑地告诉客户“ FU”是行销的第0条规则。请注意,大型商业软件中的复活节彩蛋从未取笑用户,只有竞争对手。
在顽童合唱团在电影的彼得·托克的不朽名言头:“没有人贷款的钱有幽默感的人。” 如果您要购买关键的软件基础架构,那么作者的幽默感并不能令人放心。除此之外,为什么他们本来可以解决许多安全漏洞的时候却花时间写复活节彩蛋呢?
几年前,拉里·奥斯特曼(Larry Osterman)在一个相当著名的博客上发表了一篇文章,讨论了为什么Microsoft的OS小组不再允许使用复活节彩蛋。
复活节彩蛋是建筑商留下的小秘密。会伤害最终用户吗?没有。
许多知名和流行的软件都包含隐藏的复活节彩蛋。复活节彩蛋也已被用来以一种相当优雅的方式向开发人员展示对特定敏感主题的感觉。
至于代码优化,只要复活节彩蛋不太密集(您好,飞行模拟器),就不会以有意义的方式损害性能。
尽管我喜欢软件中的复活节彩蛋,但重要的是要记住,从法律的角度来看,留在产品中用于娱乐的彩蛋与恶意后门之间的界限可能非常狭窄。例如,是否需要显示伤害?是否需要证明意图伤害?
考虑到法院对计算机和软件的理解是很痛苦的(某些软件专利已证明),因此辩论此案将为几位律师在阿斯彭市提供一个不错的度假屋。当考虑到在世界各地发布和分发软件的各种法律环境(例如DMCA)时,它可能还会在阿尔卑斯山购买度假屋。
作为聘用的工程师,我们保证对我们的公司无害。诉讼可能会造成损害,如果我们将合同软件交付给其他客户,尤其是政府或大型企业,则可能会提起诉讼。因此,我个人会选择在安全方面犯错误。
请记住,工程师的存在是为了达到目的而使用逻辑,而律师的存在是为了邪恶而扭曲逻辑。这就是为什么他们获得比我们高得多的报酬。
我使用复活节彩蛋来帮助我进行调试和编码。因此,我放入的复活节彩蛋是有目的的,可能不被认为是复活节彩蛋。