序言
本書將會幫助你成為一個
更好的程序員。
不管你是個人開發(fā)者,還是大項目團(tuán)隊中的一員,或者是同時為很多客戶共事的顧問。本書將會幫助你,作為一個人體,更好地完成工作。本書不是理論書籍--我們專注于實(shí)際問題,利用你的經(jīng)驗(yàn)作出更有見識的決定。pragmatic詞來自拉丁語的pragmaticus--“商業(yè)技巧”--后者又源于希臘(...),意思是“去做。”這是一本關(guān)于“去做(doing)”的書。
編程是一門手藝。用最簡單的話來說就是讓計算機(jī)做你(或者用戶)想讓它做的事情。作為一個程序員,你既是聆聽者,又是顧問,既是翻譯員,又是專制者。你嘗試著捕捉這些難以捉摸的需求,用一種方法來描述它們,讓一臺純粹的機(jī)器能夠合理的處理它們。你嘗試著記錄你的工作,以使他人能夠理解它;你還嘗試著策劃你的工作,以使他人能夠在上面構(gòu)建。另外,你嘗試著在項目時鐘的冷酷地催逼下完成這些工作。你每天都在創(chuàng)造小奇跡。
這是一個困難的工作。
很多人聲稱要給你提供幫助。工具供應(yīng)商吹捧他們的產(chǎn)品所展現(xiàn)出來的奇跡。方法學(xué)大師承諾他們的技術(shù)保證有效。每個人都聲稱他們的編程語言是最好的,而每個操作系統(tǒng)都是這些問題的可信賴的解答。
當(dāng)然,這些都不是真的。沒有這么簡單的答案。不存最好的解決方案,無論是工具,語言,或者一個操作系統(tǒng)。而存在的只是在某些特定的環(huán)境下更為合適的系統(tǒng)。
這就是務(wù)實(shí)的開始。你不應(yīng)該局限于任何特定的技術(shù),而是應(yīng)該擁有足夠?qū)拸V的背景和經(jīng)驗(yàn)基礎(chǔ)來為特定的情況選擇一種好的解決方案。你的背景源自于對計算機(jī)科學(xué)基本原則的理解,你的經(jīng)驗(yàn)來自于廣泛的實(shí)際項目。理論與實(shí)踐的結(jié)合使你變得強(qiáng)大。
你調(diào)整方法來適應(yīng)當(dāng)前的情形與環(huán)境。你判斷這些所有因素中相對重要的因素來影響項目,使用你的經(jīng)驗(yàn)來制作適合的解決方案。你隨著工作的進(jìn)展持續(xù)著這些活動。
務(wù)實(shí)的程序員不僅要完成工作,而且要做的漂亮。