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