注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計其他編程語言/工具代碼大全

代碼大全

代碼大全

定 價:¥196.00

作 者: (美)邁克康奈爾(McConnell, S.)著;金戈譯
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 軟件開發(fā) 手冊

ISBN: 9787121022982 出版時間: 2006-03-01 包裝: 膠版紙
開本: 小16開 頁數(shù): 960 字數(shù):  

內(nèi)容簡介

  《代碼大全(第2版)》是著名Ⅱ暢銷書作者、《IEEESoftware》雜志前主編、具有20年編程與項目管理經(jīng)驗的SteveMcConneU十余年前的經(jīng)典著作的全新演繹:第2版做了全面的更新,增加了很多與時俱進的內(nèi)容,包括對新語言、新的開發(fā)過程與方法論的討論,等等。這是一本百科全書式的軟件構建手冊,涵蓋了軟件構建活動的方方面面,尤其強調(diào)提高軟件質(zhì)量的種種實踐方法。作者特別注重源代碼的可讀性,詳細討論了類和函數(shù)命名、變量命名、數(shù)據(jù)類型和控制結構、代碼布局等編程的最基本要素,也討論了防御式編程、表驅動法、協(xié)同構建、開發(fā)者測試、性能優(yōu)化等有效開發(fā)實踐,這些都服務于軟件的首要技術使命:管理復雜度。為了培養(yǎng)程序員編寫高質(zhì)量代碼的習慣,書中展示了大量高質(zhì)量代碼示例(以及用作對比的低質(zhì)量代碼),提高軟件質(zhì)量是降低開發(fā)成本的重要途徑。除此之外,《代碼大全(第2版)》歸納總結了來自專家的經(jīng)驗、業(yè)界研究以及學術成果,列舉了大量軟件開發(fā)領域的真實案例與統(tǒng)計數(shù)據(jù),提高《代碼大全(第2版)》的說服力?!洞a大全(第2版)》中所論述的技術不僅填補了初級與高級編程實踐之間的空白,而且也為程序員們提供了一個有關軟件開發(fā)技術的信息來源。《代碼大全(第2版)》對經(jīng)驗豐富的程序員、技術帶頭人、自學的程序員及沒有太多編程經(jīng)驗的學生都是大有裨益的??梢哉f,只要您具有一定的編程基礎,想成為一名優(yōu)秀的程序員,閱讀《代碼大全(第2版)》都不會讓您失望。

作者簡介

  SteveMcConnellSteveMcConnell是Construx公司首席軟件工程師,在公司里監(jiān)督軟件工程實施。他是軟件工程知識體(SWEBOK)項目構建知識領域的領導。Steve曾為微軟公司、波音公司和西雅圖地區(qū)的公司工作過。SteveMcConnell是以下著作的作者:1996年的《快速軟件開發(fā)(RapidDevelopment)》、1998年的《軟件項目長存之道(SoftwareProjectSurvivalGuide)》和2004年的《專業(yè)軟件開發(fā)(ProfessionalSoftwareDevelopment)》。他的書由于杰出,曾兩度獲得當年的《軟件開發(fā)(SoftwareDevelopment)》雜志的優(yōu)秀震撼大獎(JoltExcellenceaward)。Steve還曾是SPC評估專業(yè)版的開發(fā)領袖,軟件開發(fā)生產(chǎn)力大獎(SoftwareDevelopmentProductivityaward)的獲得者。1998年《軟件開發(fā)》讀者推選SteveMcConnell為軟件行業(yè)最有影響力的三個人之一,與BillGates、LinusTorvalds齊名。Steve從Whitman大學獲學士學位,并從西雅圖大學獲軟件工程碩士學位。>>更多作品譯者:金戈金戈,網(wǎng)名JGTM,2004-2006連續(xù)三年獲得微軟最有價值專家(MicrosoftMVP)獎,在Windows平臺上有近20年的程序設計開發(fā)經(jīng)驗,8年多軟件設計、開發(fā)與項目管理方面的工作經(jīng)驗。在軟件開發(fā)方面,早期主要使用VisualC++、BorlandDelphi進行開發(fā),于2003年所著的共享軟件WinWAXExpress曾在國外獲得多個獎項。目前主要使用VisualC#在.NET平臺進行應用技術研究與開發(fā)。他對Windows平臺有著深入的研究和豐富的實踐經(jīng)驗,尤其擅長COM/OLE組件技術、WindowsShell、InternetExplorer等等,并在面向對象分析與設計技術、設計模式、分布式應用系統(tǒng)架構設計、面向服務的架構(SOA)等方面深有所得,近年來也成為了敏捷軟件開發(fā)的積極實踐者。8年多的工作中,負責過大小項目20余個,涉及包括全文檢索、信息門戶、電子商務、工作流、農(nóng)業(yè)信息化、多媒體、3S等多個領域,積累了大量寶貴的經(jīng)驗。經(jīng)過3年多時間的不懈摸索,他從2004年開始了創(chuàng)業(yè)生涯,歷經(jīng)風雨磨難,至今仍在奮勇前行。所創(chuàng)項目,一個是面向電視觀眾和電視媒體行業(yè)的無線增值應用與信息化解決方案,另一個是互聯(lián)網(wǎng)地理信息與娛樂互動服務(4月底即將上線運行)。2005年開始,他同時在國家動物疫病預防與控制中心(CADC)負責主持農(nóng)業(yè)部國家級項目"全國動物標識管理與追蹤溯源系統(tǒng)"的技術研發(fā)和架構設計,并創(chuàng)立了"國家重大動物疫病應急防控指揮平臺"的實驗原型,受到各級領導的好評,該項目擬列為國家"十一五"信息化示范工程。未來,他希望成立自己的軟件公司,把多年來的創(chuàng)意變成產(chǎn)品,改善人們每天的生活。再花上10年時間,利用自己的技術為中國的教育信息化做一些貢獻。如果有可能的話,還希望能創(chuàng)辦一個專門培養(yǎng)軟件設計、開發(fā)與項目管理人才的學校,把自己的技術和經(jīng)驗傳遞給更多人。順利的話,在自己軟件生涯20年的時候寫一本書,記述一下這20年來的成長歷程,應該也是很有意思的事情。代碼大全(第二版)(程序員心目中的編程圣經(jīng)!世界上最優(yōu)秀的程序員都看過本書,你呢?)>>更多作品

圖書目錄

第1章  歡迎進入軟件構建的世界    3
1.1  什么是軟件構建?    3
1.2  軟件構建為何如此重要?    6
1.3  如何閱讀本書    8
關鍵點    8
第2章  用隱喻來更充分地理解軟件開發(fā)    9
2.1  隱喻的重要性    9
2.2  如何使用軟件隱喻    11
2.3  常見的軟件隱喻    13
軟件中的書法:寫作代碼    13
軟件的耕作法:培植系統(tǒng)    14
軟件的牡蠣養(yǎng)殖觀點:系統(tǒng)生長    15
軟件構建:建造軟件    16
應用軟件技術:智慧工具箱    20
組合各個隱喻    20
更多資源    20
關鍵點    21
第3章  三思而后行:前期準備    23
3.1  前期準備的重要性    24
前期準備適用于現(xiàn)代軟件項目嗎?    25
準備不周全的誘因    25
關于開始構建之前要做前期準備的絕對有力且簡明的論據(jù)    27
3.2  辨明你所從事的軟件的類型    31
迭代開發(fā)法對前期準備的影響    33
在序列式開發(fā)法和迭代式開發(fā)法之間做出選擇    35
3.3  問題定義的先決條件    36
3.4  需求的先決條件    38
為什么要有正式的需求?    38
穩(wěn)定需求的神話    39
在構建期間處理需求變更    40
3.5  架構的先決條件    43
架構的典型組成部分    45
3.6  花費在前期準備上的時間長度    55
更多資源    56
關鍵點    59
第4章  關鍵的“構建”決策    61
4.1  選擇編程語言    61
語言描述    63
4.2  編程約定    66
4.3  你在技術浪潮中的位置    66
“深入一種語言去編程”的例子    68
4.4  選擇主要的構建實踐方法    69
關鍵點    70
第5章  軟件構建中的設計    73
5.1  設計中的挑戰(zhàn)    74
設計是一個險惡的問題    74
設計是個了無章法的過程(即使它能得出清爽的成果)    75
設計就是確定取舍和調(diào)整順序的過程    76
設計受到諸多限制    76
設計是不確定的    76
設計是一個啟發(fā)式過程    76
設計是自然而然形成的    76
5.2  關鍵的設計概念    77
軟件的首要技術任務:管理復雜度    77
理想的設計特征    80
設計的層次    82
5.3  設計構造塊:啟發(fā)式方法    87
尋找現(xiàn)實世界中的對象    87
形成一致的抽象    89
封裝實現(xiàn)細節(jié)    90
當繼承能簡化設計時就繼承    91
隱藏秘密(信息隱藏)    92
找出容易改變的區(qū)域    97
保持松散耦合    100
查閱常用的設計模式    103
其他的啟發(fā)式方法    105
關于設計啟發(fā)的總結*****    108
使用啟發(fā)式方法的原則    109
5.4  設計實踐    110
迭代    110
分而治之    111
自上而下和自下而上的設計方法    111
建立試驗性原型    114
合作設計    115
要做多少設計才夠?    115
記錄你的設計成果    117
5.5  對流行的設計方法的評論    118
更多資源    119
軟件設計,一般性問題    119
軟件設計理論    120
設計模式    120
廣義的設計    121
標準    122
關鍵點    122
第6章  可以工作的類    125
6.1  類的基礎:抽象數(shù)據(jù)類型    126
需要用到ADT的例子    126
使用ADT的益處    127
更多的ADT示例    129
在非面向對象環(huán)境中用ADT處理多份數(shù)據(jù)實例    131
ADT和類    133
6.2  良好的類接口    133
好的抽象    133
良好的封裝    139
6.3  有關設計和實現(xiàn)的問題    143
包含(“有一個……”的關系)    143
繼承(“是一個……”關系)    144
成員函數(shù)和數(shù)據(jù)成員    150
構造函數(shù)    151
6.4  創(chuàng)建類的原因    152
應該避免的類    155
總結:創(chuàng)建類的理由    155
與具體編程語言相關的問題    156
6.6  超越類:包    156
更多資源    159
關鍵點    160
第7章  高質(zhì)量的子程序    161
7.1  創(chuàng)建子程序的正當理由    164
似乎過于簡單而沒必要寫成子程序的操作    166
總結:創(chuàng)建子程序的理由    167
7.2  在子程序層上設計    168
7.3  好的子程序名字    171
7.4  子程序可以寫多長    173
7.5  如何使用子程序參數(shù)    174
7.6  使用函數(shù)時要特別考慮的問題    181
什么時候使用函數(shù),什么時候使用過程    181
設置函數(shù)的返回值    182
7.7  宏子程序和內(nèi)聯(lián)子程序    182
宏子程序在使用上的限制    184
內(nèi)聯(lián)子程序    184
關鍵點    186
第8章  防范式編程    187
8.1  保護程序免遭無效輸入數(shù)據(jù)的破壞    188
8.2  斷言    189
建立自己的斷言機制    191
使用斷言的指導建議    191
8.3  錯誤處理技術    194
健壯性與正確性    197
高層次設計對錯誤處理方式的影響    197
8.4  異常    198
8.5  隔離程序以免遭由錯誤造成的損害    203
隔離區(qū)與斷言的關系    205
8.6  輔助調(diào)試代碼    205
不要自動地把產(chǎn)品版本的限制強加于開發(fā)版本之上    205
盡早引入輔助調(diào)試的手段    206
采用冒進式編程    206
計劃移除調(diào)試輔助代碼    206
8.7  確定在產(chǎn)品代碼中該保留多少防范式代碼    209
8.8  防范式編程時保持防范    210
其他資源    212
關鍵點    213
第9章  偽代碼編程過程    215
9.1  創(chuàng)建類和子程序的步驟概述    216
創(chuàng)建一個類的步驟    216
創(chuàng)建子程序的步驟    217
9.2  偽代碼    218
9.3  通過偽代碼編程過程創(chuàng)建子程序    220
設計子程序    225
編寫子程序    225
檢查代碼    230
收尾工作    232
根據(jù)需要重復上述步驟    232
9.4  偽代碼編程過程之外的其他方案    232
關鍵點    234
第10章  使用變量的一般事項    237
10.1  數(shù)據(jù)認知    238
數(shù)據(jù)認知測試    238
有關數(shù)據(jù)類型的其他資源    239
10.2  輕松掌握變量定義    239
隱式聲明    239
10.3  變量初始化原則    240
10.4  作用域    244
使變量引用局部化    245
盡可能縮短變量的“存活”時間    246
減小作用域的一般原則    249
有關縮小變量作用域的說明    250
10.5  持續(xù)性    251
10.6  綁定時間    252
10.7  數(shù)據(jù)類型和控制結構之間的關系    254
10.8  為變量指定單一用途    255
關鍵點    258
第11章  變量名的力量    259
11.1  選擇好變量名的注意事項    259
最重要的命名注意事項    260
以問題為導向    261
最適當?shù)拿珠L度    262
變量名字的效果范圍    262
變量名字中的計算值限定詞    263
變量名字中的常用反義詞    264
11.2  為特定類型的數(shù)據(jù)命名    264
為循環(huán)索引命名    265
為狀態(tài)變量命名    266
為臨時變量命名    267
為布爾變量命名    268
為枚舉類型命名    269
為常量命名    270
11.3  命名規(guī)則的力量    270
為什么要有規(guī)則?    270
何時采用命名規(guī)則    271
正式程度    271
11.4  非正式命名規(guī)則    272
語言無關規(guī)則的指導原則    272
語言相關規(guī)則的指導原則    275
混合語言編程的注意事項    276
命名規(guī)則示例    276
11.5  標準前綴    279
用戶自定義類型縮寫    279
語義前綴    280
標準前綴的優(yōu)點    281
11.6  創(chuàng)建具備可讀性的短名稱    282
一般的縮寫指導原則    282
語音縮寫    282
有關縮寫的評論    282
11.7  應該避免的名稱    285
關鍵點    289
第12章  基本數(shù)據(jù)類型    291
12.1  使用數(shù)的普遍規(guī)則    292
12.2  整數(shù)    293
12.3  浮點數(shù)    295
12.4  字符和字符串    297
C中的字符串    299
12.5  布爾變量    301
12.6  枚舉類型    303
如果你的語言里沒有枚舉類型    307
12.7  命名常量    307
12.8  數(shù)組    310
12.9  創(chuàng)建你自己的類型(類型別名)    311
為什么創(chuàng)建自己的類型的示例是用Pascal和Ada寫的?    314
創(chuàng)建自定義數(shù)據(jù)類型的指導原則    315
關鍵點    318
第13章  不常見的數(shù)據(jù)類型    319
13.1  結構    319
13.2  指針    323
用來理解指針的例子    323
使用指針的一般技巧    325
C++指針    332
C指針    334
13.3  全局數(shù)據(jù)    335
與全局數(shù)據(jù)有關的常見問題    335
使用全局數(shù)據(jù)的理由    338
只有萬不得已時才使用全局數(shù)據(jù)    339
用訪問子程序來取代全局數(shù)據(jù)    339
如何降低使用全局數(shù)據(jù)的風險    342
其他資源    343
關鍵點    344
第14章  組織直線型代碼    347
14.1  必須有明確順序的語句    347
14.2  順序無關的語句    351
使代碼易于自上而下的閱讀    351
把相關的語句組織在一起    352
關鍵點    353
第15章  使用條件語句    355
15.1  if語句    355
簡單if-then語句    355
if-then-else語句串    358
15.2  case語句    361
為case選擇最有效的排序    361
使用case語句的提示    361
關鍵點    366
第16章  控制循環(huán)    367
16.1  選擇循環(huán)的種類    367
什么時候使用while循環(huán)    368
什么時候用帶退出的循環(huán)    369
何時使用for循環(huán)    372
何時使用foreach循環(huán)    372
16.2  循環(huán)控制    373
進入循環(huán)    373
處理好循環(huán)體    375
退出循環(huán)    377
檢查端點    381
使用循環(huán)變量    382
循環(huán)應該有多長?    385
16.3  輕松創(chuàng)建循環(huán)——由內(nèi)而外    385
16.4  循環(huán)和數(shù)組的關系    387
關鍵點    389
第17章  不常見的控制結構    391
17.1  子程序中的多個返回    392
17.2  遞歸    393
遞歸的例子    394
使用遞歸的技巧    396
17.3  goto    398
反對goto的論點    398
支持goto的觀點    399
關于goto的虛假辯論    400
錯誤處理和goto    401
goto和在else子句中的共享代碼    406
goto使用原則總結    407
17.4  對不常見控制結構的看法    408
其他資源    408
關鍵點    410
第18章  表驅動方法    411
18.1  表驅動方法使用總則    411
使用表驅動方法的兩個問題    412
18.2  直接訪問表    413
示例:一個月中的天數(shù)(Days-in-Month)    413
示例:保險費率    415
例子:靈活的消息格式(Flexible-Message-Format)    416
構造查詢鍵值    423
18.3  索引表訪問(Indexed Access Tables)    425
18.4  階梯訪問表    426
18.5  表查詢的其他示例    429
關鍵點    430
第19章  一般控制問題    431
19.1  布爾表達式    432
用true和false做布爾判斷    432
簡化復雜的表達式    434
編寫肯定形式的布爾表達式    436
用括號使布爾表達式更清晰    438
理解布爾表達式是如何求值的    439
Writing Numeric Expressions in Number-Line Order    441
按照數(shù)軸的順序編寫數(shù)值表達式    441
Guidelines for Comparisons to 0    442
與0比較的指導原則    442
Common Problems with Boolean Expressions    443
布爾表達式的常見問題    443
19.2  Compound Statements (Blocks)    444
19.2  復合語句(塊)    444
19.3  Null Statements    445
19.3  空語句    445
19.4  Taming Dangerously Deep Nesting    446
19.4  馴服危險的深層嵌套    446
Summary of Techniques for Reducing Deep Nesting    454
對減少嵌套層次的技術的總結    454
19.5  A Programming Foundation: Structured Programming    455
19.5  編程基礎:結構化編程    455
The Three Components of Structured Programming    455
結構化編程的三個組成部分    455
19.6  Control Structures and Complexity    457
19.6  控制結構與復雜度    457
How Important Is Complexity?    458
復雜度的重要性    458
General Guidelines for Reducing Complexity    458
降低復雜度的一般原則    458
Other Kinds of Complexity    460
其它類型的復雜度    460
CHECKLIST: Control-Structure Issues    460
檢查表:控制結構相關事宜    460
Key Points    461
關鍵點    461

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號