给这个世界写代码的不是一个人,而是一个团队(这么大的项目,一个人开发不了)。并且严重怀疑这个一个开源项目。开发人员被我们觉得是神,所以一神论是不正确的,众神论才是真理,且凡人是有机会成为神的(參悟神道,直到你的神属性突破某个级别)。另外这个系统使用的应该是面向对象语言编译的。

如今来说Bug。

Bug事实上无处不在,可是众开发人员常常性的发bug fix,致使整个系统看上去正常执行。可是这些bug
fix是能够看出来的。比方:在一个文明发展到一个相当高的高度,要打破整个系统的平衡时,就会有一个补丁出来将其削弱甚至让它销往。比如四大古文明。其他三大在后期莫名归于平淡,而中国文明也经历了数次朝代更迭。更离奇的是玛雅文明,说没就没了,毫无预兆。应该是开发初期的时候以为的注重发展,却没有考虑到设计还有一种文明与之相制衡,于是开发人员仅仅能非常页面的添�一行“玛雅文明 = null;”。

回忆上个世界的几场大战。一战后,德国被榨干了,假设继续发展下去,非常有可能日耳曼民族就没了。于是在那样一种不合时宜的环境下,安排了一个不合时宜的人用不合时宜的政策引领了该名族的复苏。回头再看,在那么短的时间内,以一种扭曲的意识形态竟然能那么快速的发展一个国家,这就是在强行修复bug的行为。

相同让开发人员没有想到的是他们为了修复一个bug所引入的新的实例会有如此强烈的扩张性,以至于二战開始了,他们还没有来得及修复。然后眼看着一个强大且有野心的德国瞬间将它的几个邻国打得溃不成军。当然开发团队可能觉得这个并不可怕,顶多造成几个Exception,还不至于是Error,于是放任了一段时间,一直到东线战场德国人打到苏联。

这时问题来了,假设苏联被灭掉,那么当时世界上最大的社会主义阵营就会垮台。开发人员意识到这个阵营的垮台所带来的问题将会是连锁性的。由于马克思的那套理论正是在未来为了制约日渐成熟和强大的资本主义理论而设计的。苏联垮了,未来肯定一家独大。届时众人团结一致搞科研,势必非常快就将如今的系统实现反编译,然后改动源码又一次创造世界,于是这世界的运作将不再掌握在开发团队的手里。《圣经》的巴别塔桥段将会成真。所以,必需要阻止德国的扩张。

关于怎样阻止,我相信开发团队是有分歧的。最简单的方法无异于“轴心国 = null;”,可是问题也是显然的,这样设置以后垃圾回收系统提启动,曾经的日耳曼文明,罗马帝国的文明和日本留给后世的全部东西都没有了。未来到哪里去找优质的片源?且要怎样跟后世交代这样一段突然空白的历史(此时跟玛雅时代已经不同了)。于是开发团队的另外一种方案是”希特勒
= null;“,可是当时的纳粹已经不是仅仅要靠希特勒才干驱动了,他仅仅是个精神领袖。

所以,终于的结果是採用一些令人捉摸不透的方式,比如:苏联的斯大林格勒保卫战:如今已经无法想象当时的那样一帮苏联人怎样能够战胜德国人的虎狼之师,难道真的是几个狙击手(电影《兵临城下》桥段);美国參战:我们都知道是日本人炸了珍珠港引起了美国人參战,可是日本人会在这样一个时间点选择如此愚蠢的行为?Bug!并且,美国人假设要报仇,直接过太平洋找日本人就好了,为什么还要同一时候对德国宣战呢?你被邻居家的孩子打了,打邻居的孩子就好了,干嘛打个出租车到五环外跟他表哥打一架?Bug!

终于轴心国败了,可是三个国家都没有亡国,其文明得以保留,各自继续发展经济。所以,德国依旧有啤酒节,到意大利依旧能够看到梵蒂冈,而开发者还有优质的日本片源接着撸。一切看似归于平静。Bug从来都仿佛没有存在过。

所以假设你相信世界不是真实的而是一段代码,一定要明确,这样大的系统里,一定会有bug。可是不要试图寻找,由于你自己也是代码new出来的,你也是代码,你发现的bug非常快会被修复,且你不会记得不论什么与这个bug有关的事情。让你忘记bug也是修复bug所要做的事情。另外有人提到在两面镜子之间不断的做动作以期看到系统卡一下这种操作,建议不要去尝试。原因是:

  1. 这个系统如此的大,它的内存空间也不是你对着镜子挥几下手就会溢出的,须要正视我们每个个体在如此强大的系统前都是渺小的这一事实。
  2. 以前有人尝试过一天撸39次,结果预计系统真的卡了一下。然后开发人员非常快发现了这个Bug,于是他被赋值为null,非常快垃圾回收系统就把他给收了。相信开发团队的强大,当你给他们找到Bug的时候,你也会成为Bug。最初他们可以把你new出来,也可以把你变回null。
转自知乎 http://www.zhihu.com/question/20198823#answer-2131222


假设说这个世界不是真实存在的,仅仅是一段代码,迄今为止你发现了哪些bug?的更多相关文章

  1. 假设有两个包含整数的vector对象,编写一段程序,检验其中一个vector对象是否是另一个的前缀。

    #include<iostream> #include<string> #include<vector> using namespace std; int main ...

  2. Android - 通过真实案例学习解内存泄漏问题,最终发现Android原生Bug

    作为一个Android新手小白,刚到新公司,最近的工作就是在学习解各类Bug.转型之初,面临各种新知识,会有压力,但是学习的过程是快乐的. 上周刚遇上一类bug,就是应用的内存泄漏问题.最终通过前辈的 ...

  3. 假设写一段代码引导PC开机这段代码是 ? Here is a tiny &quot;OS&quot; :-D

    Hello world -- OS 我找到了华科绍志远博士的相关代码,发现他依据MIT的JOS的boot.S 稍作改动.然后单独剥离出来,能够非常好玩~ 资料下载地址: http://download ...

  4. web笔记全

    1.项目流程与数据库 1.课程体系 阶段1(服务器开发): 项目导入/数据库/JS基础/NodeJS 阶段2(前端核心技术): HTML/AJAX/CSS/bootstrap 阶段3(前端进阶技术): ...

  5. .NET中异常处理的最佳实践(译)

    本文翻译自CodeProject上的一篇文章,原文地址. 目录 介绍 做最坏的打算 提前检查 不要信任外部数据 可信任的设备:摄像头.鼠标以及键盘 “写操作”同样可能失效 安全编程 不要抛出“new ...

  6. .NET中异常处理的最佳实践(转)

    原文出处: CodeProject   译文出处:周见智的博客   欢迎分享原创到伯乐头条 介绍 “我的软件程序从来都不会出错”.你们相信吗?我几乎可以肯定所有人都会大喊我是个骗子.“软件程序几乎不可 ...

  7. 应用程序域 z

    应用程序域(AppDomain)已经不是一个新名词了,只要熟悉.net的都知道它的存在,不过我们还是先一起来重新认识下应用程序域吧,究竟它是何方神圣. 应用程序域 众所周知,进程是代码执行和资源分配的 ...

  8. NET中异常处理的最佳实践

    NET中异常处理的最佳实践 本文翻译自CodeProject上的一篇文章,原文地址. 目录 介绍 做最坏的打算 提前检查 不要信任外部数据 可信任的设备:摄像头.鼠标以及键盘 “写操作”同样可能失效 ...

  9. Python标准模块--importlib

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 Python提供了importlib包作为标准库的一 ...

随机推荐

  1. linux 学习之七-部分ssh命令

    ssh命令 /etc/init.d/sshd restart|start|stop   重启|开始|关闭SSH的服务 ssh IP地址 连接SSH Linux scp命令用于Linux之间复制文件和目 ...

  2. Subsequence(暴力+二分)

    Subsequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10875   Accepted: 4493 Desc ...

  3. 【Leetcode】Set Matrix Zeroes

    给定一个m x n的矩阵,如果某个元素为0,则把该元素所在行和列全部置0. Given a m x n matrix, if an element is 0, set its entire row a ...

  4. SharePoint 2013 讨论板列表"Connect to Outlook" 不可用解决方案

    本文讲述 SharePoint 2013 讨论板列表"Connect to Outlook" 不可用解决方案. SharePoint中的讨论板列表是可以集成到Outlook里面去的 ...

  5. Java可视化编程,基于布局管理器的UI设计

    在<事件驱动模型>讲述了如何将用户与功能实现代码联系到一起.怎么样便于用户理解和符合用户的使用习惯? 本篇还是就此问题作分析,站在用户角度上分析UI各组件倒底该如何设计呈现. 优秀的UI会 ...

  6. poj - 4045 - Power Station

    题意:一棵有n个结点的树,要取其中的一个结点,使得该结点到其他所有结点的距离和dis最小,即损耗I * I * R * dis最小,输出最小损耗和该结点(有多个的话按结点编号从小到大输出)(3 < ...

  7. JavaScript字符串插入、删除、替换函数

    JavaScript字符串插入.删除.替换函数 说明: 以下函数中前两个函数取出查找字符串的前一部分和后一部分,以用于其他函数.注意,调用一次 replaceString(mainStr,search ...

  8. Php开源项目大全

    WordPress  [PHP开源 博客Blog] WordPress是最热门的开源个人信息发布系统(Blog)之一,基于PHP+MySQL构建.WordPress提供的功能包括: 1.文章发布.分类 ...

  9. javascript中对象的不同创建方法

    javascript中的对象与一般的面向对象的程序设计语言(c++,Java等)不同,甚至很少有人说它是面向对象的程序设计语言,因为它没有类.javaScript只有对象,不是类的实例.javascr ...

  10. Devpexpress 打印预览问题

    devexpress 12 之前报表打印: XtraReports rp1 = new XtraReports(); rp1.ShowPreview(): 即可预览报表: devexpress 13 ...