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