獲取下載鏈接
標籤
《軟件開發》雜誌Jolt大獎 大而全,洞悉軟件構建精髓 優而先,兼顧行業實踐研究 奠定硬核技術領導力的經典 庸常變身卓越的實用性指導 《代碼大全2》是著名科技類作家史蒂夫·麥康奈爾的經典著作,是一本完整的軟件構建手冊,涵蓋了軟件構建過程中的所有細節。它從軟件質量和編程思想等方面論述了軟件構建的各個問題,並詳細論述了緊跟時代潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程序示例。本書所論述的技術不僅填補了初級與中高級編程技術之間的空白,而且也為程序員提供了一個有關編程技巧的信息來源。 本書的緣起與使命,響應計算機科學與技術委員會的報告,植根於“軟件工程參考手冊”這個基本的概念,同時兼顧軟件質量和研發效能,對已有的高效軟件工程實踐進行全面收集、萃取、分類和傳播(CSTB 1990, McConnell 1997a)。 這本書對經驗豐富的程序員、技術帶頭人、自學的程序員及幾乎不懂太多編程技巧的學生們都是大有裨益的。無論是什麼背景的讀者,閱讀本書都有助於在更短的時間內、更容易地寫出更好、更簡潔、更優雅的程序。
第Ⅰ部分奠定基礎 第1章 歡迎來到軟件構建的世界 003 第2章 通過隱喻更充分地理解軟件開發 009 第3章 謀定而後動:前期準備 023 第4章 關鍵的構建決策 057 第II部分高質量的代碼 第5章 軟件構建的設計 069 第6章 可以工作的類 121 第7章 高質量的子程序 157 第8章 防禦式編程 187 第9章 偽代碼編程過程 215 第Ⅲ部分變量 第10章 變量使用中的常規問題 239 第11章 變量名稱的威力 263 第12章 基本數據類型 295 第13章 不常見的數據類型 323 第Ⅳ部分語句 第14章 直線型代碼的組織 353 第15章 使用條件語句 361 第16章 控制循環 373 第17章 不常見的控制結構 395 第18章 表驅動法 417 第19章 常規控制問題 437 第Ⅴ部分代碼改進 第20章 軟件質量概述 469 第21章 協同構建 483 第22章 開發人員測試 503 第23章 調試 541 第24章 重構 569 第25章 代碼調優策略 591 第26章 代碼調優技術 613 第Ⅵ部分系統化考慮 第27章 程序規模對構建的影響 651 第28章 管理構建 663 第29章 集成 693 第30章 編程工具 715 第Ⅶ部分軟件匠藝 第31章 代碼的佈局和風格 733 第32章 自文檔代碼 781 第33章 個人性格 821 第34章 關於軟件匠藝 837 第35章 更多信息來源 853 詳細目錄 第Ⅰ部分奠定基礎 第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.4PPP的替代方案 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.1if語句 361 15.2case語句 367 第16章 控制循環 373 16.1選擇循環類型 373 16.2控制循環 379 16.3輕鬆創建循環:由內而外 391 16.4循環和數組的對應關係 393 第17章 不常見的控制結構 395 17.1子程序中的多個返回點 395 17.2遞歸 397 17.3goto語句 402 17.4眾說紛紜,談談不常見的控制結構 413 第18章 表驅動法 417 18.1表驅動法使用總則 417 18.2直接訪問表 419 18.3索引訪問表 431 18.4階梯訪問表 433 18.5表查詢的其他示例 436 第19章 常規控制問題 437 19.1布爾表達式 437 19.2複合語句(語句塊) 448 19.3空語句 449 19.4駕馭深層嵌套 451 19.5編程基礎:結構化編程 460 19.6控制結構與複雜度 462 第Ⅴ部分代碼改進 第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 第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.6IEEE標準 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
《真名實姓:弗諾·文奇的科幻世界與現代計算機網絡的發展》
這是一部影響橫跨一個時代的科幻經典,附帶九位重量級人物的深度解讀,講述硬科幻大師弗諾·文奇與互聯網界頂尖人物之間的跨界對話。1981年首次出版時便入圍雨果獎和星雲獎,成為科幻圈與科技界之間的橋樑,揭示了從互聯網的萌芽到《神經漫遊者》所引發的變革全貌。劉慈欣高度評價這部著作,認為它是對計算機技術所帶來...
查看詳情 →《從零開始做運營》
運營是什麼?怎樣做運營?產品和運營是什麼關係?我是否適合從事互聯網運營?為什麼我做的運營活動收效甚微? 在互聯網大熱的今天,互聯網運營成為一個越來越重要的崗位,事關網站、產品的發展與存亡。很多年輕人帶著對互聯網的熱情投身到這個行業,卻發現自己對這個行業所知甚少,對互聯網運營更加陌生,甚至有一些有志於...
查看詳情 →《天才與算法:人腦與AI的數學思維》
★這是兼具美英兩國科學院院士稱號的馬庫斯·杜·索托伊先生的傑出之作。 ★我們將進入一個由算法主導的時代,人工智能將在互聯網、繪畫、音樂與寫作等領域全面挑戰人類的創造力與想象力。 ★作者通過數學思維解讀算法,幫助人們理解創造力的本質,推動人類與機器共存的美好未來成為可能。
查看詳情 →《哥德爾、艾舍爾、巴赫》
集異璧-GEB,是數學家哥德爾、版畫家艾舍爾、音樂家巴赫三個名字的前綴。《哥德爾、艾舍爾、巴赫書:集異璧之大成》是在英語世界中有極高評價的科普著作,曾獲得普利策非小說獎。它通過對哥德爾的數理邏輯,艾舍爾的版畫和巴赫的音樂三者的綜合闡述,引人入勝地介紹了數理邏輯 學、可計算理 論、人工智能學、語言學、...
查看詳情 →