找回密码
 骑士注册

QQ登录

微博登录

搜索
❏ 站外平台:

Linux中国开源社区 观点 查看内容

弱智错误第二篇:我是如何毁掉一个网游公司的

| 2013-03-18 11:58   评论: 12 分享: 1    

前几天的一片文章《你知道吗,犯弱智错误是每个程序员的必修课:为什么Hacker News昨晚一夜宕机》讲的也是一个低级错误,但那个犯错误的人是老板自己,他在问题未解决前仍然能回家睡觉,但如果你不是老板,而是一个普通员工,而且犯了一个无法饶恕的愚蠢错误,那你知道你的下场吗——死的很惨。

  2010年7月份,我22岁,在加州的一家网游公司工作。我刚毕业,这是我的第一份真正意义上的工作。我有了工资收入,有了自己的宿舍。我感觉长大了,头一次有这样的感觉。

  有两个“工程师”在为公司的旗舰产品——一款RPG游戏——写代码,我是其中之一。我在大学里学的是哲学,这意味着,虽然我知道如何去思考、解决一个问题,但我对最佳实践方法、设计模式等方面的知识很缺乏。我完全倚仗基本的LAMP相关知识,对它们付出了极大的热情。

  这款游戏的设计者(我们的老大)经常从暴雪公司出品的风靡世界的游戏“魔兽世界”中吸取灵感。在当时,魔兽世界里的“Raids”玩法在玩家中激起了前所未有的兴奋和热情。这个东西是我们特别想在我们的游戏中复制的功能。

  我被分派去实现我们的游戏中的Raids。同事山姆被大量的重构工作纠缠住,于是我就幸运的有机会去开发一些新的令人兴奋的东西了。

  我们的开发环境的一大特色是,我们开发代码直接连的是生产库。回想起来,这真是难以理解,我竟然没有询问这是为什么,真是一个笑柄。

  我是使用一个MySQL客户端来查看数据库表,这个工具有个华而不实的OSXy接口的界面…远不如phpmyadmin。我的一部分测试工作涉及到手工的清除RAIDS表,然后用程序重建。

  这种工作的单调让我精神恍惚,一个懒洋洋的下午,我发现自己昏昏欲睡,鼠标光标移到了USERS表达图标上,然后弹出右键菜单,点击‘clear’。

  我的所作所为会带来的严重后果并没有立即击倒我。我起初只是感觉到一种灵魂出窍,好像是悬浮在黑暗的房间里,看见各位同事都勾着腰趴在发光的显示器上。

  那么,究竟是什么后果呢?我们的游戏有上万个付费用户。用户花钱买装备,提升他们游戏中人物的能力。所有这些人物的数据都放在USERS表里,现在全没了。

  大概一分钟之后,一个业务经理走了进来。“我感觉有什么地方出问题了”,她说。我回答说,“是的,我知道出了什么问题”。

  我发现自己倚着一张桌子给数据库提供商Rackspace打电话寻求支持,耐心的听着他们的工程师解释说我们的数据库实例的备份两个月前就已经停止了。啊!

  下午,一层又稠又密让人压抑的愁云充满了办公室的上空。大家知道有什么地方出来问题,但只有少部分人知道是什么问题。我被拽进了一个在会议室举行的“工程师+领导”的紧急会议。

  CEO斜坐在桌子对面,看着我的脸,说,“你他妈干的好事!你让我们损失了数百万美元的收入”。他的合伙(通过Skype远程出席会议)插进一句话“你替自己祷告吧”。

  整个公司在接下来的数天里都在做减灾控制。游戏开发运营上的工作全部停止。技术部员工试图通过其它数据表里的数据关系来尽可能的恢复USERS表。非技术员工来应付愤怒的客户,为那些声称记得自己游戏数据的人做记录。我这些天干脆就没回家。身上都发臭了。

  一直都没有公开的信息表明我要为此全权负责。大家都收到了一份邮件,里面称这是一个“初级程序员”的责任事故。公司里只有我和另外一个人被看作是“初级程序员”。

  不超过三天,很显然,所有人都知道了是我。大家开始用异样的眼光看我。少数几个人,对此表示同情。但大多数人,更多的是愤怒和不信任。对他们来说,是这个公司提供了他们这最好的工作机会。我把公司推向了困境,也同时把他们的幸福和生计推向困境。

  我情绪低落,充满内疚和惭愧。在一个“全公司”的大会上我公开的进行了道歉。有人鼓掌。

  一个月后,终于,我写了一封辞职信给CEO和项目经理。我离开了这个城市,头也不回的去了纽约。

英文原文:How I Fired Myself
中文译文:http://www.aqee.net/how-i-fired-myself/

最新评论

我也要发表评论

微博评论 2013-03-15 15:44 回复
//@Linux中国:转发微博

来自 Taski11er 的新浪微博
soli 2013-03-15 18:33 回复

手抖的后果。。。

Zer0caT 2013-03-17 21:31 回复

为那个程序员默哀。

我想问一下,

为什么这样毁灭级的命令不需任何权限就能执行?

为什么没有保护机制??

重要资料不用备份???

数据不能從硬盘恢复?

好吧,我把事情想得太简单了。

windnestlinux 2013-03-18 08:50 回复

第一篇是什么?

微博评论 2013-03-18 12:01 回复
弱智错误第二篇:我是如何毁掉一个网游公司的.这一篇文章写的不错,不管是工程师还是CEO都应该看看.毕竟做为程序员都会都犯一些小错误,有时候的灾难是不可控的.合理的数据管理方式,数据的备份才是王道.我承认当年我也经历那种青涩年代的时候,我也犯过如此低级的错误,只不过没有造成不可恢复的后果.

来自 吾居榕树下 的新浪微博
qinggan 2013-03-18 18:04 回复

我也说点实话,这么大的数据量,竟然没有备份!太假了~
哪怕是最笨的日志记录备份也是要的吧!
我也折腾过!——因为我们不能保证程序是完美正常运行的!异常无处不在!
还好有备份,耐心用了一天的时间把数据救回来了~~~

qinggan 2013-03-18 18:16 回复

说实话,老兄,你只是被推出去而已(事实现你要负的责任没有想像中的那么大)

假如:做好定期备份,或是每天备份!

假如:数据库运行有日志可以回滚!

我水平菜,但我知道,只有上面两个假如存在一个,你都不会这么杯具!

因为我也碰到过类似的情形,幸运的是上述两个假如我都有(定时备份,全程二进制日志,可以回滚),最后我用半天时间将数据恢复过来(额,被小罚了一下,不过都被我老大给挡住了!有时候,领路人也是很重要的,我想我是幸运的)

freesky3555 2013-03-19 08:28 回复

樓主不過想說的是學哲學無用,學哲學有害罷了,我給你說出來 ~

DeadFire 2013-03-31 02:33 回复
回复 windnestlinux 的帖子

第一篇不像这篇这么印象深刻,我都想不起是啥来了。

DeadFire 2013-03-31 02:35 回复
回复 qinggan 的帖子 什么事情都是有可能发生的,哎。
DeadFire 2013-03-31 02:36 回复
回复 freesky3555 的帖子 哲学还是很有用的。
DeadFire 2013-03-31 02:36 回复
回复 Zer0caT 的帖子 很多时候,越觉得没问题的地方,越容易出问题,所以……
返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。