http://blog.csdn.net/fhbystudy/article/details/43482641
2015
本文是碼農網(wǎng)原創(chuàng )翻譯,轉載請看清文末的轉載要求,謝謝合作!
我之所以要用聰明和懶惰來(lái)形容高效的程序員,原因有以下幾點(diǎn):
好的軟件開(kāi)發(fā)過(guò)程應該是懶惰的軟件開(kāi)發(fā),亦稱(chēng)耐心開(kāi)發(fā),原因是開(kāi)發(fā)人員在寫(xiě)代碼之前會(huì )先將時(shí)間花在透徹地考慮各種解決方案上。
這是懶惰開(kāi)發(fā)的主旨,即在不了解之前就不會(huì )開(kāi)始寫(xiě)代碼。這個(gè)負責任的態(tài)度減少了他們所需要寫(xiě)的代碼量。
主要需要做到以下幾點(diǎn):
這些過(guò)程都是需要時(shí)間的。然而,不少開(kāi)發(fā)人員往往一拿到問(wèn)題就開(kāi)始急于敲代碼,然后再花費大把大把的時(shí)間修改代碼。
事實(shí)上,只有5%都不到的時(shí)間才真正是有生產(chǎn)力的。所以下回你要是看到某個(gè)開(kāi)發(fā)人員將他100%的時(shí)間都緊盯著(zhù)屏幕,不與其他人做任何互動(dòng),那么只能說(shuō)你找來(lái)的程序員可不太好啊。
高效的開(kāi)發(fā)人員會(huì )時(shí)不時(shí)地檢查對需求的理解,以確保與代碼相一致。富有生產(chǎn)力的開(kāi)發(fā)人員會(huì )經(jīng)常與產(chǎn)品經(jīng)理/業(yè)務(wù)分析員分析交流,也時(shí)??梢钥吹剿麄兣c同事和架構師出雙入對。當然資深的開(kāi)發(fā)人員也會(huì )因其自身豐富的經(jīng)驗而變得非常有效率。事實(shí)上,最好的開(kāi)發(fā)人員與其他人相比:
然而,總的說(shuō)來(lái),隨著(zhù)時(shí)間的推移,開(kāi)發(fā)人員的生產(chǎn)效率并沒(méi)有隨之而增長(cháng),即從成千上萬(wàn)的開(kāi)發(fā)人員那兒可以證實(shí),豐富的經(jīng)驗和生產(chǎn)力是無(wú)關(guān)的。事實(shí)上,我們的生產(chǎn)效率在過(guò)去50年間已經(jīng)提高了8倍,所以,從總體上說(shuō),經(jīng)驗與生產(chǎn)力水平是不相干的。
很多人很勤快,還沒(méi)有好好理解需求就開(kāi)始動(dòng)手寫(xiě)代碼。并且,迅速編寫(xiě)的代碼往往不能很好的適應其他人的代碼。而這一問(wèn)題往往只有在集成代碼的時(shí)候才能被發(fā)現,但是已經(jīng)晚了。優(yōu)秀的開(kāi)發(fā)人員很有耐心,他知道快速編碼的風(fēng)險。
差的開(kāi)發(fā)人員往往不愿意去改變自己寫(xiě)得不好的代碼。他們只會(huì )選擇增添更多的代碼來(lái)彌補不足,而不會(huì )重寫(xiě)不理想的代碼。更糟的是,他們往往會(huì )去責怪其他人有不良的代碼,而不愿意自我檢討。在他們手中,最終只會(huì )導致一個(gè)嚴重缺陷和不穩定的系統。
當然,好的開(kāi)發(fā)人員也會(huì )寫(xiě)出差的代碼,非最優(yōu)的代碼。所不同的是,他們愿意認識自己的不足,并且對于有問(wèn)題的部分:
當開(kāi)發(fā)人員生產(chǎn)并維護了非最優(yōu)代碼,隨著(zhù)時(shí)間的推移,那么修改這些代碼就會(huì )變得越來(lái)越難。這是因為你的同事需要在這些代碼接口上寫(xiě)代碼,然后再創(chuàng )建繁雜的接口等等使用這些非最優(yōu)代碼。并且隨著(zhù)代碼庫的發(fā)展,會(huì )有更多更多的代碼是依賴(lài)這些原始代碼編寫(xiě)出來(lái)的。故而,后面寫(xiě)的代碼再怎么好也幾乎增加不了代碼的穩定性,也不能對略有改動(dòng)時(shí)bug增殖的情況產(chǎn)生影響??傊?,開(kāi)發(fā)過(guò)程會(huì )變得越來(lái)越慢、越來(lái)越難。
所以,如果有什么疑問(wèn),那么不妨偷個(gè)懶,晚點(diǎn)再寫(xiě)代碼,須知,磨刀不誤砍柴工??!
聯(lián)系客服