看过古剑奇谭之后就无限向往修仙的世界。
知乎上有位大神说过,编程的最高境界是将编译器融为灵魂的一部分,
让世界在眼中重构,当看到山川河流银河无垠都汇成二进制的数字流,
过往英雄都在脑海眼前一一浮现时,
无数码农将跪倒在你的程序面前呼喊,你将成为代码之神。
昨晚我做了个梦,来到了修真世界,找到了修真之神。
我跟神说我精通javascript,拥有深厚的java功底,
精通面向对象的各种技能,不过我还没有对象,现在主修H5,
我将如何成为一个代码之神。
修真之神之说了三点。
首先,不管你学的是什么语言,都是殊途同归,
修真之人,不要在乎这些差别,
但是这世界上还没有人可以说,他已经精通javascript,
所以你装逼的时候,也要装的像个样子。
比如,你可以说你精通C#。
其二,如今江湖现由BAT三大门派统领,
搜狐新浪奇虎等实力派一直虎视眈眈,
无数创业公司如雨后春笋,
小米京东的崛起打破了江湖格局,
知乎,CSDN,博客园等民间组织实力不容小觑。
江湖看似平静,其实暗地里摩擦不断,
如果没有一个优秀的领军人物,江湖必将掀起一场腥风血雨,
所以民间将举办一场武林盟主大会,年轻人去碰碰运气吧。
其三,江湖虽乱,但恩恩怨怨都是过往云烟,自身境界才是万源之本,
这世界有万千代码,万物都可以编译,但你编译不了的,是自己的心。
这次比武大会由CSDN等民间组织举办,
智联招聘以及猎聘网等情报机构赞助,
不少名门正派作为嘉宾收到邀请,
是全国最大的一次民间比武大会。
而比赛规则是,提前发一份简历,
主办方将根据简历挑选出400名参赛人员。
战败者淘汰,评委给出评分,评分低于80淘汰。
最后站在比武台即为武林盟主。到场门派可随时发出offer,
所有参赛者将获得礼物,据说评分95以上有机会进入到BAT。
现场通过对空气进行编码,造出一个虚拟4D显示屏,
参赛者可自带电脑,全程网络直播。
最先上场一个20出头的小伙开始做自我介绍,来自新东方,
自学C++并亲自做出过坦克大战游戏,觉得修 c# 的都是傻逼。
武器为一台外星人笔记本,一看就是个狂小子。
有个修 c#的大叔看不下去了,50岁出头的样子,满头白发,一看就是资深大咖,
左手端着半旧的thinkpad,只轻轻一跃就跳上了比武台,台下观众一齐鼓掌。
主持人赶紧做个专访:大爷您是搞IT的,这么大年纪如此好身手,请问平时是怎么保养的。
大爷:我其实不怎么保养的,工作后每天修炼12小时以上,每天3点以后睡觉。
主持人:大爷您今年高寿啦?
大爷:今年24啦。
年轻人恃才自傲不肯先动手。
几番谦让后,大爷不客气了,
只看大爷右手食指在键盘上随便拨弄了两下,就打出了一串字符"HelloWorld!",
一个完全符合帕斯卡命名规范的字符串,高手就是高手!
小伙没那么客气,嘴中念念有词,手指就在键盘上拨弄起来,
几分钟功夫,空气中就出现了一个虚拟坦克,
一炮就把"HelloWorld!"轰得灰飞烟灭。
大爷眼皮都没眨一下,随手就用c#窗体做了一个迷宫算法,把坦克困在了里面,
坦克转了几圈后据说是一个变量的指针产生BUG抛出异常,小伙直接败下阵来。
大爷被评分89,很多门派发出offer,大爷一一谢绝,他说自己在国企工作,属于朝廷编制,
上去只是想用c#教训下那小子,所以宣布放弃比赛。
山雨欲来风满楼,何时起风了?只见远处飘来一朵云,一朵白色的云,
白云中一中年男子缓缓降落,大裤衩,冲锋衣,人字拖,光头,外号光头强,
精通Java,据说曾经做过云开发,已经用大数据编译出自己的云,
代码不在手上,已在心中,物质都是数据,万物皆对象,
一年前已分析出自己的内部数据结构并重新编码,
本身就是一个虚拟机,并称他的到来是为了世界和平,为了贯彻爱与真实的勇敢,
今天每场比赛他只出一招,没赢就算输。
听完光头的自我介绍,全场鸦雀无声,没一个人敢上去。
听到这,我习惯性的低下了头,然而现场并没有砖头......
是时候挑战下自己了,我跃上了擂台,
向观众做了一揖:本人周道长,
主修H5,最擅长的功夫是javascript......
话没说完,现场开始起哄:做前端的要挑战后台大神了,周道长,我们支持你!
光头强笑道:你还是下去,先学几年服务端语言在来吧。
我淡淡一笑:Talk is cheap,show me the code!
光头强用随手一挥,就打出一个webservice接口,
这个接口封装了很多诡异的招式,所有招式继承了一个抽象的不能实例化的类,
所有招式实现了同一个接口,一个是真正的对象,其他都是代理对象。
代理对象是在接口打出之后根据现场情况动态生成的。
接口通过tomcat发送一个http请求,向我缓缓袭来。
该请求居然无状态,就像一道彩虹,
在阳光的照射下发出绚丽的光芒,甚是好看。
这难道是失传已久的23种设计模式之一的”动态代理“以及“java多态”?
我迅速用html5+css3做出一个锥形效果,模糊边框以及遮罩,
锥形的顶点刚好瞄准“彩虹”的黄金分割点,
在object的原型里面使出函数柯里化,
用链式编程的风格执行了一遍光头的所有招式,
通过nodejs将该攻击反击回去,并clone了一道彩虹。
反击回去的彩虹体积不断增大,颜色不断增强,
最后只听一声巨响,光头强惨叫一声倒在了地上。
光头强嘴唇蠕动着似乎有话要说,我走了过去,
他不甘心的问道:我的“彩虹”体积是动态变化的,你用css3做的静态锥形是怎么找到破绽的?
我:这个很简单,我采用了less预处理,less将CSS赋予了动态语言的特性,
它扩充了CSS语言,增加了变量、混合、函数等功能.
光头:可是我的招式是动态生成的,类型以及参数个数都不确定,每一个对象都通过递归循环调用......
我:javascript是弱类型的语言,变量的类型随时可以改变,
函数柯里化把接受多个参数的招式变换成接受单一参数的新招式,
而我改动了你的真实对象,让你的循环递归变成一个死循环。
让你的对象相互引用,虚拟机不能释放内存,导致你元气大伤。
光头:你居然修改过我的招式,我竟然毫无察觉?
我:我将你的招式封装在一个js闭包里面,把你的对象clone了一份 ,
而我使用了浅复制,我和你共同持有那些招式的引用,
所以我能在你发招之后再修改它。
光头:你并没有使用web容器,你是怎么能截取到我通过服务器发出的招式?
我:nodejs可以让JavaScript运行在服务端,它本身就内建了一个http服务器。
光头:既生java何生node,光头惨叫一声,身体失去了结构,化为一滩数据流,消失在这八月的秋风里。
叮铃铃,叮铃铃,闹钟响了起来,该去上班写接口了。