《程式設計師修煉之道:從小工到專家》

《程式設計師修煉之道:從小工到專家》

《程式設計師修煉之道:從小工到專家》由一系列獨立的部分組成,涵蓋的主題從個人責任、職業發展,直到用於使代碼保持靈活、並且易於改編和復用的各種架構技術,全面闡釋了軟體開發的許多不同方面的最佳實踐和重大陷阱。

基本信息

基本信息

《程式設計師修煉之道:從小工到專家》程式設計師修煉之道:從小工到專家》

作者:(美)亨特(Hunt,A.),(美)托馬斯(Thomas,D.)著馬維達譯

叢書名:傳世經典書叢

出版社:電子工業出版社

ISBN:9787121123368

出版時間:2011-01-01

版次:1頁

數:272裝

幀:平裝開

本:16開

內容簡介

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

目錄

前言

第1章注重實效的哲學
1我的源碼讓貓給吃了
2軟體的熵
3石頭湯與煮青蛙
4足夠好的軟體
5你的知識資產
6交流
第2章注重實效的途徑
7重複的危害
8正交性
9可撤消性
10曳光彈
11原型與便箋
12領域語言
13估算
第3章基本工具
14純文本的威力
15shell遊戲
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”(注重實效)的含義。現在構想他們又用了一兩年來寫下他們的解決方案。你也許會想,這些信息可真是金礦。你想對了。

兩位作者告訴我們他們是怎樣編程的,並且是以一種我們能夠遵循的方式來告訴我們的。但這一陳述的後半部分的含義也許要多於你所想到的。讓我來解釋一下。

精彩書摘

依據你的職業發展、你的項目和你每天的工作,為你自己和你的行為負責這樣一種觀念,是注重實效的哲學的一塊基石。注重實效的程式設計師對他或她自己的職業生涯負責,並且不害怕承認無知或錯誤。這肯定並非是編程最令人愉悅的方面,但它肯定會發生——即使是在最好的項目中。儘管有徹底的測試、良好的文檔以及足夠的自動化,事情還是會出錯。交付晚了,出現了未曾預見到的技術問題。

發生這樣的事情,我們要設法儘可能職業地處理它們。這意味著誠實和坦率。我們可以為我們的能力自豪,但對於我們的缺點——還有我們的無知和我們的錯誤——我們必須誠實。

責任是你主動擔負的東西。你承諾確保某件事情正確完成,但你不一定能直接控制事情的每一個方面。除了盡你所能以外,你必須分析風險是否超出了你的控制。對於不可能做到的事情或是風險太大的事情,你有權不去為之負責。你必須基於你自己的道德準則和判斷來做出決定。

如果你確實同意要為某個結果負責,你就應切實負起責任。當你犯錯誤(就如同我們所有人都會犯錯誤一樣)、或是判斷失誤時,誠實地承認它,並設法給出各種選擇。不要責備別人或別的東西,或是拼湊藉口。不要把所有問題都歸咎於供應商、程式語言、管理部門、或是你的同事。也許他(它)們全體或是某幾方在其中扮演了某種角色,但你可以選擇提供解決方案,而非尋找藉口。

如果存在供應商不能按時供貨的風險,你應該預先制定一份應急計畫。如果磁碟垮了——帶走了你的所有源碼一而你沒有做備份,那是你的錯。告訴你的老闆“我的源碼讓貓給吃了”也無法改變這一點。
……

盤點程式語言與程式設計書籍

程式語言(programming language),又稱程式設計語言(program design language,簡稱PDL),是一組用來定義電腦程式的語法規則。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程式設計師能夠準確地定義計算機所需要使用的數據,並精確地定義在不同情況下所應當採取的行動

相關搜尋

熱門詞條

聯絡我們