遠(yuǎn)離你的電腦,代碼寫(xiě)得更好!
我最近才意識(shí)到,如果你對(duì)著電腦,用著編譯器、IDE和工具等,是搞不出什么好代碼的。***的編程地點(diǎn)是——遠(yuǎn)離你的這些工具——在一個(gè)能讓你正確思考的地方,有條不紊地寫(xiě)代碼。一般來(lái)說(shuō),對(duì)于一種你熟的不能再熟的編程語(yǔ)言,在你的大腦計(jì)算機(jī)里翻譯程序,甚至和用編譯器編譯(還有解釋器解釋)是一樣容易的。甚至,你可能***想出來(lái)的程序比計(jì)算機(jī)更復(fù)雜更酷。
有一次,我在火車(chē)上旅行。我雖然帶了筆記本,但是沒(méi)有網(wǎng)。而不幸的是,我用的是商業(yè)編程語(yǔ)言(IDL),需要得到網(wǎng)站許可方能使用。但是沒(méi)網(wǎng)就意味著得不到網(wǎng)站的授權(quán),得不到網(wǎng)站的授權(quán),就意味著我就完全沒(méi)法運(yùn)行編譯器和IDE。哦,my God!IDL的商業(yè)許可不但貴,而且它的編譯器還限制我在自己的編輯器上寫(xiě)代碼,這個(gè)破編程語(yǔ)言,誰(shuí)愛(ài)用誰(shuí)用!但是我想說(shuō)的是,這件事啟發(fā)了我。
我記得我在哪里看到過(guò)這樣一個(gè)帖子,概括起來(lái)的中心意識(shí)是:
我從我***個(gè)老板那學(xué)到的其中一個(gè)***的教訓(xùn)是:當(dāng)你的代碼不能如期運(yùn)行時(shí),不要老是依賴調(diào)試器,試著自己思考一下。
但是因?yàn)橛辛司幾g器,使得很少有人會(huì)去這么做。這種心態(tài)很容易理解,也很正常。我們一般的編碼流程是:
1)寫(xiě)代碼,即使寫(xiě)得很差
2)編譯之后執(zhí)行代碼
3)用簡(jiǎn)單的事例測(cè)試
4)發(fā)現(xiàn)不能工作
5)小小的改一下,再看看問(wèn)題是否能解決
6)不斷重復(fù)過(guò)程5)
***得到的代碼很可能滿是bug、不便于測(cè)試,然后編程人員自己都無(wú)從下手了。
遠(yuǎn)離你的電腦,迫使你不得不先在自己的大腦里思考一遍——當(dāng)然,這會(huì)比你用電腦來(lái)編譯和運(yùn)行代碼所花費(fèi)的時(shí)間更長(zhǎng)。但是,你不會(huì)想著——在代碼里小修改一下再運(yùn)行看看——這種愚蠢的事,你會(huì)思考要用哪些代碼執(zhí)行什么。也正是在火車(chē)上的那一天,我意識(shí)到,自從我過(guò)了Computing A-Level 考試,我就再也沒(méi)有在紙上寫(xiě)過(guò)一句代碼。
在另一次我寫(xiě)代碼的時(shí)候,我想試試能不能遠(yuǎn)離電腦來(lái)寫(xiě)代碼,我先是想出了一段高質(zhì)量基本無(wú)bug的代碼,然后寫(xiě)在紙上面,思考是否有需要糾正的,然后復(fù)制到電腦上,再想想有沒(méi)有問(wèn)題了,***才在編譯器上編譯。而我從紙上拷貝過(guò)去的代碼,盡管有涉及大量遞歸的圖像分割程序,但是奇跡般的,我一次就成功了!
這種感覺(jué)真的超級(jí)棒。***,我希望我的這個(gè)建議能對(duì)各位有用!
譯文鏈接:http://news.html5tricks.com/code-better-get-away-from-pc.html