看看老外程序員的創(chuàng)意紋身
本文是從 What? You tattooed code on your arm? 這篇文章翻譯而來。
- (function(){var k=[];return function j(){k.push(i);j();}})()();
這就是上周我在胳膊上刺的字。人們對(duì)這個(gè)紋身的反應(yīng)先是不敢相信,后是覺得好笑,但我喜歡它。
為什么我會(huì)決定要讓這樣一段讓人費(fèi)解的JavaScript代碼在我余下的一生中伴隨在我的身體上?是這樣,我想要一個(gè)只對(duì)我自己有意義的紋身。我想要一個(gè)跟我的工作和興趣有關(guān)的紋身:Web開發(fā)相關(guān)的。我希望這個(gè)紋身是與眾不同的。
我簡單的在Google上查了一下“程序員紋身”和“開發(fā)者紋身”,希望能得到一點(diǎn)靈感,但唯一能找到的是你肯定見到過的 圖案(很妙的紋身):
設(shè)計(jì)獨(dú)特
在互聯(lián)網(wǎng)上一無所獲后,我想到,與其找什么東西來表現(xiàn)我對(duì)編程的喜愛,不如直接用代碼來表現(xiàn)我的思想。
所用的語言很顯然應(yīng)該是JavaScript。它是我使用時(shí)間最長的語言。JavaScript也是web開發(fā)的核心基礎(chǔ),就目前的開發(fā)趨勢(shì)來看,這種現(xiàn)狀在短時(shí)期內(nèi)也不會(huì)有任何改變。還有,它是一個(gè)開放的標(biāo)準(zhǔn),我堅(jiān)信,整個(gè)互聯(lián)網(wǎng)也都該這樣。
那么,我用代碼表現(xiàn)些什么呢?我想,這種代碼應(yīng)該是能提醒我在每天工作中、生活中都努力追求的一種什么樣價(jià)值和態(tài)度的代碼。
- (function(){var k=[];return function j(){k.push(i);j();}})()();
這種代碼結(jié)構(gòu)被稱作閉包(closure)。如果你不知道閉包是什么,這里有個(gè)資料你可以閱讀一下:什么是閉包。 簡單說:它是一個(gè)能返回另一個(gè)函數(shù)的函數(shù)。被返回的函數(shù)里可以訪問到其父函數(shù)的有效變量訪問范圍內(nèi)的所有變量——就像是面向?qū)ο笳Z言,例如C#或 Java,里的私有內(nèi)部類。我決定采用這種結(jié)構(gòu)體有兩個(gè)原因:首先,我感覺這個(gè)東西非常的漂亮,第二,我希望這種編碼方式能被更多的接受、更多的使用。
- (function(){var k=[];return function j(){k.push(i);j();}})()();
這個(gè) 數(shù)組k 代表知識(shí)和經(jīng)驗(yàn)。
- (function(){var k=[];return function j(){k.push(i);j();}})()();
閉包返回的函數(shù) j 是遞歸調(diào)用的。這用來提醒我,我需要保持我的動(dòng)力和干勁——我應(yīng)該不斷的追求。
- (function(){var k=[];return function j(){k.push(i);j();}})()();
每一次的調(diào)用,函數(shù) j 就會(huì)把全局變量 i 里的內(nèi)容添加到內(nèi)部的數(shù)組 k 里。眼尖的人會(huì)發(fā)現(xiàn),這段代碼沒有做異常檢查,如果變量 i 沒有定義,這段代碼會(huì)報(bào)錯(cuò),遞歸函數(shù) j 將運(yùn)行不下去。這是故意的。變量i 表示來自其他人的輸入,我要提醒自己,應(yīng)該不斷的向周圍的人尋求建議和忠告。我知道我不能在與世隔絕中成長,因此,不從他人那里收集經(jīng)驗(yàn)將會(huì)帶來災(zāi)難的后果。正如我上面提到的,數(shù)組k 表示知識(shí)和經(jīng)驗(yàn),這部分代碼還讓我記住,我要不斷的從獲得的輸入信息中學(xué)到東西。這并不是說我必須要接受和采納所有收到的建議,我需要的是從中學(xué)到東西。即使不可用的建議也能讓我們從忠告者身上學(xué)到很多事情。
- (function(){var k=[];return function j(){k.push(i);j();}})()();
閉包和返回的函數(shù) j 都是自我調(diào)用的。這表示,代碼會(huì)自我驅(qū)動(dòng)運(yùn)行:函數(shù)并不一定需要?jiǎng)e人來驅(qū)動(dòng)。這是在提醒我,在工作和生活中,我應(yīng)該主動(dòng)行動(dòng),不要依賴由外界壓力的影響才去做新的事情。
于是,這個(gè)紋身就誕生了。每次看見我的胳膊,都會(huì)讓我想起它賦予的對(duì)我、對(duì)編程有重要意義的涵義。
我很得意戴著這怪異的紋身
本文轉(zhuǎn)載自: 外刊IT評(píng)論 http://www.aqee.net/
【編輯推薦】