新聞中心
5點鐘了。這段代碼我已經(jīng)研究了好幾個小時,半天寫出一行。這真是一種折磨。有些天里,代碼會不由自主的從腦子里溜到我的指尖??山裉觳皇?。

成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元南安做網(wǎng)站,已為上家服務(wù),為南安各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
我的任務(wù)是往一個類里添加一個新功能?!癊asy”,我想?!拔覍懙倪@個類,現(xiàn)在去擴展它,怎么也不應(yīng)該太難?!庇谑?,在飽飽的午餐后,我就開始坐下來編程。
開始一切都很順利——我有個不錯的主意,知道如何將這個新功能放進這個類里。然而,越往細(xì)里分析,我開始發(fā)現(xiàn)我的妙主意并不是那么好。這個功能需要的數(shù)據(jù)在這里無法獲取到。我嘗試了各種激進的方法,使得這個類混亂不堪,bug橫生。修改后的代碼的單元測試幾乎沒有成功通過過。
接下來的幾個小時里我感覺就像是在兔子洞里越掉越深,***完全認(rèn)不出自己寫的代碼。我反復(fù)的對比修改后的代碼和修改前的原始代碼,試圖能清楚什么地方出了問題。我的腦子已經(jīng)無法理解這段代碼為什么能運行起來。已經(jīng)不知道我要把它改成什么樣。情況很快變成了我和計算機之間的一場拳擊?!熬幾g呀,該死的,趕快編譯!”
于是到了現(xiàn)在,5點鐘了——一個小時后就是下班時間。我?guī)缀醴艞壗裉焱瓿蛇@個功能的計劃。“不可能了,”我想?!肮獍堰@些亂糟糟的代碼理清楚就需要1個小時?!?/p>
我沮喪的站起來,耷拉著頭,慢慢往衛(wèi)生間走去。我坐在馬桶上,深呼吸——就在這時,靈感來了!
靈感女神的寶座
忽然間,我想清楚了一切。代碼一下子在涌進了我的腦海。我想清楚了這個類,它的所有功能,它的使用場景。我想清楚了如何把我的功能代碼加進去。我想清楚了一切!
解決完生理問題后(洗了手),我跑回辦公桌前,開始一陣狂敲代碼。我敲鍵盤的速度趕不上那些不斷涌進我腦海的代碼的速度。在我的手指的重敲下,鍵盤看起來要散架。電腦和我不再是敵人,我們是最親密的戰(zhàn)友,是為了一個共同的目標(biāo)走到一起來。
30分鐘后,代碼編譯成功。所有的單元測試都順利通過。我完整的按著新功能的需求跑了一遍,所有功能點都按預(yù)期運行?!拔腋愣诉@無法完成的任務(wù),我成功了!”
當(dāng)編碼的興奮勁慢慢消退后,我意識到了一個無法回避的事實:我***效的編程不是坐在計算機前,而是蹲在馬桶上。
退一步海闊天空(From Your Code)
現(xiàn)在,我并不是說馬桶具有神奇的代碼設(shè)計的魔法(雖然我承認(rèn)它是一個偉大的發(fā)明)。然而,我要說的是,不論你是要完成多么重大或多么微不足道的編程任務(wù),從電腦前走開,從一個更高的層面思考問題,你的效率至少會提高10倍。不論是去衛(wèi)生間,還是去公園走一走,或在辦公室休息區(qū)休息一會兒,遠(yuǎn)離你的電腦屏幕,這能清醒你的大腦,讓你推開樹木看到森林。
很多程序員舍不得離開他們的電腦桌。他們認(rèn)為時間沒有花在IDE上都是浪費,擔(dān)心被別人說不努力工作?!盀槭裁茨悴辉诠の簧暇幋a???等著扣薪水吧,”項目經(jīng)理會這樣說。
我認(rèn)為,這種邏輯是愚蠢的,是反效率的。程序員不是雇來坐在桌邊的,或雇來盯著屏幕的,甚至雇來寫代碼的。這些只是程序員達(dá)到他們最終目的的過程,而真正的目標(biāo)是:為最終用戶開發(fā)功能。如果我們要是能在遠(yuǎn)離電腦桌的情況下可以更快速更高效的開發(fā)出這些功能,那何樂而不為呢?
總之,在編程時別忘了充分利用馬桶。
英文原文:Programming on the Toilet
譯文鏈接:http://www.vaikan.com/programming-on-toilet/
當(dāng)前標(biāo)題:為開發(fā)新功能的靈感:蹲在馬桶上編程
分享URL:http://m.fisionsoft.com.cn/article/cocppde.html


咨詢
建站咨詢
