我的程序員經(jīng)歷讓我明白了一些關(guān)于軟件開(kāi)發(fā)的事情,下面是一些在編程中可能會(huì)讓人感到詫異的事情: 1. 一個(gè)程序員用了大約只用了10%-20%的時(shí)間來(lái)編碼,而且大多數(shù)程序員,無(wú)論他的水平如何,其平均每天只有10-12行代碼最終會(huì)進(jìn)入最終的軟件產(chǎn)品中。這是因?yàn)椋瑑?yōu)秀的程序員會(huì)花費(fèi)90%的時(shí)間來(lái)思考、調(diào)查與研究最佳的設(shè)計(jì)。而糟糕的程序員則會(huì)花費(fèi)90%的時(shí)間來(lái)調(diào)試代碼,并隨意地改動(dòng)代碼并嘗試讓代碼工作起來(lái)。 “A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.” –Bill Gates “一個(gè)優(yōu)秀的車(chē)工其工資是一個(gè)普通車(chē)工的好幾倍,但是一個(gè)優(yōu)秀程序員寫(xiě)出來(lái)的代碼比一個(gè)普通程序員要值錢(qián)一萬(wàn)倍。”——比爾蓋茨 2. 一個(gè)好的程序員比一個(gè)普通的程序員多十倍的生產(chǎn)率,而一個(gè)優(yōu)秀的程序員的生產(chǎn)率則比普通程序員多20-100倍。這并非夸張,因?yàn)樽詮纳鲜兰o(jì)60年代的研究一直表明這是一個(gè)事實(shí)。一個(gè)糟糕的程序員并不只是沒(méi)有產(chǎn)出的——他們并不僅是完成不了工作,而且還會(huì)制造出大量的讓別人頭痛并要去解決的麻煩。 3. 優(yōu)秀的程序員花少量的時(shí)間寫(xiě)代碼——那些代碼都會(huì)出現(xiàn)在最終的產(chǎn)品中。那些花大量的時(shí)間寫(xiě)代碼的程序員其實(shí)很懶惰、很無(wú)知,或者很自大,以至于不能使用已經(jīng)存在了的解決方案來(lái)解決已有的問(wèn)題。優(yōu)秀的程序員精通于對(duì)通用模式的識(shí)別和重用,好的程序員并不害怕持續(xù)地重構(gòu)/重寫(xiě)自己的代碼,直到達(dá)到最理想的方案。糟糕的程序員的代碼基本上都缺少概念一致性,代碼冗長(zhǎng),缺少層次和模式,因此也就很難被重構(gòu),很多時(shí)候重寫(xiě)他們的代碼要比重構(gòu)他們的代碼要容易得多。 4. 軟件和其它一切事物一樣,都遵循著一致性規(guī)則。持續(xù)地更改只會(huì)讓軟件變成一潭爛泥,其破壞了原始設(shè)計(jì)的概念一致性。軟件產(chǎn)品變成泥沼是不可避免的事情,但是因?yàn)槌绦騿T不考慮軟件概念一致性,而導(dǎo)致軟件產(chǎn)品更為快速地成為泥沼,這種速度快得可能會(huì)在軟件產(chǎn)品還沒(méi)有完成時(shí),軟件產(chǎn)品已經(jīng)變得沒(méi)有價(jià)值。設(shè)計(jì)概念一致性的失敗通常都會(huì)導(dǎo)致軟件項(xiàng)目的失敗(而第二大導(dǎo)致軟件項(xiàng)目失敗的原因,則是發(fā)布的軟件并不是用戶想要的)。當(dāng)軟件變成爛泥的速度正在呈指數(shù)級(jí)下降,則太多的項(xiàng)目在被完結(jié)前都面臨著激增的時(shí)間和成本。 5. 一個(gè)“2004研究報(bào)告”指出,大多數(shù)的軟件項(xiàng)目 (51%) 都會(huì)在關(guān)鍵環(huán)節(jié)出問(wèn)題。而15%的項(xiàng)目則是完全失敗,當(dāng)然,這比1994年有了很大的進(jìn)步,當(dāng)時(shí)完全失敗的項(xiàng)目是31%。 6. 雖然,幾乎所有的軟件產(chǎn)品都有些開(kāi)發(fā)團(tuán)隊(duì),但其并不是民主的。通常,只有一個(gè)人負(fù)責(zé)設(shè)計(jì),而剩下的人去實(shí)現(xiàn)細(xì)節(jié)。 7. 編程是一個(gè)辛苦的工作。其實(shí)是一個(gè)劇烈的腦力勞動(dòng)。好的程序員24×7地在思考他們的工作,他們一般都在洗澡和夢(mèng)中編寫(xiě)軟件中最重要的代碼。因?yàn)樽钪匾墓ぷ髦荒茉阪I盤(pán)之外完成,軟件項(xiàng)目不可能因?yàn)榧影嗷蚴羌尤藖?lái)加快進(jìn)度。 作者:David Veksler |
我的經(jīng)歷: VB(坐標(biāo)系統(tǒng)): 高一: iy = 6500 - (iy - y0) / (y1 - y0) * 6500 'picture.height=6500 Picture1.PSet (ix, iy), vbBlack 高二: Picture1.Scale(y1,x0)-(y0,x1) Picture1.PSet (ix, iy), vbBlack 高三: set_point(ix,iy,x1,y1,x0,y0,flag) '******** Private function set_point(ix ,iy ,x1,y1,x0,y0,flag) if flag then Picture1.Scale(y1,x0)-(y0,x1) Picture1.PSet (ix, iy), vbBlack End function |
醍醐灌頂啊! |