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