過去幾十年的大型系統(tǒng)開發(fā)過程,看似都陷入了一個(gè)焦油坑,并且在其中拼命掙扎。表面上看起來,沒有任何一個(gè)單獨(dú)的問題解決不了,可是當(dāng)他們相互糾纏在一起的時(shí)候,麻煩程度往往令人難以想象。
程序構(gòu)件需要產(chǎn)品化(通用、測試、文檔),同時(shí)程序構(gòu)件需要被整合(接口、系統(tǒng)集成),之后才能形成編程系統(tǒng)產(chǎn)品(Programming Systems Product)。根據(jù)經(jīng)驗(yàn),編程系統(tǒng)產(chǎn)品的成本是程序成本的9倍,然而這是大多數(shù)系統(tǒng)開發(fā)的目標(biāo)。
編程行業(yè)樂趣在于:
- 創(chuàng)造新事物帶來的純粹快樂
- 自己的創(chuàng)造物能夠被別人需要的快樂
- 編寫程序過程本身的快樂
- 任務(wù)不重復(fù),持續(xù)學(xué)習(xí)新知識的快樂
- 成為程序員就可以輕松的嘗試上面的快樂,比起當(dāng)一名詩人要簡單的多
然而,這個(gè)過程并不全是快樂的,編程的苦惱在于:
- 程序相對于人類思維來說是要追求完美的,即使錯(cuò)了一個(gè)字符也不能正常
- 工作目標(biāo)往往由他人來設(shè)定
- 為了依靠其他人的程序,往往要委曲求全
- 尋找BUG是重復(fù)、枯燥、艱苦的,而且尋找最后一個(gè)錯(cuò)誤要比第一個(gè)花費(fèi)更多時(shí)間
- 在投入了大量辛苦的勞動之后,你的產(chǎn)品可能已經(jīng)不再被需要了
- 我們所面臨的挑戰(zhàn)和任務(wù)是在實(shí)際的進(jìn)度和有效的資源范圍內(nèi),尋找解決實(shí)際問題的切實(shí)可行方案。
以上內(nèi)容就是原版《人月神話》第一章——焦油坑,所講述的內(nèi)容。
作者通過他的經(jīng)驗(yàn),試圖告訴我們,大型編程項(xiàng)目的成本是幾何式增長的,如果不正確處理問題,我們很可能會陷入一個(gè)焦油坑中。之后又分析了編程行業(yè)的樂趣和苦惱,在我看來分析的很正確。
總的來說,作為第一章,作者從行業(yè)和個(gè)人兩個(gè)角度,拋出了幾個(gè)十分重要的問題。同時(shí)也引出了本書的主旨,即解決這些問題,作者試圖先帶領(lǐng)讀者了解問題本質(zhì),然后在思考解決問題的方案。
相信作為程序員,面對這些問題或多或少都能引起共鳴。其實(shí),本書首次發(fā)行于1975年,早在如此多年之前,這些問題就已經(jīng)被人深入的討論過。總覺得,今天的我們還在因?yàn)檫@些問題而困擾,多少是會感到有點(diǎn)羞愧的呢。
我們大談的OOP編程和MVC思想等內(nèi)容的同時(shí),是否真的能解決我們所遇到的問題,還是我們可能一開始從根本上就做錯(cuò)了什么?我將持續(xù)為大家講述這本書后續(xù)的內(nèi)容。