1. 程式人生 > >程式設計師修煉之道——從小工到專家

程式設計師修煉之道——從小工到專家

網站

更多書籍點選進入>> CiCi島

下載

電子版僅供預覽及學習交流使用,下載後請24小時內刪除,支援正版,喜歡的請購買正版書籍

封頁

封頁

編輯推薦

“如果我有一個超級重要的軟體專案,這本書的作者就是我想*先招募的人。如果辦不到,也必須招募讀過他們書的人。” ◎ 與軟體腐爛做鬥爭 ◎ 避開重複知識的陷阱 ◎ 編寫靈活、動態、可適應的程式碼 ◎ 防止靠巧合程式設計 ◎ 通過合約、斷言及異常使你的程式碼“防彈” ◎ 捕捉真正的需求 ◎ 無情而有效的測試 ◎ 讓你的使用者滿意 ◎ 建立注重實效程式設計師的團隊 ◎ 通過自動化使你的開發更嚴謹

內容簡介

《程式設計師修煉之道》由一系列獨立的部分組成,涵蓋的主題從個人責任、職業發展,直到用於使程式碼保持靈活、並且易於改編和複用的各種架構技術,利用許多富有娛樂性的奇聞軼事、有思想性的例子及有趣的類比,全面闡釋了軟體開發的許多不同方面的*實踐和重大陷阱。無論你是初學者,是有經驗的程式設計師,還是軟體專案經理,這本《程式設計師修煉之道》都適合你閱讀。

作者簡介

亨特(Andy Hunt),是一位熱切的木匠和音樂家,但奇怪的是,人們更需要作為顧問的他。他的工作領域包括電信、銀行、金融服務、公共服務,以及一些更奇特的領域,比如醫學成像、圖形藝術、Internet服務。   Andy的專長是把經過驗證的技術與先進的技術混合在一起,建立各種新穎的——但也是實用的——解決方案。Andy在北卡羅萊納州的羅利市擁有自己的顧問公司。 托馬斯(Dave Thomas),喜歡駕駛單引擎飛機飛行,並通過這樣的方式為他的習慣付賬:為各種難題尋找優雅的解決方案,提供諸多領域裡的諮詢服務——航空、銀行、金融服務、電信、交通運輸及Internet。在於1994年移居美國前,Dave在英國創立了一家通過ISO9001認證的軟體公司,為世界各地的客戶開發成熟、定製的軟體專案。Dave現在是一位獨立顧問,居住在德克薩斯州的達拉斯。   以ThePragmaticProgrammer,L.L.C的名義,Dave與Andy正在協同工作,把合起來超過四十年的專業經驗帶給美國各地的客戶。 馬維達,《C 網路程式設計(卷2)》與《ACE自適配通訊環境技術文件》的譯者,技術興趣為C 網路程式設計(ACE)與分散式物件計算(InternetCommunicationsEngine)。

目 錄

前言


第1章 注重實效的哲學
1 我的原始碼讓貓給吃了
2 軟體的熵
3 石頭湯與煮青蛙
4 足夠好的軟體
5 你的知識資產
6 交流

第2章 注重實效的途徑
7 重複的危害
8 正交性
9 可撤消性
10 曳光彈
11 原型與便箋
12 領域語言
13 估算

第3章 基本工具
14 純文字的威力
15 shell遊戲
16 強力編輯
17 原始碼控制
18 除錯
19 文字操縱
20 程式碼生成器

第4章 注重實效的偏執
21 按合約設計
22 死程式不說謊
23 斷言式程式設計
24 何時使用異常
25 怎樣配平資源

第5章 彎曲,或折斷
26 解耦與得墨忒耳法則
27 元程式設計
28 時間耦合
29 它只是檢視
30 黑板

第6章 當你編碼時
31 靠巧合程式設計
32 演算法速率
33 重構
34 易於測試的程式碼
35 邪惡的嚮導

第7章 在專案開始之前
36 需求之坑
37 解開不可能解開的謎題
38 等你準備好
39 規範陷阱
40 圓圈與箭頭

第8章 注重實效的專案
41 注重實效的團隊
42 無處不在的自動化
43 無情的測試
44 全都是寫
45 極大的期望
46 傲慢與偏見

附錄A 資源
專業協會
建設藏書庫
Internet資源
參考文獻
附錄B 練習解答
索引
注重實效的程式設計師之快速參考指南

前 言

  作為評閱者,我得到了提早閱讀你拿在手上的這本書的機會。即使當時還只是草稿,它就已是一本很好的書。DaveThomas和AndyHunt有話要說,並且知道怎樣去說。我見過他們所做的事情,知道他們所說的將是有效的。我請求讓我來撰寫這篇前言,以便有機會向你解釋其中的原因。
  簡而言之,本書將告訴你怎樣以一種你能夠遵循的方式去程式設計。也許你不認為這是一件困難的事情,但事情卻並非如此。為什麼?原因之一是,並非所有的程式設計書籍都是由程式設計師撰寫的。其中有許多是由語言設計者、或是與他們有合作關係的報刊記者編撰而成,意在推銷他們的作品。那些書告訴你怎樣通過某種程式語言進行表達——這當然很重要,但卻只是程式設計師所做的事情的一小部分。
  除了通過程式語言進行表達,程式設計師還要做些什麼?嗯,這是一個更深入的問題。大多數程式設計師在解釋他們所做的事情這個問題上都會有困難。程式設計是一項充滿了各種細節的工作,追蹤這些細節需要專注。時間流逝、程式碼出現,你檢視它們,那裡全是些語句。如果你不仔細思考,你也許會以為程式設計不過就是敲入某種程式語言的語句。你當然錯了,但找遍書店的程式設計專櫃,你卻還是講不出所以然。
  在《程式設計師修煉之道》一書中,Dave和Andy將告訴我們怎樣以一種我們能夠遵循的方式程式設計。他們何以能這樣聰明?他們不也是和其他程式設計師一樣,專注於各種細節而已嗎?答案是他們在做某件事情時,會把注意力投注在他們在做的事情上——然後他們會試著把它做得更好。
  設想你在參加一個會議。或許你在想,這個會議沒完沒了,你還不如去寫程式。而Dave和Andy會想,他們為什麼在開會,他們想知道是否可以通過另外的方式取代會議,並決定是否可使某樣事情自動化,以使開會的工作推後。然後他們就會這樣去做。
  這就是Dave和Andy思考的方式。開會並非是某種使他們遠離程式設計的事情。開會就是程式設計,並且是能夠加以改善的程式設計。我之所以知道他們以這樣的方式思考,是因為這是書中的第二條提示:思考你的工作。
  那麼再設想一下,他們這樣思考了幾年。很快他們就會擁有一堆解決方案。現在設想他們在工作中使用這些解決方案,又是幾年;他們還放棄了其中太過困難、或者不能總是產生結果的解決方案。噢,這樣的途徑幾乎定義了“pragmatic”(注重實效)的含義。現在設想他們又用了一兩年來寫下他們的解決方案。你也許會想,這些資訊可真是金礦。你想對了。
  兩位作者告訴我們他們是怎樣程式設計的,並且是以一種我們能夠遵循的方式來告訴我們的。但這一陳述的後半部分的含義也許要多於你所想到的。讓我來解釋一下。