[结局]Code105:程序员所需要的浪漫结局。

每个程序员都有自己独特的想法,有着别具一格的烂漫幻想,他们都在敲代码,生活难以切合剧情需要,小说作家难以理解程序员的生活,就连程序员都不知道自己的生活除了敲打代码之外还能干什么。

理解不了的世界,写不好,黑得了。

拿着稳定可观的工资加着没日没夜的班,程序员、工程师不愿当上主角全因没时间。

工程师的脑子都是解决问题而存在,说上标准人类语言、普通话的人在理科生群里还能文采丰富的又更少之又少,精英等级的都成天才人生赢家了,还需要写些二流的穿越异世界小说,把自己化身为文字中的主角意淫酒池肉林、虚拟的美好事物?

内向、闷骚,语言能力技能不足等,得空打打嘴炮,却不能真实地和机械、植物以外的生物说着共同语言聊天的程序员选择放弃与人面对面沟通。

他们选择在匪夷所思的正常世界里,可以把一个游戏玩到十几年都玩不烂,纯粹为了收集游戏里的里程碑和锦旗;为了特定的角色而下了不少资本就为了一个限定套装。

游戏已经成了唯一心灵上的寄托。

网络真是个好东西,在这个坏心眼的世界里可以不用穿越就能加buff,让自己和他人在网络上侃侃而谈,因为这刚好是个打字不用负责的年代。

恍如隔日。

怎么说,我还试着理解这个世界的工作方式。犯着中二精神的自己绝对成为了过去的代名词,魔法、冒险者、探险家、拯救世界这个词语早就离我而去好久了。

这个世界不会给你所需要的一切。

Code105:结局。

毛茸茸且肥壮德国牧羊犬扯咬着我的裤角把我拉回被魔物感染的据点前进。看着那一大波恶心的魔物,液状般在地上抽动的生物,我一脸生无可恋的一屁股就倒坐在地上,自暴自弃的喃喃自语。

“完了,完了,这下子可就会完完全全地玩完了。”

“我的今生后生都是那么莫名其妙的开始也这样莫名其妙的结束。”

毛绒绒的牧羊犬看着这一大群怪物(problems)自己可愣在一旁了,不禁感叹:对于初学者就开出那么一碗‘良药(项目)’,上头可真是良心啊~

还是这一些都是‘世界’所产生的错误程序(bugs)呢?

牧羊犬想了想,绝逼是上头的坏心眼要逼走新人所制造的难题(task),绝世好同事——一只牧羊犬决定留下来加班,只为了要帮助这个新人解决他手头上的入职考验的任务。

于是,一身帅气又毛绒的它转身对着身后那个看到这些怪物就怂了坐在地上发呆的新人,大声喝道:

“少年郎(年轻人),come' on 别发呆了 Just fork me!”

????????

牧羊犬看着目光凝滞、一脸疑惑的梁良辰更为愤怒,大骂:“难道你要我牵着你的手,手把手教你如何编程吗?”

牧羊犬气得直跺脚,口里念着:

“指令:tirsh suspend hwconfig-om

(Tod-Kernel-based Virtual Machine,缩写为TVM)是一种用于Oinux,linux 之上的一种城市开发模式的虚拟化基础设施,,从字面上作简单的理解就是城市要开发那里,首先把路开通到那里,道路先行,这就是居于借鉴此交通引导开发把概念导入内核中的虚拟化基础设施,把资源集中区前必须把管道给接好一样,而T.O.D指的是Transit-Oriented-Development。

指令写法为$~tirsh [COMMAND] [ARGS],指令功能为暂停虚拟机的执行,通常会接着dump将虚拟机的内核转储到指定的文档,以便进行分析与排错)

☻。

ta笑了。

别人都称呼它“神”,神明们都称呼它为“那位大人”,无所不在,无所不能却老是自称为『ta』的家伙是一只挪威森林猫。

身为这个世界的造物主,它正在乏味地通过无数的监视器看着这个画面中的事物。

它圈坐在懒人沙发豆袋上悠闲地看着画面中的青年与狗,舔着肉丸不自觉地笑了。

它打了呵欠,“一点都不精彩,还没开始就可要结束了。”

这时候,观察力不错的良辰注意到牧羊犬身上带着一个小型背包。

这个包可不简单了,打开包,包里的工具一律俱全。IC夹、内六扳手、尖嘴钳,螺丝刀等系统工程师必备工具该有的都有了,就是只欠东风(灵感)。

自古以来硬体工程师吃硬从不吃软的,而软件程序员只吃软不吃硬。现代工艺要求下,DevOPS 的出现取代了并模糊化开发(dev)和运维(ops)的分界线。透过自动化「软件交付」和「架构变更」的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

系统有bug维修不了就先发布热补丁(hot patch)来个补救好了或是重启虚拟机器监视器(reboot hypervisor)!

照这个数量的魔物绝对会使到这个服务器(空间)运行量过大,内存超出负荷量(overload)使到硬件过热当机(‘世界’的运行可会暂时停止),而冲击会使到该正常运作的附件强制断电所损伤可是会使到数据(人类)读存出现错误(日常崩坏)。

把‘DevOps’ 属性加载,创造与维修集合一体的牧羊犬强烈的指出了这次灾害将会带来的后果,老是重视小差误而造成严重性后果的它拿出了一个薄如纸的水果牌平板电脑,语音操控加载了临时补丁,并强制运行该补丁。

这对于魔物们造成非常有效的伤害!

+叮咚!会心一击!魔物(Task A)受到了45%的猛烈解决(project percent complete),原故事点(story point)为5点,现在只剩下2.25点数,只需要再加点班就能立刻把这个项目完成。

Devops 的身份就好比在RPG职业中的法師,作为一个项目中魔法推手。牧羊犬所使用的辅助技能都会附加可维修度上升+30%,促使项目完成度提升了不少!+

时间战是对工程师们来说是不利的。

相对的,牧羊犬本身所拥有的体力也相对减少了。为了对付这个怪物,它使用不少的经历来写出的补丁费了它不少的脑力和智力;体力能量都被燃烧了。

如果继续要它写出代码,这下它可是会操劳重病,轻者生病,重者伤身伤肝损肾。

hot-patched始终治标不治本,怪物(problems)自体分裂,产生更为棘手的bottle neck。这时候还是要靠正统的程序员来除虫了,把千多行的代码写好减少对该磁盘的读写,减少I/O等待,改善硬件性能。

正良辰要写出第一行代码的时候,很遗憾的在老总身边那个抱着绿色大眼睛蜥蜴的俏秘书出现。“可惜啊~可惜啊~”她边拍手边用暧昧的语气不知从何处走了出来,“老总有规定,在十万字里冒险,可惜现在的你可是严重超出了这个字数。”

飘逸长发的女秘书站在的地点是平衡的光与暗的分界线,阴暗的感染地点外头的太阳是明媚的,一切都是强烈的对比。

她看起来就是天使和恶魔的混合体,妖媚的外表却给人纯净的气息,阴暗的心机又无辜的眼神,一切都是让人无比的疑惑的存在。

女秘书抚摸了她所喜爱的蜥蜴,蜥蜴长长在暖呼呼的阳光下舌头卷曲伸展。

她对伸手一挥,轻声细语地对着空气说。

“打开笔记本——”

“强制卸载程序——”

▎删除▒▒▒▒45%———————▎

▎删除▒▒▒▒▒▒▒▒75%——▎

▎删除Completed▒▒▒100%▒▎

◤##名为梁良辰的人生将会在接下来的五秒重启,##

这个空间开始方块式的崩坏,扭曲,再裂痕扩大,而良辰只能看着这一切不知所措,强烈的耳鸣、头疼让他意识逐渐离他而去。

(电子语音)Rebooting Start,

5、

4、

3、

2、

1、

1、

1——————冷漠感情机械性重复同一句话语的语音,被那突然的一句指令给中断了。

一行又一行被运载的程序像是*QTE般出现,它被非常快的手速即时输入,如同锋利的长枪冲刺,并且灵活性地转身跳跃,强劲地穿透了宛如身穿盔甲防具的硬执行,为的是检阅并立刻终止现在所运行的程序。

“良辰?”熟悉的女性声音就传到良辰的耳边。

那个音调不似现代人所拥有...那说话的调子真是一听难忘,让人非常的深刻印象的调调。

良辰转身一看,一身艳丽红色的修身西式套装,那一头油亮的黑发呈现三七分头高马尾,那面孔,是良辰认识已久的那个人——晴明。

能写得一手好的PHP程序语的家伙果然还是她啊。

“竟然能用程序语中断我oinux的运行码?”女秘书就像是坏人角色一样一脸挫败地跌坐在地上,沉痛地啜泣起来,宣告整菜鸟失败,憎恨自己的失误。

“PHP 这种烂语言竟然能用在维修范围?”,就像是被震撼弹击中,同时她手上的蜥蜴也摔得翻了个底朝天。

“我翻查过妳的资料,身为PM的妳应该只有文书处理工具,为何妳的操作系统上明明没有安装任何的集成开发环境(*IDE),却可以执行程序?”

晴明不喜欢这个女秘书轻易判断自己就是那些没脑的女PM,同是女人为何要为苦女人,她对她的偏见,就像是工程师们的偏见一样,那么的智障,那么的肤浅。

她笑了笑,作为一个有深度的PM,她不喜欢大长篇大论地解释一些国中生所应该要知道的模拟试题答案。这回下属有难,当然是上司出来面对问题鞠躬谢罪的啊。她的出现,是存粹出于职业操守,而且她怎么可能拿自己的部下来顶替先人所造成的开发过失呢?

为了增加深刻动人的戏码,她微笑地对良辰说,“你的末班车还有6小时吧?要知道你手头上的项目还没上线呢?”

这时,良辰听了感动得泪如雨下。

(第五章回合结束)

deadline还真的不等人,果然一个程序员若要转职,必备学习的技能就是要把一个新的语言彻底地了解还要在很快的时间内上手才行呢……

在身后史诗级什么的打斗正在进行着,顿时一个完整高文明度的都市瞬间变成残骸废墟,狼藉遍地。

看着同伴们为了项目进度把代码打得昏天暗地一团乱,混水摸鱼的两位老鸟站在后方抽着根烟,吞云吐雾间把所有失误烦恼疲累,抛在后头。

“下班后,我们去喝一杯吧?”

“如果能够下班的话,我请你一杯。”

=====

注1:在『码农』圈Fork一词,现在确实很火,当然和『全球最大的同性交友网站的GitHub』流行而大大提高出镜率有关系,常常可以看到『Fork me』这个词,鼓励别人Fork自己的仓库,通过Pull Request给自己的仓库做贡献,也是提高了自己仓库的知名度。#关于Pull Request参见:goo.gl/eQVghn

另外,个人觉得的原因是:

Fork一词谐音了『Fxck』,『Fork(Fxck)me』能体现自己的幽默态度,特别有暗示的内容总是容易让人兴奋和记住。

注2:hot patch指能够修复软件漏洞的一些代码,是一种快速、低成本修复产品软件版本缺陷的方式

注3:project percent complete项目管理知识体系术语。是指在一个项目的完成度。故事点是一个度量单位,用于表示完成一个产品待办项或者其他任何某项工作所需的所有工作量的估算结果。

注4:planned effort项目管理知识体系术语。是指在一个预期项目所需要下苦功、努力程度。

注5:bottle neck表示磁盘产生的I/O请求太多I/O系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,导致另一方没法完全发挥性能.

注6:Integrated Development Environment,简称IDE,也称为Integration Design Environment、Integration Debugging Environment)是一种辅助程式开发人员开发软体的应用软体,在开发工具内部就可以辅助编写原始码文本、并编译打包成为可用的程序,有些甚至可以设计图形介面。

注7:QTE是Quick Time Events的缩写,是一种交互式的电子游戏方式,玩家必须根据画面指示输入指令,后续结果会根据玩家输入指令的正确与否有所不同。

注8:以下是晴明写的PHP程序。

<?php

$descriptorspec=array(

0=>array('pipe','r'),//读写的管线标准输入

1=>array('pipe','w'),//将管线给写上的标准输出

2=>array('file',"/文件/梁良辰的人生.xmls",'w')//把管线给写入标准错误输出

);

$process=proc_open('terminate_program',$descriptorspec,$pipes);

$status=proc_get_status($process);

if($status['running']==true){//processrantoolong,killit

//closeallpipesthatarestillopen

fclose($pipes[1]);//stdout

fclose($pipes[2]);//stderr

//gettheparentpidoftheprocesswewanttokill

$ppid=$status['pid'];

//usepstogetallthechildrenofthisprocess,andkillthem

$pids=preg_split('/\s+/',`ps-opid--no-heading--ppid$ppid`);

foreach($pidsas$pid){

if(is_numeric($pid)){

posix_kill($pid,9);//9istheSIGKILLsignal

}

}

proc_close($process);

}

?>

*linux中的写法为这样,$kill-9bad-program;大致上的用意是终止程序bad-program的运行