zoukankan      html  css  js  c++  java
  • 一个奇怪的梦

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

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

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

    我跟神说我精通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,光头惨叫一声,身体失去了结构,化为一滩数据流,消失在这八月的秋风里。

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

  • 相关阅读:
    JS中的getter与setter
    Node.js中exports与module.exports的区别
    JS中的匿名函数自执行、函数声明与函数表达式
    JS实现千分位
    JS中的new操作符原理解析
    JS中null与undefined的区别
    JavaScript中callee与caller,apply与call解析
    解决vue路由与锚点冲突
    jQuery中deferred的对象使用
    Vue的生命周期
  • 原文地址:https://www.cnblogs.com/zhoudaozhang/p/4702408.html
Copyright © 2011-2022 走看看