预购商品
书目分类
特别推荐
【名家名著 17】 所有軟體工程師必備的聖經,沒有之一! 廣獲好評的程式設計實務指南,在過去十幾年間,由Steve McConnell所原創的《Code Complete》已幫助許許多多的開發者,開發出更完善的軟體。本書包含最新的更新與修訂內容,以及數百項全新的程式碼範例,充分闡明軟體建構的科學與藝術。McConnell匯集了來自學術研究與商業實務的各項知識,歸納出最有效的工作技巧、以及最關鍵的實踐原則,轉化成一系列清晰且務實的指引。無論你的知識水準、工作環境或專案規模如何,本書都能提昇你的智慧,幫助你建構出最佳品質的程式碼。 發掘各項歷久彌新的技巧與策略,使你能夠: l建構出低複雜性,但卻有高可塑性的設計。 l組織健全的協作式開發並從中獲益。 l應用防禦性程式設計技巧,消弭發生錯誤的機會。 l洞察合適的時機,妥善地對程式碼進行重構或演變。 l依專案規模選擇合適的實踐方法。 l快速且有效地進行除錯。 l及早且正確地解決重大的建構問題。 l從一而終保持高品質的軟體專案。 好評推薦 「即便第一版的《Code Complete》已經納入我的軟體工程經典收藏裡,但第二版卻更是青出於藍。」——Ralph Johnson,伊利諾大學,《Design Patterns》合著者 「無論你是新手還是熟手,《Code Complete》第二版都能幫助你透徹瞭解程式設計。」——Jeffrey Richter(www.wintellect.com),《Applied Microsoft® .NET Framework Programming》作者 「關於軟體建構的絕佳指南,也是作為程式設計師的必讀著作。」——Diomidis Spinellis,《Code Reading: The Open Source Perspective》作者 「Steve McConnell是少數真正在知識傳授上做到深入淺出的人士。」——John Vlissides,IBM研究院,《Design Patterns》合著者 「Steve McConnell比任何人都更通曉軟體建構的奧義,我們很幸運能夠藉由這部原創著作,汲取他的豐富經驗與真知灼見。」——Alan Cooper,Visual Basic之父,《About Face》作者 「《Code Complete》是有關程式設計風格和軟體建構的絕佳指引書籍。」——Martin Fowler,《Refactoring》 「Steve McConnell 的《Code Complete》……為程式設計師提供了邁向智慧的捷徑……他的書讀起來富有趣味,要知道他可是有真實的親身經驗的。」——Jon Bentley,《Programming Pearls, 2nd ed.》 「這無疑是我看過的軟體建構方面最好的書籍。每位開發人員都應該手持一本,並且每年都從頭到尾讀一遍。九年來我每年都讀這本書,仍能從中獲得新的收穫。」——John Robbins,《Debugging Applications for Microsoft .NET and Microsoft Windows》 「當今的軟體必須是健全、有彈性的,而安全的程式碼始於規範的建構。第 1 版出版後的十年裡,沒有出現比《Code Complete》更權威的書。」——Michael Howard,《Writing Secure Code》 「《Code Complete》廣泛剖析程式設計工藝的各種實戰話題。McConnell 的著作涵蓋軟體架構、coding 標準、測試、整合及軟體工藝本質等內容。」——Grady Booch,《Object Solutions》 「對軟體開發者而言,終極的百科全書就是Steve McConnell 的《Code Complete》。這本長達 912 頁厚的書籍誠如副標所說的,是一本實用指南。它意圖縮短業界大師與教授(例如 Yourdon 和Pressman)的知識與一般商業實踐之間的距離,幫助讀者用較短的時間、碰觸較少的麻煩去編寫更好的程式……每個開發者都應該擁有這本書,本書的風格和內容是極為實用的。」——Chris Loosley,《High-Performance Client/Server》 「Steve McConnell 的開創性書籍《Code Complete》是詳述軟體開發方面最易懂的一本書……」——Erik Bethke,《Game Development and Production》 「《Code Complete》是個寶藏,收藏了設計與生產優質軟體方面的有用資訊與建議。」——John Dempster,《The Laboratory Computer: A Practical Guide for Physiologists and Neuroscientists》 「如果你有意增進程式設計技術,就該有一本Steve McConnell 的《Code Complete》。」——Jean J. Labrosse,《Embedded Systems Building Blocks: Complete and Ready-To-Use Modules in C》 「Steve McConnell 寫出了一本獨立於電腦環境的軟體開發最好的書籍。」——Kenneth Rosen,《Unix: The Complete Reference》 「每個時代你都會遇到一本書,提供你獲得經驗的捷徑,節省數年痛苦的學習時間……千言萬語都無法說明這本書有多好。標題《Code Complete》尚不足以表達出該作品的全部智慧與內涵。」——Jeff Duntemann,《PC Techniques》 「Microsoft Press 出版了我認為是軟體建構方面很好的書,每位軟體開發人員的書架上都該有這本書。」——Warren Keuffel,《Software Development》 「每個程式設計師都該閱讀這本傑出的書籍。」——T.L. (Frank) Pappas,《Computer》 「假如你期望成為專業的程式設計師,這將是你投資 35 美元能獲得的最好回報。不要只是看看這個書評,趕快衝去買一本回來!McConnell 聲稱此書意在拉近業界大師的知識與一般商業實踐之間的距離……令人稱奇的是,他做到了!」——Richard Mateosian,《IEEE Micro》 「《Code Complete》應該被軟體開發領域中的每個人閱讀。」——Tommy Usher,《C User’s Journal》 「我不遺餘力地為Steve McConnell 的《Code Complete》拍手叫好……這本書取代了 API 參考手冊,成為陪我工作的親密夥伴。」——Jim Kyle,《Windows Tech Journal》 「這本編纂精良的巨著有望成為軟體實現的實踐方面最好的專書。」——Tommy Usher,《Embedded Systems Programming》 「這是我所讀過的軟體工程方面最好的書籍。」——Edward Kenworth,《.Exe Magazine》 「這本書必將成為一部經典、所有開發人員及管理者必備的讀物。」——Peter Wright,《Program Now》
第一部分 打好基礎 第 1 章 歡迎進入軟體建構的世界 1.1 什麼是軟體建構 1.2 軟體建構為何如此重要 1.3 如何閱讀本書 要點 第 2 章 藉由隱喻進一步理解軟體開發 2.1 隱喻的重要性 2.2 如何使用軟體隱喻 2.3 常見的軟體隱喻 更多資源 要點 第 3 章 三思而後行:前期的前置作業 3.1 前置作業的重要性 3.2 確認你所從事的軟體類型 3.3 問題定義的先決條件 3.4 需求的先決條件 3.5 架構的先決條件 3.6 花費在前期的前置作業上的時間長度 更多資源 要點 第 4 章 關鍵的「建構」決策 4.1 程式語言的選擇 4.2 程式設計約定 4.3 你在技術浪潮中的位置 4.4 選擇主要的建構實踐方法 要點 第二部分 建立高品質的程式碼 第 5 章 軟體建構中的設計 5.1 設計中的挑戰 5.2 關鍵的設計概念 5.3 設計構造塊:啟發式方法 5.4 設計實踐 5.5 對流行的設計方法的評論 更多資源 要點 第 6 章 工作類別 6.1 類別的基礎:抽象資料類型(ADTs) 6.2 良好的類別介面 6.3 有關設計和實作的議題 6.4 建立類別的原因 6.5 與具體程式語言相關的問題 6.6 超越類別:套件(Package) 更多資源 要點 第 7 章 高品質的子程式 7.1 建立子程式的正當理由 7.2 在子程式層上設計 7.3 好的子程式名稱 7.4 子程式可以寫多長 7.5 如何使用子程式參數 7.6 使用函式時要特別考慮的問題 7.7 Macro 子程式和行內子程式 要點 第 8 章 防禦性程式設計 8.1 保護程式免遭非法輸入資料的破壞 8.2 斷言 8.3 錯誤處理技術 8.4 例外(Exceptions) 8.5 隔離程式,使之包容由錯誤造成的損害 8.6 輔助除錯的程式碼 8.7 決定在產品程式碼中該保留多少防禦性程式碼 8.8 對防禦性程式設計採取防禦的姿態 更多資源 要點 第 9 章 虛擬碼程式設計流程 9.1 建立類別和子程式的步驟概述 9.2 如何寫好程序的虛擬碼 9.3 透過PPP 建立子程式 9.4 PPP 的替代方案 要點 第三部分 變數 第 10 章 使用變數的一般事項 10.1 資料認知 10.2 輕鬆掌握變數定義 10.3 變數初始化原則 10.4 作用範圍 10.5 持續性 10.6 綁定時間 10.7 資料類型和控制結構之間的關係 10.8 為變數指定單一用途 要點 第 11 章 變數名稱的力量 11.1 選擇好變數名稱的注意事項 11.2 為特定型別的資料命名 11.3 命名規則的力量 11.4 非正式命名規則 11.5 標準前綴 11.6 建立具備可讀性的短名稱 11.7 應該避免的名稱 要點 第 12 章 基本資料型別 12.1 數值概論 12.2 整數 12.3 浮點數 12.4 字元和字串 12.5 布林變數 12.6 列舉型別 12.7 具名常數 12.8 陣列 12.9 建立你自己的型別(型別別名) 要點 第 13 章 不常見的資料型別 13.1 結構體 13.2 指標 13.3 全域資料 更多資源 要點 第四部分 語句 第 14 章 組織直線碼 14.1 必須有明確順序的述句 14.2 順序無關的述句 要點 第 15 章 使用條件述句 15.1 if 述句 15.2 case 述句 要點 第 16 章 控制迴圈 16.1 選擇迴圈的種類 16.2 迴圈控制 16.3 輕鬆建立迴圈——由內而外 16.4 迴圈和陣列的關係 要點 第 17 章 不常見的控制結構 17.1 子程式中的多處返回 17.2 遞迴 17.3 goto 17.4 針對不常見控制結構的觀點 更多資源 要點 第 18 章 表格驅動法 18.1 表格驅動法使用總則 18.2 直接存取表 18.3 索引存取表 18.4 階梯存取表 18.5 表格查詢的其他範例 要點 第 19 章 一般控制問題 19.1 布林運算式 19.2 複合述句(述句區塊) 19.3 空述句 19.4 馴服危險的深層巢狀結構 19.5 程式設計基礎:結構化程式設計 19.6 控制結構與複雜度 要點 第五部分 程式碼改善 第 20 章 軟體品質概述 20.1 軟體品質的特性 20.2 改善軟體品質的技術 20.3 不同品質保障技術的相對效能 20.4 什麼時候進行品質保證工作 20.5 軟體品質的一般原則 更多資源 要點 第 21 章 協同建構 21.1 協同開發實踐概要 21.2 結對程式設計 21.3 正式檢查 21.4 其他類型的協同開發實作 21.5 協同建構技術的比較 更多資源 要點 第 22 章 開發者測試 22.1 開發者測試在軟體品質中的角色 22.2 開發者測試的推薦方法 22.3 測試技巧錦囊 22.4 典型錯誤 22.5 測試支援工具 22.6 改善測試程序 22.7 保留測試記錄 更多資源 要點 第 23 章 除錯 23.1 除錯概述 23.2 尋找缺陷 23.3 修正缺陷 23.4 除錯中的心理因素 23.5 除錯工具——明顯的和不那麼明顯的 更多資源 要點 第 24 章 重構 24.1 軟體演化的類型 24.2 重構簡介 24.3 特定的重構 24.4 安全的重構 24.5 重構策略 更多資源 要點 第 25 章 程式碼調整策略 25.1 效能概述 25.2 程式碼調整簡介 25.3 脂肪和糖漿 25.4 效能測量 25.5 反覆調整 25.6 程式碼調整方法總結 更多資源 要點 第 26 章 程式碼調整技術 26.1 邏輯 26.2 迴圈 26.3 資料變換 26.4 運算式 26.5 子程式 26.6 用低階語言重寫程式碼 26.7 變得越多,事情反而越沒變 更多資源 要點 第六部分 系統考慮 第 27 章 程式規模對建構的影響 27.1 交流和規模 27.2 專案規模的範圍 27.3 專案規模對錯誤的影響 27.4 專案規模對生產率的影響 27.5 專案規模對開發活動的影響 更多資源 要點 第 28 章 管理建構 28.1 鼓勵撰寫良好的程式 28.2 設定管理 28.3 評估建構進度表 28.4 度量 28.5 把程式設計師當人看 28.6 管理你的管理者 28.7 有關管理建構的額外資源 要點 第 29 章 整合 29.1 整合方式的重要性 29.2 整合頻率——階段式整合還是增量整合 29.3 增量整合的策略 29.4 每日組建與冒煙測試 更多資源 要點 第 30 章 程式設計工具 30.1 設計工具 30.2 原始碼工具 30.3 可執行碼工具 30.4 工具導向的環境 30.5 打造你自己的程式設計工具 30.6 工具夢想世界 更多資源 要點 第七部分 軟體工藝 第 31 章 佈局與風格 31.1 佈局基本原則 31.2 佈局技術 31.3 佈局風格 31.4 控制結構的佈局 31.5 單條述句的佈局 31.6 註解的佈局 31.7 子程式的布局 31.8 類別的佈局 更多資源 要點 第 32 章 自我文件化程式碼 32.1 外部文件 32.2 程式設計風格的文件 32.3 註解或不註解 32.4 高效率註解之關鍵 32.5 註解技術 32.6 IEEE 標準 更多資源 要點 第 33 章 個人性格 33.1 個人性格是否和本書話題無關 33.2 聰明和謙虛 33.3 求知慾 33.4 誠實 33.5 交流與合作 33.6 創造力和紀律 33.7 懶惰 33.8 不如你想像中那樣起作用的性格因素 33.9 習慣 更多資源 要點 第 34 章 軟體工藝的話題 34.1 征服複雜性 34.2 挑選開發程序 34.3 首先為人寫程式,其次才是為機器 34.4 用程式去創造適合的語言環境,而不是遷就它 34.5 藉助規範集中注意力 34.6 根據問題領域的術語做程式設計 34.7 注意落石 34.8 迭代,反反覆覆,一次又一次 34.9 汝當分離軟體與信仰 要點 第 35 章 何處尋找更多資訊 35.1 關於軟體建構的資訊 35.2 建構以外的話題 35.3 期刊 35.4 軟體開發者的閱讀計劃 35.5 參加專業組織 參考文獻
作者簡介 Steve McConnell Steve McConnell 是 Construx Software 公司的首席軟體工程師,負責監督控管軟體工程的實踐。他是軟體工程知識體(SWEBOK)專案建構知識領域的主管。Steve 曾為微軟、波音及西雅圖地區的其他一些公司工作。Steve McConnell 是以下書籍的作者:1996年的《Rapid Development》、1998年《Software Project Survival Guide 》和2004年的《Professional Software Development》。他的優秀著作兩度獲得當年的《Software Development》雜誌的優秀震撼大獎(Jolt Excellence Award)。 Steve 還曾是 SPC 評估專業版的開發領袖,軟體開發生產力大獎(Software Development Productivity award)的獲得者。1998 年《Software Development》的讀者推選 Steve McConnell 為軟體行業最有影響力的三人之一,與 Bill Gates、Linus Torvalds 齊名。Steve 從 Whitman 大學獲得學士學位,並從西雅圖大學獲軟體工程碩士學位。現居住在華盛頓的 Bellevue。 如果您對此書有任何疑問或評論,請與 Steve 聯繫,他的電子郵件信箱是stevemcc@construx.com,也可透過 www.stevemcconnell.com 與他聯繫。
客服公告
热门活动
订阅电子报