一个奇怪的梦

mac2022-06-30  24

看过古剑奇谭之后就无限向往修仙的世界。

知乎上有位大神说过,编程的最高境界是将编译器融为灵魂的一部分,让世界在眼中重构,当看到山川河流银河无垠都汇成二进制的数字流,过往英雄都在脑海眼前一一浮现时,无数码农将跪倒在你的程序面前呼喊,你将成为代码之神。

昨晚我做了个梦,来到了修真世界,找到了修真之神。

我跟神说我精通javascript,拥有深厚的java功底,精通面向对象的各种技能,不过我还没有对象,现在主修H5,我将如何成为一个代码之神。

修真之神之说了三点。

首先,不管你学的是什么语言,都是殊途同归,修真之人,不要在乎这些差别,但是这世界上还没有人可以说,他已经精通javascript,所以你装逼的时候,也要装的像个样子。比如,你可以说你精通C#。

其二,如今江湖现由BAT三大门派统领,搜狐新浪奇虎等实力派一直虎视眈眈,无数创业公司如雨后春笋,小米京东的崛起打破了江湖格局,知乎,,博客园等民间组织实力不容小觑。江湖看似平静,其实暗地里摩擦不断,如果没有一个优秀的领军人物,江湖必将掀起一场腥风血雨,所以民间将举办一场武林盟主大会,年轻人去碰碰运气吧。

其三,江湖虽乱,但恩恩怨怨都是过往云烟,自身境界才是万源之本,这世界有万千代码,万物都可以编译,但你编译不了的,是自己的心。

这次比武大会由等民间组织举办,智联招聘以及猎聘网等情报机构赞助,不少名门正派作为嘉宾收到邀请,是全国最大的一次民间比武大会。而比赛规则是,提前发一份简历,主办方将根据简历挑选出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,光头惨叫一声,身体失去了结构,化为一滩数据流,消失在这八月的秋风里。

叮铃铃,叮铃铃,闹钟响了起来,该去上班写接口了。

 

转载于:https://www.cnblogs.com/zhoudaozhang/p/4702408.html

最新回复(0)