假设说这个世界不是真实存在的,仅仅是一段代码,迄今为止你发现了哪些bug?
给这个世界写代码的不是一个人,而是一个团队(这么大的项目,一个人开发不了)。并且严重怀疑这个一个开源项目。开发人员被我们觉得是神,所以一神论是不正确的,众神论才是真理,且凡人是有机会成为神的(參悟神道,直到你的神属性突破某个级别)。另外这个系统使用的应该是面向对象语言编译的。
如今来说Bug。
Bug事实上无处不在,可是众开发人员常常性的发bug fix,致使整个系统看上去正常执行。可是这些bug
fix是能够看出来的。比方:在一个文明发展到一个相当高的高度,要打破整个系统的平衡时,就会有一个补丁出来将其削弱甚至让它销往。比如四大古文明。其他三大在后期莫名归于平淡,而中国文明也经历了数次朝代更迭。更离奇的是玛雅文明,说没就没了,毫无预兆。应该是开发初期的时候以为的注重发展,却没有考虑到设计还有一种文明与之相制衡,于是开发人员仅仅能非常页面的添�一行“玛雅文明 = null;”。
回忆上个世界的几场大战。一战后,德国被榨干了,假设继续发展下去,非常有可能日耳曼民族就没了。于是在那样一种不合时宜的环境下,安排了一个不合时宜的人用不合时宜的政策引领了该名族的复苏。回头再看,在那么短的时间内,以一种扭曲的意识形态竟然能那么快速的发展一个国家,这就是在强行修复bug的行为。
相同让开发人员没有想到的是他们为了修复一个bug所引入的新的实例会有如此强烈的扩张性,以至于二战開始了,他们还没有来得及修复。然后眼看着一个强大且有野心的德国瞬间将它的几个邻国打得溃不成军。当然开发团队可能觉得这个并不可怕,顶多造成几个Exception,还不至于是Error,于是放任了一段时间,一直到东线战场德国人打到苏联。
这时问题来了,假设苏联被灭掉,那么当时世界上最大的社会主义阵营就会垮台。开发人员意识到这个阵营的垮台所带来的问题将会是连锁性的。由于马克思的那套理论正是在未来为了制约日渐成熟和强大的资本主义理论而设计的。苏联垮了,未来肯定一家独大。届时众人团结一致搞科研,势必非常快就将如今的系统实现反编译,然后改动源码又一次创造世界,于是这世界的运作将不再掌握在开发团队的手里。《圣经》的巴别塔桥段将会成真。所以,必需要阻止德国的扩张。
关于怎样阻止,我相信开发团队是有分歧的。最简单的方法无异于“轴心国 = null;”,可是问题也是显然的,这样设置以后垃圾回收系统提启动,曾经的日耳曼文明,罗马帝国的文明和日本留给后世的全部东西都没有了。未来到哪里去找优质的片源?且要怎样跟后世交代这样一段突然空白的历史(此时跟玛雅时代已经不同了)。于是开发团队的另外一种方案是”希特勒
= null;“,可是当时的纳粹已经不是仅仅要靠希特勒才干驱动了,他仅仅是个精神领袖。
所以,终于的结果是採用一些令人捉摸不透的方式,比如:苏联的斯大林格勒保卫战:如今已经无法想象当时的那样一帮苏联人怎样能够战胜德国人的虎狼之师,难道真的是几个狙击手(电影《兵临城下》桥段);美国參战:我们都知道是日本人炸了珍珠港引起了美国人參战,可是日本人会在这样一个时间点选择如此愚蠢的行为?Bug!并且,美国人假设要报仇,直接过太平洋找日本人就好了,为什么还要同一时候对德国宣战呢?你被邻居家的孩子打了,打邻居的孩子就好了,干嘛打个出租车到五环外跟他表哥打一架?Bug!
终于轴心国败了,可是三个国家都没有亡国,其文明得以保留,各自继续发展经济。所以,德国依旧有啤酒节,到意大利依旧能够看到梵蒂冈,而开发者还有优质的日本片源接着撸。一切看似归于平静。Bug从来都仿佛没有存在过。
所以假设你相信世界不是真实的而是一段代码,一定要明确,这样大的系统里,一定会有bug。可是不要试图寻找,由于你自己也是代码new出来的,你也是代码,你发现的bug非常快会被修复,且你不会记得不论什么与这个bug有关的事情。让你忘记bug也是修复bug所要做的事情。另外有人提到在两面镜子之间不断的做动作以期看到系统卡一下这种操作,建议不要去尝试。原因是:
- 这个系统如此的大,它的内存空间也不是你对着镜子挥几下手就会溢出的,须要正视我们每个个体在如此强大的系统前都是渺小的这一事实。
- 以前有人尝试过一天撸39次,结果预计系统真的卡了一下。然后开发人员非常快发现了这个Bug,于是他被赋值为null,非常快垃圾回收系统就把他给收了。相信开发团队的强大,当你给他们找到Bug的时候,你也会成为Bug。最初他们可以把你new出来,也可以把你变回null。
假设说这个世界不是真实存在的,仅仅是一段代码,迄今为止你发现了哪些bug?的更多相关文章
- 假设有两个包含整数的vector对象,编写一段程序,检验其中一个vector对象是否是另一个的前缀。
#include<iostream> #include<string> #include<vector> using namespace std; int main ...
- Android - 通过真实案例学习解内存泄漏问题,最终发现Android原生Bug
作为一个Android新手小白,刚到新公司,最近的工作就是在学习解各类Bug.转型之初,面临各种新知识,会有压力,但是学习的过程是快乐的. 上周刚遇上一类bug,就是应用的内存泄漏问题.最终通过前辈的 ...
- 假设写一段代码引导PC开机这段代码是 ? Here is a tiny "OS" :-D
Hello world -- OS 我找到了华科绍志远博士的相关代码,发现他依据MIT的JOS的boot.S 稍作改动.然后单独剥离出来,能够非常好玩~ 资料下载地址: http://download ...
- web笔记全
1.项目流程与数据库 1.课程体系 阶段1(服务器开发): 项目导入/数据库/JS基础/NodeJS 阶段2(前端核心技术): HTML/AJAX/CSS/bootstrap 阶段3(前端进阶技术): ...
- .NET中异常处理的最佳实践(译)
本文翻译自CodeProject上的一篇文章,原文地址. 目录 介绍 做最坏的打算 提前检查 不要信任外部数据 可信任的设备:摄像头.鼠标以及键盘 “写操作”同样可能失效 安全编程 不要抛出“new ...
- .NET中异常处理的最佳实践(转)
原文出处: CodeProject 译文出处:周见智的博客 欢迎分享原创到伯乐头条 介绍 “我的软件程序从来都不会出错”.你们相信吗?我几乎可以肯定所有人都会大喊我是个骗子.“软件程序几乎不可 ...
- 应用程序域 z
应用程序域(AppDomain)已经不是一个新名词了,只要熟悉.net的都知道它的存在,不过我们还是先一起来重新认识下应用程序域吧,究竟它是何方神圣. 应用程序域 众所周知,进程是代码执行和资源分配的 ...
- NET中异常处理的最佳实践
NET中异常处理的最佳实践 本文翻译自CodeProject上的一篇文章,原文地址. 目录 介绍 做最坏的打算 提前检查 不要信任外部数据 可信任的设备:摄像头.鼠标以及键盘 “写操作”同样可能失效 ...
- Python标准模块--importlib
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 Python提供了importlib包作为标准库的一 ...
随机推荐
- ListFragment和ListActivity的setOnItemClickListener不起作用
在使用ListFragment时,发现一个奇怪的问题,就是getListView().setOnItemClickListener(new OnItemClickListener...)不起作用.在s ...
- Azure 为 SAP 提供的增强监控解决方案
正如大家在之前公告中所看到的,多个SAP应用程序已获得认证可在 Azure虚拟机中运行,未来还会有更多 SAP应用程序获得认证.对于希望在 Azure中运行 SAP应用程序的客户来说,这是个激动人心的 ...
- Thrift入门 (一)
Install Go to thrift page download thrift. 1 2 3 4 brew install boost ./configure --without-python s ...
- javascript实现小九九乘法口诀
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...
- CSU - 1356 Catch(dfs染色两种写法,和hdu4751比较)
Description A thief is running away! We can consider the city to N–. The tricky thief starts his esc ...
- Android创建启动画面[转]
每个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO.公司的LOGO或者开发者信息.如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥 ...
- JavaWeb Filter--过滤器 简介
本文转载自:http://blog.csdn.net/wanghuan203/article/details/7325651 过滤器就是在源数据和目的数据之间起过滤作用的中间件. Web应用中,在处理 ...
- EXCEL破冰之旅
1 背景 EXCEL用于日常数据分析的工具中,最便利并且最强大的莫属透视表了.因为透视表对原始数据有一定的要求,所以本次的破冰之旅也将把焦点放在如何整理基础数据这个方面. 1.1 初识透视表 ...
- SQL Server表和字段说明的增加和更新
1. 增加字段说明 EXEC sp_addextendedproperty 'MS_Description', 'some description', 'user', ...
- PHP基础示例:用正则表达式修改配置信息
各php工作原理图: 以下是扯代码时间: <?php //配置文件信息 define("HOST","localhost"); //主机名 define( ...