出版時(shí)間:2011-1 出版社:電子工業(yè)出版社 作者:Andrew Hunt,David Thomas 頁(yè)數(shù):272 譯者:馬維達(dá)
Tag標(biāo)簽:無(wú)
前言
作為評(píng)閱者,我得到了提早閱讀你拿在手上的這本書(shū)的機(jī)會(huì)。即使當(dāng)時(shí)還只是草稿,它就已是一本很好的書(shū)。Dave Thomas和Andy Hunt有話要說(shuō),并且知道怎樣去說(shuō)。我見(jiàn)過(guò)他們所做的事情,知道他們所說(shuō)的將是有效的。我請(qǐng)求讓我來(lái)撰寫(xiě)這篇前言,以便有機(jī)會(huì)向你解釋其中的原因。簡(jiǎn)而言之,本書(shū)將告訴你怎樣以一種你能夠遵循的方式去編程。也許你不認(rèn)為這是一件困難的事情,但事情卻并非如此。為什么?原因之一是,并非所有的編程書(shū)籍都是由程序員撰寫(xiě)的。其中有許多是由語(yǔ)言設(shè)計(jì)者、或是與他們有合作關(guān)系的報(bào)刊記者編撰而成,意在推銷他們的作品。那些書(shū)告訴你怎樣通過(guò)某種編程語(yǔ)言進(jìn)行表達(dá)——這當(dāng)然很重要,但卻只是程序員所做的事情的一小部分。除了通過(guò)編程語(yǔ)言進(jìn)行表達(dá),程序員還要做些什么?嗯,這是一個(gè)更深入的問(wèn)題。大多數(shù)程序員在解釋他們所做的事情這個(gè)問(wèn)題上都會(huì)有困難。編程是一項(xiàng)充滿了各種細(xì)節(jié)的工作,追蹤這些細(xì)節(jié)需要專注。時(shí)間流逝、代碼出現(xiàn),你查看它們,那里全是些語(yǔ)句。如果你不仔細(xì)思考,你也許會(huì)以為編程不過(guò)就是敲入某種編程語(yǔ)言的語(yǔ)句。你當(dāng)然錯(cuò)了,但找遍書(shū)店的編程專柜,你卻還是講不出所以然。在《程序員修煉之道》一書(shū)中,Dave和Andy將告訴我們?cè)鯓右砸环N我們能夠遵循的方式編程。他們何以能這樣聰明?他們不也是和其他程序員一樣,專注于各種細(xì)節(jié)而已嗎?答案是他們?cè)谧瞿臣虑闀r(shí),會(huì)把注意力投注在他們?cè)谧龅氖虑樯稀缓笏麄儠?huì)試著把它做得更好。設(shè)想你在參加一個(gè)會(huì)議?;蛟S你在想,這個(gè)會(huì)議沒(méi)完沒(méi)了,你還不如去寫(xiě)程序。而Dave和Andy會(huì)想,他們?yōu)槭裁丛陂_(kāi)會(huì),他們想知道是否可以通過(guò)另外的方式取代會(huì)議,并決定是否可使某樣事情自動(dòng)化,以使開(kāi)會(huì)的工作推后。然后他們就會(huì)這樣去做。這就是Dave和Andy思考的方式。開(kāi)會(huì)并非是某種使他們遠(yuǎn)離編程的事情。開(kāi)會(huì)就是編程,并且是能夠加以改善的編程。我之所以知道他們以這樣的方式思考,是因?yàn)檫@是書(shū)中的第二條提示:思考你的工作。那么再設(shè)想一下,他們這樣思考了幾年。很快他們就會(huì)擁有一堆解決方案?,F(xiàn)在設(shè)想他們?cè)诠ぷ髦惺褂眠@些解決方案,又是幾年;他們還放棄了其中太過(guò)困難、或者不能總是產(chǎn)生結(jié)果的解決方案。噢,這樣的途徑幾乎定義了“pragmatic”(注重實(shí)效)的含義?,F(xiàn)在設(shè)想他們又用了一兩年來(lái)寫(xiě)下他們的解決方案。你也許會(huì)想,這些信息可真是金礦。你想對(duì)了。兩位作者告訴我們他們是怎樣編程的,并且是以一種我們能夠遵循的方式來(lái)告訴我們的。但這一陳述的后半部分的含義也許要多于你所想到的。讓我來(lái)解釋一下。
內(nèi)容概要
《程序員修煉之道》由一系列獨(dú)立的部分組成,涵蓋的主題從個(gè)人責(zé)任、職業(yè)發(fā)展,直到用于使代碼保持靈活、并且易于改編和復(fù)用的各種架構(gòu)技術(shù),利用許多富有娛樂(lè)性的奇聞?shì)W事、有思想性的例子及有趣的類比,全面闡釋了軟件開(kāi)發(fā)的許多不同方面的最佳實(shí)踐和重大陷阱。無(wú)論你是初學(xué)者,是有經(jīng)驗(yàn)的程序員,還是軟件項(xiàng)目經(jīng)理,本書(shū)都適合你閱讀。
作者簡(jiǎn)介
作者:(美國(guó))亨特(Andrew Hunt) (美國(guó))托馬斯(David Thomas) 譯者:馬維達(dá)亨特(Andy Hunt)是一位熱切的木匠和音樂(lè)家,但奇怪的是,人們更需要作為顧問(wèn)的他。他的工作領(lǐng)域包括電信、銀行、金融服務(wù)、公共服務(wù),以及一些更奇特的領(lǐng)域,比如醫(yī)學(xué)成像、圖形藝術(shù)、Internet服務(wù)。Andy的專長(zhǎng)是把經(jīng)過(guò)驗(yàn)證的技術(shù)與先進(jìn)的技術(shù)混合在一起,創(chuàng)建各種新穎的——但也是實(shí)用的——解決方案。Andy在北卡羅萊納州的羅利市擁有自己的顧問(wèn)公司。托馬斯(Dave Thomas),喜歡駕駛單引擎飛機(jī)飛行,并通過(guò)這樣的方式為他的習(xí)慣付賬:為各種難題尋找優(yōu)雅的解決方案,提供諸多領(lǐng)域里的咨詢服務(wù)——航空、銀行、金融服務(wù)、電信、交通運(yùn)輸及Internet。 在于1994年移居美國(guó)前,Dave在英國(guó)創(chuàng)立了一家通過(guò)ISO9001認(rèn)證的軟件公司,為世界各地的客戶開(kāi)發(fā)成熟、定制的軟件項(xiàng)目。Dave現(xiàn)在是一位獨(dú)立顧問(wèn),居住在德克薩斯州的達(dá)拉斯。 以The Pragmatic Programmer,L.L.C的名義,Dave與Andy正在協(xié)同工作,把合起來(lái)超過(guò)四十年的專業(yè)經(jīng)驗(yàn)帶給美國(guó)各地的客戶。譯者簡(jiǎn)介:馬維達(dá),《C++網(wǎng)絡(luò)編程(卷2)》與《ACE自適配通信環(huán)境技術(shù)文檔》的譯者,技術(shù)興趣為C++網(wǎng)絡(luò)編程(ACE)與分布式對(duì)象計(jì)算(Internet Communications Engine)
書(shū)籍目錄
前言
序
第1章 注重實(shí)效的哲學(xué)
1 我的源碼讓貓給吃了
2 軟件的熵
3 石頭湯與煮青蛙
4 足夠好的軟件
5 你的知識(shí)資產(chǎn)
6 交流
第2章 注重實(shí)效的途徑
7 重復(fù)的危害
8 正交性
9 可撤消性
10 曳光彈
11 原型與便箋
12 領(lǐng)域語(yǔ)言
13 估算
第3章 基本工具
14 純文本的威力
15 shell游戲
16 強(qiáng)力編輯
17 源碼控制
18 調(diào)試
19 文本操縱
20 代碼生成器
第4章 注重實(shí)效的偏執(zhí)
21 按合約設(shè)計(jì)
22 死程序不說(shuō)謊
23 斷言式編程
24 何時(shí)使用異常
25 怎樣配平資源
第5章 彎曲,或折斷
26 解耦與得墨忒耳法則
27 元程序設(shè)計(jì)
28 時(shí)間耦合
29 它只是視圖
30 黑板
第6章 當(dāng)你編碼時(shí)
31 靠巧合編程
32 算法速率
33 重構(gòu)
34 易于測(cè)試的代碼
35 邪惡的向?qū)?br />第7章 在項(xiàng)目開(kāi)始之前
36 需求之坑
37 解開(kāi)不可能解開(kāi)的謎題
38 等你準(zhǔn)備好
39 規(guī)范陷阱
40 圓圈與箭頭
第8章 注重實(shí)效的項(xiàng)目
41 注重實(shí)效的團(tuán)隊(duì)
42 無(wú)處不在的自動(dòng)化
43 無(wú)情的測(cè)試
44 全都是寫(xiě)
45 極大的期望
46 傲慢與偏見(jiàn)
附錄A 資源
專業(yè)協(xié)會(huì)
建設(shè)藏書(shū)庫(kù)
Internet資源
參考文獻(xiàn)
附錄B 練習(xí)解答
索引
注重實(shí)效的程序員之快速參考指南
章節(jié)摘錄
依據(jù)你的職業(yè)發(fā)展、你的項(xiàng)目和你每天的工作,為你自己和你的行為負(fù)責(zé)這樣一種觀念,是注重實(shí)效的哲學(xué)的一塊基石。注重實(shí)效的程序員對(duì)他或她自己的職業(yè)生涯負(fù)責(zé),并且不害怕承認(rèn)無(wú)知或錯(cuò)誤。這肯定并非是編程最令人愉悅的方面,但它肯定會(huì)發(fā)生——即使是在最好的項(xiàng)目中。盡管有徹底的測(cè)試、良好的文檔以及足夠的自動(dòng)化,事情還是會(huì)出錯(cuò)。交付晚了,出現(xiàn)了未曾預(yù)見(jiàn)到的技術(shù)問(wèn)題。發(fā)生這樣的事情,我們要設(shè)法盡可能職業(yè)地處理它們。這意味著誠(chéng)實(shí)和坦率。我們可以為我們的能力自豪,但對(duì)于我們的缺點(diǎn)——還有我們的無(wú)知和我們的錯(cuò)誤——我們必須誠(chéng)實(shí)。責(zé)任是你主動(dòng)擔(dān)負(fù)的東西。你承諾確保某件事情正確完成,但你不一定能直接控制事情的每一個(gè)方面。除了盡你所能以外,你必須分析風(fēng)險(xiǎn)是否超出了你的控制。對(duì)于不可能做到的事情或是風(fēng)險(xiǎn)太大的事情,你有權(quán)不去為之負(fù)責(zé)。你必須基于你自己的道德準(zhǔn)則和判斷來(lái)做出決定。如果你確實(shí)同意要為某個(gè)結(jié)果負(fù)責(zé),你就應(yīng)切實(shí)負(fù)起責(zé)任。當(dāng)你犯錯(cuò)誤(就如同我們所有人都會(huì)犯錯(cuò)誤一樣)、或是判斷失誤時(shí),誠(chéng)實(shí)地承認(rèn)它,并設(shè)法給出各種選擇。不要責(zé)備別人或別的東西,或是拼湊借口。不要把所有問(wèn)題都?xì)w咎于供應(yīng)商、編程語(yǔ)言、管理部門、或是你的同事。也許他(它)們?nèi)w或是某幾方在其中扮演了某種角色,但你可以選擇提供解決方案,而非尋找借口。如果存在供應(yīng)商不能按時(shí)供貨的風(fēng)險(xiǎn),你應(yīng)該預(yù)先制定一份應(yīng)急計(jì)劃。如果磁盤(pán)垮了——帶走了你的所有源碼一而你沒(méi)有做備份,那是你的錯(cuò)。告訴你的老板“我的源碼讓貓給吃了”也無(wú)法改變這一點(diǎn)。
媒體關(guān)注與評(píng)論
“如果我在管理一個(gè)項(xiàng)目,這本書(shū)的作者就是我想要的人……如果辦不到,我就會(huì)要讀過(guò)他們的書(shū)的人?!薄 猈ard Cunningham
編輯推薦
《程序員修煉之道:從小工到專家》:傳承大師智慧 領(lǐng)悟技術(shù)本真經(jīng)典名著 翻譯良品 典藏不二之選
名人推薦
領(lǐng)悟程序員的哲學(xué)在大學(xué)的時(shí)候,編程是我的興趣,也是當(dāng)時(shí)我給自己定位的職業(yè)方向。當(dāng)我在圖書(shū)館看到這本《程序員修煉之道》的時(shí)候,直覺(jué)告訴我應(yīng)該看看這本書(shū),或許對(duì)我的成長(zhǎng)有幫助。讀完之后更加肯定了自己的直覺(jué)是對(duì)的。當(dāng)時(shí)我雖然沒(méi)有實(shí)際項(xiàng)目的開(kāi)發(fā)經(jīng)驗(yàn),不能一時(shí)領(lǐng)悟其意,但我明白,這本書(shū)中總結(jié)的原則和方法對(duì)我來(lái)說(shuō)是極為寶貴的,于是買了一本放在床頭。參加工作后,隨著編程經(jīng)驗(yàn)的積累,我越來(lái)越能體會(huì)到這本書(shū)中的觀點(diǎn)。每次重讀書(shū)中的章節(jié),我都會(huì)有新的收獲;再結(jié)合自己的每次經(jīng)歷,都能與之共鳴——這是對(duì)我影響最深的一本書(shū),也是我向朋友和同事推薦次數(shù)最多的一本書(shū)。有趣的是,書(shū)前Kevin Ruland的評(píng)論說(shuō):這是我唯一不會(huì)出借的一本書(shū)。究竟是一本什么樣的書(shū)會(huì)讓大師如此愛(ài)不釋手?這本書(shū)所涉及的內(nèi)容很廣,涵蓋了程序員成長(zhǎng)過(guò)程中和軟件開(kāi)發(fā)過(guò)程中要注意的地方。從程序員的個(gè)體哲學(xué)到編碼過(guò)程中的各個(gè)環(huán)節(jié),再到團(tuán)隊(duì)的項(xiàng)目管理;從程序員要如何擴(kuò)充知識(shí),如何思考問(wèn)題,如何利用有效的工具打造個(gè)人的工作環(huán)境,到項(xiàng)目啟動(dòng)之前如何建立一些基本準(zhǔn)則,如何分析、設(shè)計(jì)、編寫(xiě)、測(cè)試、重構(gòu),如何實(shí)現(xiàn)自動(dòng)化,甚至是項(xiàng)目團(tuán)隊(duì)中提高實(shí)效的原則。書(shū)中的內(nèi)容全都來(lái)自經(jīng)驗(yàn)的總結(jié),倡導(dǎo)編程中正確的觀念和良好的習(xí)慣,而這正是優(yōu)秀的程序員必須擁有的良好素質(zhì)。書(shū)中講述的原則源于實(shí)踐,高于實(shí)踐,它們蘊(yùn)涵著前輩們的智慧。隨著知識(shí)的擴(kuò)展、編程體驗(yàn)的增加,對(duì)這本書(shū)中的內(nèi)容的理解也會(huì)愈加深刻。反過(guò)來(lái),對(duì)前輩菁華的吸收,有助于我們提高編程水平,開(kāi)發(fā)出更好的產(chǎn)品。我深信這不是一本只要讀一遍的書(shū)。這些原則看似簡(jiǎn)單,但細(xì)細(xì)品味一番,卻是大哲大道,環(huán)環(huán)相扣,要理解透徹并不容易。例如,提示44告訴我們“不要靠巧合編程”,這道理看起來(lái)好像很簡(jiǎn)單,但我發(fā)現(xiàn)實(shí)際工作中還是很容易就犯這個(gè)錯(cuò)的。細(xì)想一下Bug列表中的問(wèn)題,其中大多數(shù)問(wèn)題不正是由于作了不正確的假設(shè),或者是想當(dāng)然造成的嗎?要是一開(kāi)始就有了深思熟慮,經(jīng)過(guò)了合理的設(shè)計(jì),完整有效地進(jìn)行了測(cè)試,應(yīng)該大部分都可以避免吧。而思考、設(shè)計(jì)、測(cè)試又緊扣書(shū)中其他章節(jié)。曾經(jīng)和朋友討論關(guān)于員工培訓(xùn)的事。如果給程序員做培訓(xùn),我首選的材料就是這本《程序員修煉之道》。?LAMP程序員 趙鐘秋(belltoy)http://blog.belltoy.net/
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版