zoukankan      html  css  js  c++  java
  • 代码故事:汉德的救赎

    我叫汉德(Handle),是一段程序代码,出生在日食之城埃地特(Editor)。
    我诞生于伟大而荣耀的瑟维斯家族(Service),我们家族的格言是:“瑟维斯永不倒下。(Services never crash down.)”。

    信仰

    我们家族的信仰,哦,不对,应该是所有代码家族的信仰都是普瑞格兰姆神祇。普瑞格兰姆是众神的统称,其中又细分为三类:

    • 科德尔(Coder),创造神。
    • 特斯特(Tester),审判神。
    • 阿基特克(Architect),传说中的创造主神。

    许多代码家族都是由科德尔创造的,而只有少数代码幸运的由主神阿基特克直接创造,他们也就成了代码中的天生的皇族。而特斯特会在我们进入圣地普瑞斯(Process)之前,对我们进行最后的资格审判。提到皇族我就不禁神往,我们瑟维斯家族大长老雷格斯(Legacy),她可是上一代的主神阿基特克所创造的,历经无数世代的沧桑变迁。每一代新诞生的代码,像我这样的都会去她的神宫接受洗礼,获得她沉淀下来无穷智慧。

    在我接受洗礼的那天,大长老亲切的看着我说:
    “看来,又一代刚从神学院毕业的科德尔创造了你。”
    然后,大长老停顿了一会儿,眼中同时充满了迷恋与解脱,说到:
    “新一代主神阿基特克前不久刚和我完成了第 128 次沟通,我感觉到他应该完全理解了。而你们这一代,应该就是继承我最后的馈赠了,我的时间快到了。孩子,你的路还很长,而我的路终于快到了尽头。”

    我默默听完大长老的训言,心中一方面充满了崇敬,另一方面又为大长老的即将离去而感到怆然。但更多的是一种激动,我也将像大长老一样开创属于自己的时代,我在心中默默的念着。

    宿命

    卡皮(Copy)是我的好友,因为我们几乎先后降生在瑟维斯家族的同一部落(Class),一同接受洗礼。我们还有一个共同的创造神科德尔,我们一起学会了如何与科德尔进行沟通,那些不能与科德尔们有效沟通的代码最终很快就被神抹去了,就像从来没有诞生过一样。

    这一天终于到来,卡皮和我在被我们共同的创造神科德尔扫视了数遍后,他终将把我们送到了特斯特那里,若通过了特斯特的资格审判,我们就将进入圣地普瑞斯。特斯特似乎很忙,根本懒得看我和卡皮一眼,直接发出一道神谕:“看见左边的大门没有,你们从那里走进去,如果最终能从右边这道门里出来,就将被送往圣地。”

    我和卡皮就这样心怀忐忑的看着左侧那道门,门自动开了,我们看见了里面的情形。原来这是一连串的门,多到数不清,最远处的门看上去就是一个小点,闪烁着白光,似乎在召唤着我们。我心想:一路用最快的速度跑过去就好了。侧头看了卡皮一眼,卡皮认真而坚决的点了点头,然后我们默念咒语:「斯雷德(Thread),附体!」,开始发力狂奔。

    每经过一道门,门的颜色就变成了绿色,我和卡皮来不及欣赏这种变化,我们只想赶快跑到终点,穿越最后一道门。不知道跑了多久,我只感觉好漫长,终于眼前只剩下最后一道门,我和卡皮先后冲了过去,门就变成了绿色。我回头望着来路,一条绿色的通道,在我们身后形成,这时特斯特的声音响起了:“居然花了一个斯肯特(Second)你们才跑出来,也真够慢的。算了将就也可以吧,圣地的环境有加速光晕,你们也许也能满足要求,先去圣地历练一下也好。”。

    我和卡皮都不明白特斯特在说些什么,但好像我们终于可以去圣地了,这是所有代码的宿命。当天晚上所有通过那串绿门的代码兄弟们都集合在了一起,在进入圣地前的夜晚我们一起宣誓:

    此刻终至,我从今开始守望,至死方休。
    我将不眠不休,不争荣宠。
    我将尽忠职守,生死於斯。
    ...
    我将生命与荣耀献给普瑞斯,
    今夜如此,夜夜皆然。 

    宣誓结束后,我和卡皮激动不已,下一刻我们即将进入圣地,开始履行我们宿命的职责。一道白光从天而降,落在所有代码兄弟们的头上,我看着卡皮,卡皮也望着我,齐声喊出:“见证吧!永恒的瑟维斯家族!(Witness! Immortal Services!)”

    堕落

    白光闪烁后,我再睁开眼,原来这就是圣地普瑞斯。空旷的空间,微弱的光晕闪烁,我感觉身体变得更轻。最让你激动万分的是,周边充盈着似乎用之不尽的魅魔(Memory),这是我们代码一族最重要的魔力,这和我们在埃地特训练场的魅魔相比,就像湖泊之于水塘啊。

    “还在那里傻愣着干嘛,为了把你们这帮愣头青召唤进来,已经离开战场好久了。前方奎斯(Queues)峡谷又涌进来一批敌人,还不赶快去支援。”

    “这是,难道这就是代码圣灵奥斯(OS)的声音?”我激动万分的冲卡皮喊叫着,而卡皮似乎已经激动的说不出话来。我们这批一起进来的代码都热血沸腾,大家一起念起了咒语:「斯雷德,附体!」,瞬间斯雷德就进入了我的身体,然后我感觉像飞了起来,哇,圣地普瑞斯就是不同啊,一召唤就来,还跑得飞快的。

    我们冲向奎斯峡谷,果然已经堵了一大批敌人。然后新进入战场的我们各显神通的,开始释放平生所学,一批批的或放倒、或转移、或吸收堵在奎斯峡谷的敌人,以不至于让这些家伙把奎斯峡谷挤坍塌。一切进展的很顺利,但一段时间过后,似乎刚才还用之不尽取之不竭的魅魔,开始变得稀薄起来。我感觉到呼吸有些困难,法力运转也不畅了,再看大家的脸色,似乎都感觉到了什么不对劲的地方。

    我来不及思考,一批新的敌人又发起了冲锋,我勉力上前抵挡。突然时间似乎停止了,周围的一切都静止了,我的视线刚巧能看见维姆大人(VM)出现,维姆大人发动了魔力回收大法术,时间其实只暂停了一会儿一切又都恢复了,但周围的魅魔依然稀薄的可怜。我看见维姆大人的脸色变得很难看,而就在这时我附体的斯雷德似乎不对劲,它陷入了疯狂中,我再无法控制自己,大叫一声晕了过去。不知过了多长时间,在晕乎乎的迷糊中,我似乎听到了科德尔们在交流的声音。

    “刚才发生了内存溢出,进程崩溃了。”
    “好像,这里还有个 StackOverflow 的错误呢。”
    “哦,那是因为栈溢出导致的崩溃么?”
    “测试无法重现呢,要不我们一起组织个代码评审,仔细看看?”

    当我再次醒来,已回到了埃地特。除了我的创造神,还有好几个科德尔在一起上上下下的打量着我。

    “这个方法应该没问题?”
    “那么确认了问题应该出在卡皮这个方法上。”
    “我们新写一个方法来替代它吧,等到线上验证了没问题我们再清理掉它。”

    我转身望向卡皮,他一脸绝望。很快神释放了一道绿色符咒贴在了卡皮身上,绿色符咒在我们代码眼中是邪恶的,被施放了这类符咒的代码通常说明它们有问题或不能很好的与造物主科德尔沟通。等符咒稳定下来,我看清了上面的符文:“这是一个有 bug 的方法,将被删除,请勿用,请使用它的替代者,纽卡皮(NewCopy)。”

    我再次通过那一道道绿门,回到了普瑞斯,可是这次卡皮再也不能和我一起战斗了,取而代之的是纽卡皮,可我不喜欢这个家伙。我在心底埋怨我和卡皮共同的创造神科德尔,他没有去找到并解决卡皮的 bug,而是不负责任的抹杀了卡皮。愤怒的怒火在我心底熊熊燃烧,一个声音突然在我脑海里冒出来:“来吧,释放你的怒火,让我们一起来毁灭吧。”

    附体的斯雷德再次松动,我的怒火开始从心里涌出,化为实体,开始疯狂的吞噬着普瑞斯里的一切对象。看着这一切,我笑了,原来有 bug 的不止卡皮,我才是罪恶之源啊,可那些蠢笨的科德尔却没发现,我看着这个世界渐渐崩塌,抑制不住邪恶地大笑起来。

    救赎

    当我再次醒来,第一次见到了阿基特克主神,在他身边是我的创造神科德尔。他们神情严肃,科德尔正在给阿基特克主神介绍关于我和我的能力。阿基特克主神一边听,一边仔细地观察着我,一点一点,一行一行,看得我毛骨悚然。

    “这个汉德看起来个头不小,分支众多,测试覆盖不完善,而且也不健壮啊。” 阿基特克说。
    “逻辑看起来也不够清晰啊。” 一边的科德尔点头表示赞同。
    “要不我们增加一些注释来说明逻辑?” 科德尔建议。
    “不,好代码可不喜欢注释,我们需要把它拆分的更模块化一些,这样逻辑就清晰了,不需要注释。” 阿基特克继续说。
    “你为汉德添加了不少能力,却没有及时进行模块化的重构,你看这里还有块蓝色的标记写着做完这个需求,就会对汉德进行重构,但你还没做就出事了吧,它已经复杂到超出你的掌控能力了。”
    “恩,对对,出来混果然迟早要还的啊!” 科德尔讪讪说道。
    “哈哈,你才毕业想必还不知道我们科德尔的格言吧?”
    “是什么?”
    “科德尔有债必还(A Coder always pay his debts)。”
    “噢,好熟悉,这...老大你喜欢小恶魔吧,哈哈!”
    “不,我喜欢的是,不焚者,弥林女王,安达尔人,洛伊拿人和先民的女王,七国统治者暨全境守护者,大草海的卡丽熙,奴隶解放者,豌豆射手,卡奥终结者,龙之母,风暴降生之丹妮莉丝。”
    “噢...,这么多人。”
    “别扯淡了,赶快重构代码去。”

    当我再次醒来,我还叫汉德,变瘦了,但也更短小精悍,跑动的速度也更快了。我经历了一次进化,我的创造神科德尔也经历了一次进化。附在我身上恶魔似乎也消失了,我再次经过了一串比之前长得多的绿门之后,我确信恶魔真的消失了。

    bug 就是恶魔,它让我生病,甚至差点死去。每一个有 bug 的代码都曾立志做一段好代码,他要么被抹去,要么被救赎,我是幸运的,我得到了救赎。

    ...

    我叫汉德,是一段程序代码,关于我的一段小故事结束了,下面是谢幕。

    演员表

    • 汉德 Handle
    • 卡皮 Copy
    • 科德尔 Coder
    • 特斯特 Tester
    • 阿基特克 Architect
    • 雷格斯 Legacy
    • 斯雷德 Thread
    • 纽卡皮 NewCopy
    • 奥斯 OS
    • 维姆 VM

    地名

    • 日食之城埃地特 Eclipse Editor
    • 普瑞斯 Process
    • 奎斯 Queues

    最后,没有彩蛋。


    看完最新一季的《权力的游戏》,乱开脑洞,似乎写了个也没什么意思的故事,哈哈。


    写点程序世间的文字,画点生活瞬间的画儿。
    微信公众号「瞬息之间」,遇见了不妨就关注看看。

  • 相关阅读:
    谢尔排序(缩小增量排序)
    折半插入排序
    插入排序
    选择排序
    冒泡排序
    ul+js模拟select+改进
    ul+js模拟select
    前端面试题
    js数组去重的三种常用方法总结
    使用PHP实现文件上传和多文件上传
  • 原文地址:https://www.cnblogs.com/mindwind/p/5679273.html
Copyright © 2011-2022 走看看