內容簡介:邁向大師之路
“我生命中最最要的書之一。”
—OBIE FERNANDEZ,《The Rails Way》作者
“20年前,第一版的《The Pragmatic Programmer》完全改變了我的職業軌跡。這個新版本會對您產生一樣的效用。”
—MIKE COHN,《Succeeding with Agile》《Agile Estimating and Planning》《User Stories Applied》等書籍作者
“...書中充滿了實用的建議,有技術的,也有專業的,這些建議將在未來幾年提升您和您的專案。”
—ANDREA GOULET, CEO, Corgibytes; Founder, LegacyCode.Rocks
“...神來兩筆是有可能的,這本書就是明證。”
—VM (VICKY) BRASSEUR, Director of Open Source Strategy, Juniper Networks
《The Pragmatic Programmer》是少數隨著歲月增長值得一讀再讀的經典書籍,無論您是新手還是實戰豐富的從業者,每次閱讀這本書,您都會得到新的領悟。
Dave Thomas和Andy Hunt於1999年撰寫了這本深具影響力的書,目的是為了幫他們的客戶建立更好的軟體,以及重新發現寫程式的樂趣。這些經驗幫助了一整世代的程式設計師檢視軟體開發的本質,不受限於任何特定語言、framework和方法論,其中的實用主義哲學催生了幾百本書、視訊教學、有聲讀物以及數千個職涯與成功故事。
二十年後的現今,本書再次檢視現代程式設計師的真義。主題範圍從個人責任與職涯探索,到能保持程式碼彈性與易於使用重用的架構技術。
閱讀本書,你將會學到:
‧對抗「軟體凋零」(software rot)
‧持續學習
‧避免重複知識的陷阱
‧寫出有彈性、動態和適應力強的程式碼
‧善用基本工具的威力
‧避免靠巧合寫程式
‧學習什麼是真正的需求
‧防範安全漏洞
‧解決並行程式碼真正的問題
‧建立由務實程式設計師組成的團隊
‧你的工作成果與職涯責任
‧進行嚴格、有效的測試,包括以屬性為基礎的測試
‧實作實用的新手工具集
‧取悅您的使用者
本書以一系列各自獨立的章節寫成,書中充滿了經驗和新奇的軼事、深思熟慮的例子和有趣的類比,這本書展示了軟體開發不同面向的最佳方法和主要陷阱。無論你是新手,有經驗的程式設計師,或是軟體專案經理,請每天使用您從本書所學到的,您會很快看到個人生產力、準確性和工作滿意度的提升。除了技能學習,也培養出習慣和態度,這些都是奠定職業生涯成長的基石。
您將會成為一位成功的程式設計師。
目錄
章節說明:Chapter 1 務實的哲學
1 這是您的人生
2 貓吃了我的原始碼
3 軟體亂度
4 石頭湯與煮青蛙
5 夠好的軟體
6 您的知識資產
7 溝通!
Chapter 2 務實的方法
8 優秀設計的精髓
9 DRY—重複的罪惡
10 正交性
11 可逆性
12 曳光彈
13 原型和便利貼
14 領域語言
15 評估
Chapter 3 基本工具
16 純文字的威力
17 shell
18 功能強大的編輯器
19 版本控制
20 除錯
21 操縱文字
22 工程日誌
Chapter 4 務實的偏執
23 合約式設計
24 死程式不說謊
25 assertion式程式設計
26 如何平衡資源
27 不要跑得比您的車頭燈還快
Chapter 5 彎曲或弄壞
28 去耦合
29 行走江湖
30 轉換式程式設計
31 繼承稅
32 設定
Chapter 6 並行
33 打破時間耦合
34 不要共用狀態
35 參與者與程序
36 黑板
Chapter 7 當您寫程式時
37 聆聽您的蜥蜴腦
38 靠巧合寫程式
39 演算法速度
40 重構
41 測試對程式碼的意義
42 以屬性為基礎的測試
43 待在安全的地方
44 命名
Chapter 8 專案啟動前
45 需求坑
46 解開不可能的謎題
47 一起工作
48 敏捷的本質
Chapter 9 務實的專案
49 務實的團隊
50 不要切開椰子
51 務實的上手工具
52 取悅您的客戶
53 傲慢與偏見
後記
Appendix A 參考書目
Appendix B 練習題參考解答
Appendix C 提示卡
索引
章節說明:Chapter 1 務實的哲學
1 這是您的人生
2 貓吃了我的原始碼
3 軟體亂度
4 石頭湯與煮青蛙
5 夠好的軟體
6 您的知識資產
7 溝通!
Chapter 2 務實的方法
8 優秀設計的精髓
9 DRY—重複的罪惡
10 正交性
11 可逆性
12 曳光彈
13 原型和便利貼
14 領域語言
15 評估
Chapter 3 基本工具
16 純文字的威力
17 shell
18 功能強大的編輯器
19 版本控制
20 除錯
21 操縱文字
22 工程日誌
Chapter 4 務實的偏執
23 合約式設計
24 死程式不說謊
25 assertion式程式設計
26 如何平衡資源
27 不要跑得比您的車頭燈還快
Chapter 5 彎曲或弄壞...