編程之道(3)
發(fā)表時(shí)間:2024-06-20 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]第三篇設(shè)計(jì)編程大師如是說:“當(dāng)程序被測(cè)試時(shí),再修改設(shè)計(jì)方案就太遲了。”3.1曾經(jīng)有個(gè)人去參加一次電腦展示會(huì)。每天當(dāng)他進(jìn)展館時(shí),都對(duì)門衛(wèi)說:“我是一個(gè)大盜,我偷盜的本領(lǐng)是出了名的。事先警告你,這次展示會(huì)也在劫難逃。”這番話讓門衛(wèi)坐立不安,因?yàn)槔锩嬗袃r(jià)值婁百萬美元的電腦設(shè)備,所以他緊緊地盯住這個(gè)人。但...
第三篇設(shè)計(jì)編程大師如是說:
“當(dāng)程序被測(cè)試時(shí),再修改設(shè)計(jì)方案就太遲了。”
3.1
曾經(jīng)有個(gè)人去參加一次電腦展示會(huì)。每天當(dāng)他進(jìn)展館時(shí),都對(duì)門衛(wèi)說:“我是一個(gè)大盜,我偷盜的本領(lǐng)是出了名的。事先警告你,這次展示會(huì)也在劫難逃。”
這番話讓門衛(wèi)坐立不安,因?yàn)槔锩嬗袃r(jià)值婁百萬美元的電腦設(shè)備,所以他緊緊地盯住這個(gè)人。但這個(gè)人只是從一個(gè)展攤逛到另一個(gè)展攤,嘴里輕輕地哼著小曲。
當(dāng)這個(gè)人出門時(shí),門衛(wèi)把他拉到一邊,搜查他的衣服,但一無所獲。
第二天,這個(gè)人又來了,并對(duì)著門衛(wèi)囂張地嚷著:“我昨天滿載而歸,但今天的收獲會(huì)更大。”于是,門衛(wèi)盯他盯的更緊了,但仍一無所獲。
在展示會(huì)的最后一天,門衛(wèi)再也抑制不住自已的好奇心了。“大盜先生,”門衛(wèi)說,“我被你搞糊涂了,實(shí)在想不明白。請(qǐng)告訴我,你究竟在偷什么?”
這個(gè)人笑了。“我在偷想法”他說。
3.2曾經(jīng)有位編程大師,喜歡編寫非結(jié)構(gòu)化的程序。一位初學(xué)者試圖模仿他,也開始編寫非結(jié)構(gòu)化的程序。當(dāng)這位徒弟請(qǐng)師父評(píng)價(jià)他的進(jìn)展時(shí),師父批評(píng)了他的做法。他說:“對(duì)一位編程高手適合的,對(duì)初學(xué)者來說并不一定適合。在超越結(jié)構(gòu)化之前,你必須先領(lǐng)悟道。”
3.3
曾經(jīng)有們員被派到IBM的軍機(jī)大臣手下工作。軍機(jī)大臣問程序員:“設(shè)計(jì)一個(gè)財(cái)務(wù)軟件包,和設(shè)計(jì)一個(gè)操作系統(tǒng),哪一個(gè)更容易?”
“操作系統(tǒng)。”程序員回答說。
軍機(jī)大臣立刻發(fā)出一種不信任的驚嘆,“與一個(gè)復(fù)雜的操作系統(tǒng)相比,一個(gè)財(cái)務(wù)軟件包簡(jiǎn)直就是小巫見大巫。”他說。
“并非如此,”程序員說,“在設(shè)計(jì)一個(gè)財(cái)務(wù)軟件包時(shí),編程人員是作為一個(gè)中介者在觀念各異的人們之間起作用的:這個(gè)軟件必須如何操作,它的報(bào)表必須是什么形式,它必須如何與稅法一致,等等。相反,一個(gè)操作系統(tǒng)則不為其外觀所限制。當(dāng)設(shè)計(jì)一個(gè)操作系統(tǒng)時(shí),編程人員只要在機(jī)器與人的思維之間尋找一種最簡(jiǎn)單的和諧就可以了。這就是為什么操作系統(tǒng)更容易設(shè)計(jì)。”
軍機(jī)大臣點(diǎn)點(diǎn)頭,笑了。“說來也是,但要想檢測(cè)和糾正其中的錯(cuò)誤,哪個(gè)更容易呢?”
程序員沒有回答。
3.4
一位經(jīng)理到編程大師那里,交給他一份有關(guān)一個(gè)新應(yīng)用程序的需求說明。經(jīng)理問編程大師:“如果我分配五個(gè)程序員給你,你需要多久能設(shè)計(jì)好這個(gè)系統(tǒng)?”
“那將花費(fèi)一年的時(shí)間。”大師立刻回答。
“但我們馬上就需要這個(gè)系統(tǒng),甚至要求更快!如果我分配十個(gè)程序員給你,你需要多長(zhǎng)時(shí)間?”
大師皺了皺眉頭,“那樣的話,需要兩年。”
“如果我分配一百個(gè)程序員給你怎么樣?”
大師聳了聳肩膀,“那么這項(xiàng)設(shè)計(jì)將永遠(yuǎn)無法完成。”他說。
《待續(xù)》