一個奇怪的夢

看過古劍奇譚以後就無限嚮往修仙的世界。javascript

知乎上有位大神說過,編程的最高境界是將編譯器融爲靈魂的一部分,
讓世界在眼中重構,當看到山川河流銀河無垠都匯成二進制的數字流,
過往英雄都在腦海眼前一一浮現時,
無數碼農將跪倒在你的程序面前呼喊,你將成爲代碼之神。css

昨晚我作了個夢,來到了修真世界,找到了修真之神。html

我跟神說我精通javascript,擁有深厚的java功底,
精通面向對象的各類技能,不過我尚未對象,如今主修H5,
我將如何成爲一個代碼之神。前端

修真之神之說了三點。html5

首先,無論你學的是什麼語言,都是異曲同工,
修真之人,不要在意這些差異,
可是這世界上尚未人能夠說,他已經精通javascript,
因此你裝逼的時候,也要裝的像個樣子。
好比,你能夠說你精通C#。java

其二,現在江湖現由BAT三大門派統領,
搜狐新浪奇虎等實力派一直虎視眈眈,
無數創業公司如雨後春筍,
小米京東的崛起打破了江湖格局,
知乎,CSDN,博客園等民間組織實力不容小覷。
江湖看似平靜,其實暗地裏摩擦不斷,
若是沒有一個優秀的領軍人物,江湖必將掀起一場腥風血雨,
因此民間將舉辦一場武林盟主大會,年輕人去碰碰運氣吧。node

其三,江湖雖亂,但恩恩怨怨都是過往雲煙,自身境界纔是萬源之本,
這世界有萬千代碼,萬物均可以編譯,但你編譯不了的,是本身的心。css3

此次比武大會由CSDN等民間組織舉辦,
智聯招聘以及獵聘網等情報機構贊助,
很多名門正派做爲嘉賓收到邀請,
是全國最大的一次民間比武大會。
而比賽規則是,提早發一份簡歷,
主辦方將根據簡歷挑選出400名參賽人員。
戰敗者淘汰,評委給出評分,評分低於80淘汰。
最後站在比武臺即爲武林盟主。到場門派可隨時發出offer,
全部參賽者將得到禮物,聽說評分95以上有機會進入到BAT。
現場經過對空氣進行編碼,造出一個虛擬4D顯示屏,
參賽者可自帶電腦,全程網絡直播。web

最早上場一個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,光頭慘叫一聲,身體失去告終構,化爲一灘數據流,消失在這八月的秋風裏。

叮鈴鈴,叮鈴鈴,鬧鐘響了起來,該去上班寫接口了。

相關文章
相關標籤/搜索