TOP
0
0
三民出版.新書搶先報|最速、最優惠的新鮮貨報給你知!
代碼大全2(紀念版)(精)(簡體書)
滿額折

代碼大全2(紀念版)(精)(簡體書)

商品資訊

人民幣定價:256 元
定價
:NT$ 1536 元
優惠價
871336
庫存:1
下單可得紅利積點:40 點
商品簡介
作者簡介
名人/編輯推薦
目次
相關商品

商品簡介

《代碼大全2(紀念版)》作為名家經典著作,是一本完整的軟件構建手冊,涵蓋軟件構建過程中的所有細節。它從軟件質量和編程思想等方面論述軟件構建的各個主題,並詳細論述主流的新技術、高屋建瓴的觀點和通用的概念,還含有豐富而典型的程序示例。本書所論述的技術不僅填補了初級與中高級編程技術之間的空白,同時還為程序員提供了一個有關編程技巧的信息來源。
《代碼大全2(紀念版)》對經驗豐富的程序員、技術帶頭人、自學的程序員及幾乎不懂太多編程技巧的學生大有幫助。無論是什麼背景的讀者,都可以通過閱讀和領會本書,在更短的時間內更輕鬆地寫出更好、更簡潔和更優雅的程序。

作者簡介

史蒂夫·麥康奈爾(Steve McConnell)
屢獲殊榮的科技類暢銷書作家,他的兩部作品《代碼大全》和《快速軟件開發》被《軟件開發》雜志授予卓越產品震撼大獎,他的書被翻譯成30種語言,在全球範圍內銷量超過一百萬冊。
史蒂夫熱衷於通過提高個人和團隊的技能來提高軟件組織的績效。他是Construx Software公司的創始人兼首席執行官,該公司提供培訓、咨詢、輔導和免費資源,專注於更有效的軟件開發實踐。

名人/編輯推薦

史蒂夫·麥康奈爾(Steve McConnell)的《代碼大全》是全球公認的編程實用指南,十多年來一直幫助開發人員寫出更好的軟件。這本經典書籍包含行之有效的實踐和數百個範例代碼,充分展現了軟件構建的藝術和科學。史蒂夫對學術界和日常商業實踐進行了廣泛的研究,從中萃取出精華,通過通俗易懂的表達方式和體例,形成了一套行之有效的技術、原理和實踐體系,旨在幫助廣大程序員以快的速度、更少的時間、更少的預算,來寫出質量更高、更優美的代碼。

作為一本綜合性強和實用性高的經典參考書,本書適合任何一個程序員閱讀,無論經驗水平、開發環境或項目規模如何,都可以從中得到啟發,構建出高質量的代碼,真正做到代碼完成的境界。

透過本書,發現經得起時間考驗的技巧和策略,從而幫助讀者:
& 實現大道至簡和更有創新的設計
& 收獲合作開發的好處
& 應用防御性編程技術來減少和清除錯誤
& 利用機會來以安全的方式重構或演化代碼
& 使用適合具體項目的構建實踐
& 快速有效地調試問題
& 盡早正確地解決關鍵的構建問題
& 質量內建貫穿於整個項目周期,無論開始、中間和結尾

“軟件工程實踐與一般軟件工程實踐,兩者的差異非常大,用‘一個在天上,一個在地上’這樣的比喻來形容,恐怕也不夸張,而且遠遠超過其他任何工程學科。從這一點來看,用於傳播優秀軟件工程實踐的工具,其重要性不言而喻。”
—布魯克斯
前 言
在寫作本書的過程中,我主要考慮的是縮短同一個行業中兩端的差距,一端是權威、專業人士,另一端是普通的商用實踐人員。在如涓涓細流一般“浸潤”並被普及成為業內知曉的通用實踐之前,許多強大的編程技術其實早已經隱身於期刊雜志和學術論文中很多年。
在二十一世紀的前十年,處於前沿的軟件開發實踐已經得到了突飛猛進的發展。然而,通用實踐卻一直裹足不前。bug 隨處可見,交付時間一拖再拖,超出預算,等等,這樣的情形在很多軟件項目中仍然屢見不鮮,甚至還有很多軟件根本無法滿足其用戶的要求。來自軟件行業和學術機構的研究人員發現,早在二十世紀七十年代,就有許多足以消除大多數編程難題的高效實踐。然而,這些高效實踐的報道並沒有走出專業技術期刊的影響圈,以至於還有相當一部分軟件組織在二十一世紀的前十幾年,仍然沒有採用這些高效的編程實踐。研究還發現,一項研究進展走向商用實踐,一般需要五到十年甚至更多的時間(Raghavan and Chand 1989, Rogers 1995, Parnas 1999)。這本書初的寫作動機就是以高效的方式縮短這個過程,使這些關鍵的發現可以馬上供大多數程序員採用。
哪些人適合閱讀本書
本書中包含的研究和編程逸事將幫助大家創建高質量的軟件,更輕鬆、更快速地做好自己的工作。本書將幫助你看清楚過去存在的難題,從而知道未來如何避免。書中描述的編程實踐將幫助你從容掌控大型項目,幫助你成功維護和修改軟件,直到滿足項目變更的需求。
? 有經驗的程序員 作為一本內容全面和容易上手的軟件開發實踐指南,本書適合有經驗的程序員閱讀。本書聚焦於軟件構建( 軟件生命周期內程序員熟悉的部分),初衷是讓自學成才的程序員以及受過正規訓練的程序員能夠透徹理解功能強大的軟件開發技術。
? 技術帶頭人 許多技術帶頭人都用《代碼大全2》來培訓過團隊中資歷較淺的程序員。不過,那麼也可以用本書來填補自己的知識空白。如果是有經驗的程序員,也許不會完全認同書中得出的結論,但如果仔細閱讀本書並認真思考每個難題後,那麼你會發現自己從此以後可以從容解答別人提出的任何一個軟件構建方面的難題了,因為這些問題你都認真思考過。
? 自學的程序員 如果沒有接受過太多正規培訓,那麼這本書將會是你如影隨形的良伴。每年有近5 萬名新手進入軟件開發行業(BLS 2004, Hecker 2004),但每年實際只有3.5 萬人有軟件相關的學位(NCES 2002)。* 根據這些數字,很快可以得出一個結論,有很多程序員都沒有接受過正規的軟件開發教育。在由工程師、會計、科學家、教師和小企業主組成的新興專業人士團體中,出現了自學成才的程序員,編程是他們日常工作中的一部分,但他們並不認為自己就是程序員。無論受過什麼程度的編程開發培訓,本書都可以幫助你見微知著,洞悉高效的編程實踐。
? 學生 前面提到經驗豐富但缺乏正規專業教育的程序員,與其相對應的便是年輕的學生。作為職場新人,他們往往理論知識豐富,但缺乏構建軟件產品的實際動手經驗。那些實用的、關於好代碼的學問和知識,通常傳遞得很慢,在軟件架構師、項目主管、業務分析和資深程序員共同參與的形如宗教儀式的“舞蹈”中,真正傳承下來的有用實踐,可謂少之又少。留下來的往往都是個別程序員的試驗品和錯誤。本書的目的是代替這些傳統智能盛宴的慢傳遞方式,通過精挑細選,將之前就有的技巧提示和有效的開發策略高度整合到一起。對學生而言,本書可以幫助他們從學術環境輕鬆遷移到專業開發環境。
還可以從哪些地方找到更多相關信息
本書綜合介紹大量軟件構建技術,這些技術的來源很廣泛。多年以來,除了廣泛散落在很多地方以外,關於軟件構建的大部分智能結晶並沒有作為書面參考被記錄下來(Hildebrand 1989, McConnell 1997a)。
譯注
這裡想談一下Github 的情況。Github 在2021 年11 月公布的Octoverse報告中指出,Github 開發者數量目前已達到7300 萬,其中美國開發者人數約1355 萬,中國有755 萬。總體而言,2021 年比前一年新增了21.3 萬名首次開源項目貢獻者。到2025 年,用戶數量預計會達到1億。
其實呢,專業程序員用的那些高效、高能的編程技術並不神秘。只不過,在日復一日埋頭於眼前項目的奔波和勞累中,真的幾乎沒有幾個專家還能夠有時間公開分享自己的經驗和教訓,導致廣大程序員很難找到一個好的資源集中介紹編程相關信息。
本書描述的編程技術正好可以填補入門級教科書和高級編程教科書之間的空白。在讀過Java 編程入門、中高級Java 編程和高級Java 編程之後,你會讀哪一本關於編程的書呢?你會讀詳細介紹英特爾或摩托羅拉硬件的書,介紹Windows 或Linux 操作系統功能以及其他編程語言的書,那些沒有詳細參考書的編程語言或程序,是沒有人會用的。但是,本書是少數幾本只專注於討論編程的書。有些總能讓人受益匪淺的編程技術就是適用於任何環境或者語言的通用實踐。對於這樣的實踐,其他的書一般都略過不提,本書則不同,偏偏就要集中介紹這些通用實踐。
本書可謂博采眾長,選材來源廣泛,如下圖所示。要想獲得本書包含的所有信息,另一個可取的方式是遍歷浩如煙海的文字,在汗牛充棟的書山和幾百冊技術類期刊中尋寶,同時你本人還需要加持豐富的開發實踐經驗。如果這些都沒問題,你仍然可以從本書中受益,因為它“海納百川”,把所有精華匯聚於一處,非常方便你隨時參考。
專業經驗
介紹編程
語言的書
其他介紹
軟件的書
雜志上
發表的文章
軟件構建
技術參考
本書的關鍵收益
不管背景如何,本書都可以幫助你以更少的時間和更少的痛苦寫出更好的程序。
? 一本完整的軟件構建參考 本書討論了軟件構建的方方面面,比如軟件質量和編程思維。它直擊軟件構建的真實細節,比如構建類的步驟,抽絲剝繭,闡述數據和控制結構的使用、調試、重構和代碼調優技術及策略等。對於這些主題,不必按順序從頭讀到尾。因為本書在設計的時候,已經優先考慮到要讓大家更容易找到自己感興趣的具體信息。
? 隨時可用的檢查清單 全書包含35 個檢查清單,可以用來評估軟件架構、設計方法、類和子程序的質量、變量名稱、控制結構、代碼布局和測試用例等。
? 時新的信息 本書描述前沿技術,許多技術都還沒有普及成為商業開發實踐。本書的素材取自行業實踐和研究機構,描述的很多開發技術在未來很多年都普遍適用。
? 從更廣的視角來看待軟件開發 通過本書,你將有機會以參觀者的角度,不再疲於奔命,而是冷靜下來搞清楚哪些行得通,哪些行不通。實幹派的程序員基本上沒有時間讀上幾百本書籍和專業技術期刊上發表的文章( 其中的精華都包含在本書中)。
納入本書的研究經驗和開發經驗將幫助你展開想象,啟發你對項目的思考,讓你能夠選擇策略性的行動,從而使自己不至於反反復復地掉入同樣的坑中。
? 字字珠璣,全是乾貨 有些技術書籍華而不實,廢話十之八九,僅有一兩成的真知灼見。本書兼容並蓄,會講到每種編程技術的利與弊。對於特定項目的具體要求,你顯然比旁觀者
更為清楚。所以,為了幫助你在特定條件下作出更好的決策,本書提供了你需要掌握的客觀信息。
? 可以應用於大多數常見編程語言的概念 本書描述的技術可以充分用於你所選擇的編程語言,不管是C 語言、C# 語言、Java 語言還是其他語言。
? 大量代碼示例 本書包含將近500 個代碼示例,好代碼有,爛代碼也有。之所以包含這麼多代碼示例,是因為我個人從這些代碼示例中受益匪淺。推己及人,我希望其他程序員也能夠從中收獲良多。這些代碼範例涉及多種編程語言,因為至少掌握兩種語言通常是區分專業程序員和非專業程序員的分水嶺。作為一名程序員,一旦意識到編程準則超越於任何一種特定語言的語法,就意味著專業知識的殿堂已經向他敞開大門,質量和生產力從此以後將出現質的飛躍。為了盡可能減輕多種編程語言所帶來的負擔,我有意回避了只有真正內行才看得懂的語言特性( 除非還有具體展開的討論)。你不需要通過理解不同代碼片段之間的每個細微差異來理解它們的意義。如果把注意力集中在要闡述的關鍵點上,你會發現自己完全能夠讀懂代碼,不管它是用什麼語言來寫的。為了讓你更容易理解,我特別針對代碼範例中的重要部分增加了注釋。
? 訪問其他信息來源 本書收集了大部分以軟件構建為主題的信息,但這還沒完。除第1 章外,各章的“更多資源”小節還給出了其他書籍和文章,以方便大家進一步了解感興趣的主題。
為什麼要寫這本書
軟件工程領域已經充分意識到,迫切需要一本全麵包含高效開發實踐的軟件開發參考手冊。
計算機科學與技術委員會有一份報告指出,軟件開發質量和生產力要想取得的效益,只能來自於對現有高效軟件工程實踐相關知識進行編纂、分類並廣泛傳播(CSTB 1990, McConnell 1997a)。該委員會後得出一個結論:與這些軟件工程實踐相關的知識的傳播策略要根植於“軟件工程參考手冊”這個基本概念。
? 軟件構建是一個長期不受重視的主題 有那麼一段時間,軟件開發和寫代碼被混為一談。但在軟件開發周期中一些獨特的活動被識別出來之後,圈子中有些思想領袖就開始花時間分析項目管理、需求、設計和測試,並掀起一場轟轟烈烈的方法論之爭。對這些新領域進行研究的熱潮,把原本一脈相承的代碼構建冷落在一旁,就像它和軟件開發沒有什麼關係一樣。
對代碼構建的討論之所以冷門,還有一個原因。有人建議,如果把代碼構建當作獨立的軟件開發活動,就意味著必須把它當作一個獨立的階段。實際上,軟件活動和階段真的沒有必要有任何一一對應的特定關係,不管其他軟件活動是以階段、迭代還是其他方式來執行,都不影響我們對代碼構建進行討論,這樣做才是“正確”的。
? 軟件構建的重要性不可小覷 軟件構建長期被研究人員和技術作家忽略的另一個原因是,他們錯誤地認為,相較於其他軟件開發活動,代碼構建是一個相對機械的過程,幾乎沒有任何改進的機會。然而,事實並非如此。
在小型項目中,代碼構建的投入占比一般為65% 左右,中型項目為50%。對於錯誤,小型項目中代碼構建所產生的占比為75%,中型和大型項目則為50% ~ 75%。顯然,錯誤占比為50% ~ 75% 的任何活動都有機會得以顯著改進( 第27 章包含更詳細的統計數據和分析)。
有評論人士指出,盡管代碼構建錯誤在總的錯誤中占比很高,但其修復成本低於需求和架構錯誤。言下之意,代碼構建的重要性也就不該那麼高。沒錯,構建錯誤的修復成本實際上並不高。但研究人員發現,一直以來,一些不起眼兒的代碼錯誤卻是終造成修復成本高達幾億美元的一些軟件錯誤(Weinberg 1983, SEN 1990)。顯然,修復成本不高,並不意味著它們就應該優先級低。
具有諷刺意味的是,軟件構建之所以不受重視,另一個原因居然是它是軟件生命周期中一個必須要認真完成的活動。需求可以靠假設,用不著認真開發;架構可以打折扣,用不著認真設計;測試可以縮水或者略過不做,用不著做全盤計劃和執行。但是,如果要開發一個程序,那麼一定得好好構建代碼,這樣一來,構建便在改進開發實踐中成為一個獨特而富有成效的領域。
關於高效構建實踐,還沒有一本理想的同類書。
軟件構建的重要性既然那麼明顯,我便理所當然地認為我在構思這本書的時候,肯定已經有其他人寫過高效構建實踐的書。
顯然,業界需要一本介紹如何進行高效編程的書。但我發現,軟件構建方面的書乏善可陳,而且都不全面。有些書寫於二十世紀九十年代之前甚至更早,講的是只有真正內行才看得懂的小眾語言,比如ALGOL、PL/I、Ratfor 和Smalltalk。有些是壓根兒沒有寫過生產代碼*
(譯注:所謂生產代碼,是指包含系統邏輯並在生產環境中運行的那部分代碼。)的教授寫的。教授們寫的技術書適用於學生的項目,但對於這些技術在整個大規模軟件開發環境中是否適用,他們並沒有多少概念。還有一些書呢,則鼓吹作者愛的方法體系,完全忽略那些龐大的、經年累月沉澱下來的實踐知識寶庫。
簡而言之,從來沒有一本書能夠像本書一樣,從專業經驗、行業研究和學術成果中萃取出這樣一套實用的編程技術體系,包含當前的編程語言、面向物件的編程語言以及前沿的開發實踐。顯然,以編程為主題的書需要由知曉理論發展水平的人來寫,而不是真正動手寫代碼構建軟件產品並以實踐為樂的人來寫。對於本書,我的設想是全面而完整地討論如何構建代碼,是一本由程序員寫給程序員看的書。
作者說明
歡迎來信討論本書討論的任何一個主題,勘誤建議和其他相關話題都可以。請通過電子郵件stevemcc@construx.com 聯繫,或者訪問網站www.stevemcconnell.com。
史蒂夫·麥康奈爾(Steve McConnell)
2004 年陣亡將士紀念日
於華盛頓貝爾維尤
“當藝術評論家們聚在一起的時候,談的都是形式啊,結構和意義什麼的。當藝術家們聚在一起的時候,談論的卻是在哪裡可以買到便宜的松脂油。”
—畢加索

目次

第Ⅰ部分 奠定基礎
第1 章 歡迎來到軟件構建的世界 003
1.1 什麼是軟件構建 003
1.2 軟件構建為何如此重要 006
1.3 如何閱讀本書 008
第2 章 通過隱喻更充分地理解軟件開發 009
2.1 隱喻的重要性 009
2.2 如何使用軟件隱喻 012
2.3 常見的軟件隱喻 013
第3 章 謀定而後動:前期準備 023
3.1 前期準備的重要性 024
3.2 確定要開發什麼類型的軟件 030
3.3 定義問題的先決條件 034
3.4 需求的先決條件 036
3.5 架構的先決條件 041
3.6 前期準備所花費的時間 052
第4 章 關鍵的構建決策 057
4.1 編程語言的選擇 057
4.2 編程約定 062
4.3 判斷個人處於技術浪潮中的哪個階段 062
4.4 選擇重要的構建實踐 065
第II 部分 高質量的代碼
第5 章 軟件構建的設計 069
5.1 設計挑戰 070
5.2 關鍵設計概念 073
5.3 設計構建基塊:啟發式方法 083
5.4 設計實踐 107
5.5 點評各種流行的方法論 115
第6 章 可以工作的類 121
6.1 類的基礎:抽象數據類型(ADT) 122
6.2 良好的類接口 129
6.3 設計和實現問題 139
6.4 創建類的理由 149
6.5 語言特定問題 153
6.6 超越類:包 153
第7 章 高質量的子程序 157
7.1 創建子程序的正當理由 160
7.2 子程序級別的設計 165
7.3 好的子程序名稱 169
7.4 一個子程序應該有多長 171
7.5 如何使用子程序參數 173
7.6 函數使用中的特別注意事項 180
7.7 宏子程序和內聯子程序 182
第8 章 防御式編程 187
8.1 保護程序,使其免受無效輸入的影響 188
8.2 斷言 189
8.3 錯誤處理技術 194
8.4 異常 198
8.5 隔離程序,使之包容由錯誤造成的損害 203
8.6 調試輔助代碼 205
8.7 確定在生產代碼中保留多少防御式代碼 209
8.8 對防御式編程采取防御的姿態 211
第9 章 偽代碼編程過程 215
9.1 類和子程序構建步驟總結 215
9.2 面向專家的偽代碼 218
9.3 使用PPP 構建子程序 220
9.4 PPP 的替代方案 233
第Ⅲ部分 變量
第10 章 變量使用中的常規問題 239
10.1 數據掃盲 240
10.2 簡化變量聲明 241
10.3 變量初始化指南 242
10.4 作用域 247
10.5 持久性 254
10.6 綁定時間 255
10.7 數據類型和控制結構之間的關係 257
10.8 每個變量只有一個用途 258
第11 章 變量名稱的威力 263
11.1 選擇好名稱的注意事項 263
11.2 特定數據類型的命名 269
11.3 命名規範的威力 275
11.4 非正式的命名規範 276
11.5 前綴的標準化 283
11.6 創建可讀的短名稱 286
11.7 變量名稱避坑指南 289
第12 章 基本數據類型 295
12.1 一般的數字 296
12.2 整型 297
12.3 浮點型 299
12.4 字符和字符串 302
12.5 布爾變量 305
12.6 枚舉類型 307
12.7 具名常量 312
12.8 數組 314
12.9 創建自定義類型( 類型別名) 316
第13 章 不常見的數據類型 323
13.1 結構體 323
13.2 指針 327
13.3 全局數據 340
第Ⅳ部分 語句
第14 章 直線型代碼的組織 353
14.1 順序攸關的語句 353
14.2 順序無關的語句 356
第15 章 使用條件語句 361
15.1 if 語句 361
15.2 case 語句 367
第16 章 控制循環 373
16.1 選擇循環類型 373
16.2 控制循環 379
16.3 輕鬆創建循環:由內而外 391
16.4 循環和數組的對應關係 393
第17 章 不常見的控制結構 395
17.1 子程序中的多個返回點 395
17.2 遞歸 397
17.3 goto 語句 402
17.4 眾說紛紜,談談不常見的控制結構 413
第18 章 表驅動法 417
18.1 表驅動法使用總則 417
18.2 直接訪問表 419
18.3 索引訪問表 431
18.4 階梯訪問表 433
18.5 表查詢的其他示例 436
第Ⅴ部分 代碼改進
第20 章 軟件質量概述 469
20.1 軟件質量的特性 469
20.2 改進軟件質量的技術 472
20.3 質量保證技術的相對效能 475
20.4 何時進行質量保證 479
20.5 軟件質量的普遍原理 479
第21 章 協同構建 483
21.1 協同開發實踐概述 484
21.2 結對編程 487
21.3 正式審查 489
21.4 其他類型的協同開發實踐 496
第22 章 開發人員測試 503
22.1 開發者測試對軟件質量所起的作用 504
22.2 開發人員測試的推薦方法 507
22.3 一些測試技巧 509
22.4 典型錯誤 522
22.5 測試支持工具 528
22.6 改進測試 534
22.7 維護測試記錄 535
第23 章 調試 541
23.1 調試問題概述 541
23.2 發現缺陷 546
23.3 修復缺陷 557
23.4 調試中的心理因素 560
23.5 那些顯而易見和不太明顯的調試工具 563
第24 章 重構 569
24.1 軟件演變的類型 570
24.2 重構簡介 571
24.3 特定的重構 577
24.4 安全重構 585
24.5 重構策略 587
第25 章 代碼調優策略 591
25.1 性能概述 592
25.2 代碼調優簡介 595
25.3 各式各樣的臃腫和蜜糖 601
25.4 度量 607
25.5 迭代 608
25.6 代碼調優方法總結 609
第26 章 代碼調優技術 613
26.1 邏輯 614
26.2 循環 619
26.3 數據變換 628
26.4 表達式 633
26.5 子程序 642
26.6 用低級語言重新編碼 643
26.7 改得越多,越不會有大的改觀 646
第Ⅵ部分 系統化考慮
第27 章 程序規模對構建的影響 651
27.1 溝通和規模 651
27.2 項目規模的範圍 652
27.3 項目規模對錯誤的影響 653
27.4 項目規模對生產力的影響 655
27.5 項目規模對開發活動的影響 656
第19 章 常規控制問題 437
19.1 布爾表達式 437
19.2 復合語句( 語句塊) 448
19.3 空語句 449
19.4 駕馭深層嵌套 451
19.5 編程基礎:結構化編程 460
19.6 控制結構與複雜度 462
第28 章 管理構建 663
28.1 鼓勵良好的編碼實踐 664
28.2 配置管理 666
28.3 評估構建進度表 673
28.4 度量 679
28.5 以人為本,善待每一位程序員 683
28.6 向上管理 689
第29 章 集成 693
29.1 集成方法的重要性 693
29.2 集成的頻率,階段式還是增量式 695
29.3 增量式集成策略 698
29.4 每日構建和冒煙測試 707
第30 章 編程工具 715
30.1 設計工具 716
30.2 源代碼工具 716
30.3 可執行碼工具 721
30.4 面向工具的環境 726
30.5 自己動手寫編程工具 726
30.6 工具的幻境 728
第Ⅶ部分 軟件匠藝
第31 章 代碼的布局和風格 733
31.1 基本理論 734
31.2 布局技術 741
31.3 布局風格 743
31.4 控制結構的布局 750
31.5 單條語句的布局 757
31.6 注釋的布局 768
31.7 子程序的布局 771
31.8 類的布局 772
第32 章 自文檔代碼 781
32.1 外部文檔 781
32.2 編程風格即文檔 782
32.3 注釋,還是不注釋 785
32.4 高效注釋的關鍵 788
32.5 注釋的技術 795
32.6 IEEE 標準 815
第33 章 個人性格 821
33.1 個人性格與本書主題有關 822
33.2 聰明與謙卑 823
33.3 好奇心 824
33.4 理性誠實 827
33.5 溝通與合作 830
33.6 創造力與規範 830
33.7 懶惰 831
33.8 沒有想象中那麼重要的性格因素 832
33.9 習慣 833
第34 章 關於軟件匠藝 837
34.1 征服複雜性 837
34.2 優選開發過程 839
34.3 編寫程序時,先考慮人,再考慮機器 840
34.4 深入語言去編程,而不是用語言來編程 842
34.5 借助於規範來保持專注 843
34.6 面向問題域編程 844
34.7 當心落石 846
34.8 迭代,迭代,迭代,重要的事情說三遍 848
34.9 警惕編程中的執念 849
試驗 851
第35 章 更多信息來源 853
35.1 與軟件構建相關的信息 853
35.2 軟件構建之外的話題 854
35.3 出版物 856
35.4 軟件開發者的閱讀計劃 857
35.5 加入專業組織 859
參考文獻 861

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 1336
庫存:1

暢銷榜

客服中心

收藏

會員專區