|
當(dāng)程序員的經(jīng)歷讓我知道了一些關(guān)于軟件編程的事情。下面的這些事情可能會(huì)讓朋友們對(duì)軟件開(kāi)發(fā)感到驚訝:
一個(gè)程序員用在寫程序上的時(shí)間大概占他的工作時(shí)間的10-20%,大部分的程序員每天大約能寫出10-12行的能進(jìn)入最終的產(chǎn)品的代碼——不管他的技術(shù)水平有多高。好的程序員花去90%的時(shí)間在思考、研究和實(shí)驗(yàn),來(lái)找出最優(yōu)方案。差的程序員花去90%的時(shí)間在調(diào)試問(wèn)題程序、盲目的修改程序,期望某種寫法能可行。
”一個(gè)卓越的車床工可以要求比一個(gè)一般的車床工多拿數(shù)倍高的工資,但一個(gè)卓越的軟件寫手的價(jià)值會(huì)10000倍于一個(gè)普通的寫手。“——比爾蓋茨
一個(gè)好的程序員的效率會(huì)是一個(gè)普通的程序員的十倍之上。一個(gè)偉大的程序員的效率會(huì)是一個(gè)普通程序員的20-100倍。這不是夸張—— 1960年以來(lái)的無(wú)數(shù)研究都一致的證明了這一點(diǎn)。一個(gè)差的程序員不僅僅是沒(méi)效率——他不僅不能完成任務(wù),寫出的大量代碼也讓別人頭痛的沒(méi)法維護(hù)。
偉大的程序員只花很少的時(shí)間去寫代碼——至少指那些最終形成產(chǎn)品的代碼。那些要花掉大量時(shí)間寫代碼的程序員都是太懶惰,太自大,太傲慢,不屑用現(xiàn)有的方案去解決老問(wèn)題。偉大的程序員的精明之處在于懂得欣賞和重復(fù)利用通用模式。好的程序員并不害怕經(jīng)常的重構(gòu)(重寫)他們的代碼以求達(dá)到最好效果。差的程序員寫的代碼缺乏整體概念,冗余,沒(méi)有層次,沒(méi)有模式,導(dǎo)致很難重構(gòu)。把這些代碼扔掉重做也比修改起來(lái)容易。
軟件遵循熵的定律,跟其它所有東西一樣。持續(xù)的變更會(huì)導(dǎo)致軟件腐爛,腐蝕掉對(duì)原始設(shè)計(jì)的完整性概念。軟件的腐爛是不可避免的,但程序員在開(kāi)發(fā)軟件時(shí)沒(méi)有考慮完整性,將會(huì)使軟件腐爛的如此之快,以至于軟件在還沒(méi)有完成之前就已經(jīng)毫無(wú)價(jià)值了。軟件完整性上的熵變可能是軟件項(xiàng)目失敗最常見(jiàn)的原因。(第二大常見(jiàn)失敗原因是做出的不是客戶想要的東西。)軟件腐爛使開(kāi)發(fā)進(jìn)度呈指數(shù)級(jí)速度放緩,大量的軟件在失敗之前都是面對(duì)著突增的時(shí)間要求和資金預(yù)算。
2004年的一項(xiàng)研究表明大多數(shù)的軟件項(xiàng)目(51%)會(huì)在關(guān)鍵功能上失敗,其中15%是完全的失敗。這比1994年前有很大的改進(jìn),當(dāng)時(shí)是31%。
盡管大多數(shù)軟件都是團(tuán)體開(kāi)發(fā)的,但這并不是一項(xiàng)民主的活動(dòng)。通常,一個(gè)人負(fù)責(zé)設(shè)計(jì),其他人負(fù)責(zé)實(shí)現(xiàn)細(xì)節(jié)。
編程是個(gè)很難的工作。是一種劇烈的腦力勞動(dòng)。好的程序員7×24小時(shí)的思考他們的工作。他們最重要的程序都是在淋浴時(shí)、睡夢(mèng)中寫成的。因?yàn)檫@最重要的工作都是在遠(yuǎn)離鍵盤的情況下完成的,所以軟件工程不可能通過(guò)增加在辦公室的工作時(shí)間或增加人手來(lái)加快進(jìn)度。
【英文出處】:Some lesser-known truths about programming
it知識(shí)庫(kù):鮮為人知的編程真相,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。