先思再行 閉著眼睛編程
先思再行 閉著眼睛編程 軟件質(zhì)量編程研發(fā)實(shí)踐 摘要:解決問(wèn)題最重要的習(xí)慣不是一直盯著屏幕和編寫(xiě)修改代碼,某些時(shí)候,阻止你成功的東西恰恰會(huì)是過(guò)于努力。這時(shí)候你需要暫停一下,平緩你的思緒,換一種方法或許能帶給你不一樣的效果。
你會(huì)花多少時(shí)間思考如何編寫(xiě)代碼?
乍看這是一個(gè)引人思考的深層次問(wèn)題,在編程專(zhuān)業(yè)中常有這樣的誤解,軟件開(kāi)發(fā)就是寫(xiě)代碼。軟件開(kāi)發(fā)實(shí)為一門(mén)藝術(shù),而代碼僅僅是通往藝術(shù)之門(mén)的工具。好比燃料和畫(huà)布是畫(huà)家的工具一樣,代碼的目的是實(shí)現(xiàn)某種策略和思路。對(duì)程序員來(lái)說(shuō),他的目標(biāo)是開(kāi)發(fā)出完整的軟件系統(tǒng),按照需求完成各個(gè)功能模塊或許是某種無(wú)形的思路、特性。比如一個(gè)深思熟慮的架構(gòu)、明確的內(nèi)部組織和代碼質(zhì)量,最后將這些進(jìn)行整合。畫(huà)家每隔一小段時(shí)間會(huì)停下來(lái)重新評(píng)估進(jìn)展和繪畫(huà),看看是否達(dá)到自己的要求,程序員也一樣,必須定期審查代碼、查看進(jìn)展、檢查思路是否實(shí)現(xiàn)。
那么你平時(shí)是如何工作的呢?是否確定工作區(qū)后就埋頭苦干?什么都無(wú)法阻止你的前進(jìn)呢?如果這個(gè)描述很適合你,那么你做的一切都有可能是錯(cuò)的。
所有好的軟件都有共同之處——他們都設(shè)計(jì)精良。同樣,大多數(shù)失敗的案例也會(huì)有相同之處——缺乏結(jié)構(gòu)和視覺(jué)上的盛宴,最終導(dǎo)致崩潰。軟件開(kāi)發(fā)是一項(xiàng)智力活動(dòng),這一切都?xì)w結(jié)于實(shí)現(xiàn)的結(jié)構(gòu)和在混亂中找到開(kāi)發(fā)軟件的最佳理念。
我做過(guò)一個(gè)非常有趣的觀察。在我第一年的編程生涯中,我設(shè)法在規(guī)定的時(shí)間里開(kāi)發(fā)出大量的代碼。結(jié)果大多數(shù)代碼都需要重新開(kāi)發(fā)、設(shè)計(jì)甚至是丟棄。速度提高了,而效率卻明顯下降了,欲速則不達(dá)。隨著的時(shí)間推移,我學(xué)會(huì)一小步一小步前進(jìn),在開(kāi)發(fā)前進(jìn)行仔細(xì)分析思考,然后再開(kāi)始開(kāi)發(fā)編碼。結(jié)果發(fā)現(xiàn)代碼生成速度下降了好幾倍,而成功率幾乎達(dá)到100%,是不是有點(diǎn)戲劇性。我越來(lái)越多采用這種策略進(jìn)行編程,我沒(méi)有堅(jiān)持把時(shí)間直接轉(zhuǎn)換成代碼量。事實(shí)上,我經(jīng)常每天只寫(xiě)幾行代碼甚至有些時(shí)候會(huì)再刪除幾行。反而讓我的代碼從整體上更加簡(jiǎn)潔、效率更高。
許多程序員都體驗(yàn)過(guò)這種黑暗感覺(jué),當(dāng)你看到許多大大小小的缺陷都摻雜在一起的那種混亂,當(dāng)走到這一步再回頭重新修改設(shè)計(jì)代碼,你會(huì)意識(shí)到為時(shí)已晚并且是毫無(wú)意義的,因?yàn)槟憷^續(xù)下去的工作本質(zhì)上已經(jīng)是被丟棄的。
對(duì)此,你還能做什么?
事實(shí)上,你可以!學(xué)會(huì)把更多的時(shí)間用來(lái)思考并且減少代碼輸入。我發(fā)現(xiàn)長(zhǎng)時(shí)間的盯著屏幕并不會(huì)幫助你找到解決問(wèn)題的方式。當(dāng)思緒被卡住的時(shí)候,我會(huì)放棄繼續(xù)工作,離開(kāi)電腦和所思考的問(wèn)題。當(dāng)我漫步在公園和一些安靜的場(chǎng)所時(shí),常常會(huì)想到一些非常棒的思路和理念。實(shí)際上你可以試著閉著眼睛編程,燈光和周?chē)囊磺卸疾粫?huì)影響到你,片刻的休息會(huì)給你帶來(lái)轟動(dòng)的、突破性的思路。 我最喜歡的地方是浴室,它可以讓人放松和平靜下來(lái),聽(tīng)到照亮內(nèi)心的那些非常安靜的想法和靈感。
解決問(wèn)題最重要的習(xí)慣不是一直盯著屏幕和編寫(xiě)修改代碼,某些時(shí)候,阻止你成功的東西恰恰會(huì)是過(guò)于努力。這時(shí)候你需要暫停一下,平緩你的思緒,換一種方法或許能帶給你不一樣的效果。