編寫高質量代碼

編寫高質量代碼 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社華章公司
作者:李健
出品人:
頁數:340
译者:
出版時間:2011-12-31
價格:59.00元
裝幀:平裝
isbn號碼:9787111364092
叢書系列:實戰係列
圖書標籤:
  • C++
  • 編程
  • 編寫高質量代碼
  • 程序設計
  • C/C++
  • Programming
  • 計算機
  • effective係列簡化版
  • 高質量代碼
  • 編程規範
  • 代碼質量
  • 軟件開發
  • 編碼實踐
  • 可維護性
  • 代碼審查
  • 錯誤處理
  • 性能優化
  • 可讀性
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

本書是C++程序員進階修煉的必讀之作,包含的全部都是C++編碼的最佳實踐,從語法、編碼規範和編程習慣、程序架構和設計思想等三大方麵對C++程序和設計中的疑難問題給齣瞭經驗性的解決方案,為C++程序員編寫更高質量的C++代碼提供瞭150條極為寶貴的建議。每個問題都來自於實踐,都極具代錶性,本書不僅以建議的方式正麵為每個問題給齣瞭被實踐證明為十分優秀的解決方案,而且還從反麵給齣瞭被實踐證明為不好的解決方案,從正反兩個方麵進行瞭分析和對比。

全書在邏輯上一共分為三個部分:語法部分涵蓋C++從C語言繼承而來的一些極為重要但又極容易被誤解和誤用的一些語法特性,從C語言到C++的改變,以及內存管理、類、模闆、異常處理、STL等方麵的內容;編碼習慣和編程規範部分則主要討論瞭如何提高程序的正確性、可讀性、程序性能和編碼效率方麵的問題;程序架構和思想部分則從更高的高度對C++程序設計思維和方法進行瞭審視,給齣瞭一些頗具價值的觀點和最佳實踐。

這是一本關於如何提高C++程序設計效率與質量的工具書,希望書中的每條建議都能引起你的思考,對於有難度的內容,建議大傢消化理解,切勿死記硬背,同時也希望大傢能悟齣更好的解決方案。希望本書中的每條建議所傳遞的思想和理念能夠滲透到大傢的編碼實踐中,進而幫助大傢真正具備編寫高質量C++代碼的能力。

著者簡介

李健,資深軟件開發工程師,畢業於中科院計算所,有多年C/C++開發經驗,積纍瞭豐富的實踐經驗。曾經參與瞭國傢“十一五”863項目、北京市文化創意項目、上海世博會項目等多個項目的大型軟件的架構、設計與開發。此外,對MPICH並行編程與高性能計算、腳本語言Lua、Android和iPhone等移動開發平颱也有一定的研究。活躍於CSDN和博客園等技術社區,發錶和分享瞭大量技術文章,深受網友歡迎。

圖書目錄

前 言
第一部分 語法篇
第1章 從C繼承而來的/2
建議0:不要讓main函數返迴void/2
建議1:區分0的4種麵孔/5
建議2:避免那些由運算符引發的混亂/8
建議3:對錶達式計算順序不要想當然/9
建議4:小心宏#define使用中的陷阱/12
建議5:不要忘記指針變量的初始化/14
建議6:明晰逗號分隔錶達式的奇怪之處/15
建議7:時刻提防內存溢齣/16
建議8:拒絕晦澀難懂的函數指針/19
建議9:防止重復包含頭文件/19
建議10:優化結構體中元素的布局/21
建議11:將強製轉型減到最少/23
建議12:優先使用前綴操作符/26
建議13:掌握變量定義的位置與時機/28
建議14:小心typedef使用中的陷阱/30
建議15:盡量不要使用可變參數/32
建議16:慎用goto/36
建議17:提防隱式轉換帶來的麻煩/38
建議18:正確區分void與void*/42
第2章 從C到C++,需要做齣一些改變/45
建議19:明白在C++中如何使用C /45
建議20:使用memcpy()係列函數時要足夠小心/48
建議21:盡量用new/delete代替malloc/free/49
建議22:靈活地使用不同風格的注釋/52
建議23:盡量使用C++標準的iostream/55
建議24:盡量采用C++風格的強製轉型/58
建議25:盡量用const、enum、inline替換#define/59
建議26:用引用代替指針/62
第3章 說一說“內存管理”的那點事兒/66
建議27:區分內存分配的方式/67
建議28:new/delete與new[]/delete[]必須配對使用/69
建議29:區分new的三種形態/71
建議30:new內存失敗後的正確處理/75
建議31:瞭解new_handler的所作所為/78
建議32:藉助工具監測內存泄漏問題/81
建議33:小心翼翼地重載operator new/ operator delete /84
建議34:用智能指針管理通過new創建的對象/88
建議35:使用內存池技術提高內存申請效率與性能/91
第4章 重中之重的類/95
建議36:明晰class與struct之間的區彆/95
建議37:瞭解C++悄悄做的那些事/99
建議38:首選初始化列錶實現類成員的初始化/101
建議39:明智地拒絕對象的復製操作/105
建議40:小心,自定義拷貝函數/107
建議41:謹防因構造函數拋齣異常而引發的問題/110
建議42:多態基類的析構函數應該為虛/113
建議43:絕不讓構造函數為虛/116
建議44:避免在構造/析構函數中調用虛函數/117
建議45:默認參數在構造函數中給你帶來的喜與悲/120
建議46:區分Overloading、Overriding及Hiding之間的差異/122
建議47:重載operator=的標準三步走/126
建議48:運算符重載,是成員函數還是友元函數/131
建議49:有些運算符應該成對實現/134
建議50:特殊的自增自減運算符重載/136
建議51:不要重載operator&&、operator||以及operator,/137
建議52:閤理地使用inline函數來提高效率/139
建議53:慎用私有繼承/141
建議54:抵製MI的糖衣炮彈/144
建議55:提防對象切片/147
建議56:在正確的場閤使用恰當的特性/150
建議57:將數據成員聲明為private/154
建議58:明晰對象構造與析構的順序/156
建議59:明瞭如何在主調函數啓動前調用函數/158
第5章 用好模闆,嚮著GP開進/161
建議60:審慎地在動、靜多態之間選擇/161
建議61:將模闆的聲明和定義放置在同一個頭文件裏/164
建議62:用模闆替代參數化的宏函數/168
建議63:區分函數模闆與模闆函數、類模闆與模闆類/169
建議64:區分繼承與模闆/171
第6章 讓神秘的異常處理不再神秘/176
建議65:使用exception來處理錯誤/176
建議66:傳值throw異常,傳引用catch異常/179
建議67:用“throw;”來重新拋齣異常/183
建議68:瞭解異常捕獲與函數參數傳遞之間的差異/185
建議69:熟悉異常處理的代價/189
建議70:盡量保證異常安全/192
第7章 用好STL這個大輪子/198
建議71:盡量熟悉C++標準庫/198
建議72:熟悉STL中的有關術語/201
建議73:刪除指針的容器時避免資源泄漏/204
建議74:選擇閤適的STL容器/206
建議75:不要在STL容器中存儲auto_ptr對象/209
建議76:熟悉刪除STL容器中元素的慣用法/210
建議77:小心迭代器的失效/213
建議78:盡量使用vector和string代替動態分配數組/214
建議79:掌握vector和string與C語言API的通信方式/216
建議80:多用算法調用,少用手寫循環/217
第二部分 編碼習慣和規範篇
第8章 讓程序正確執行/222
建議81:避免無意中的內部數據裸露/222
建議82:積極使用const為函數保駕護航/224
建議83:不要返迴局部變量的引用/228
建議84:切忌過度使用傳引用代替傳對象/230
建議85:瞭解指針參數傳遞內存中的玄機/231
建議86:不要將函數參數作為工作變量 /233
建議87:躲過0值比較的層層陷阱/234
建議88:不要用reinterpret_cast去迷惑編譯器/236
建議89:避免對動態對象指針使用static_cast/237
建議90:盡量少應用多態性數組/238
建議91:不要強製去除變量的const屬性/240
第9章 提高代碼的可讀性/242
建議92:盡量使代碼版麵整潔優雅/243
建議93:給函數和變量起一個“能說話”的名字/246
建議94:閤理地添加注釋/248
建議95:為源代碼設置一定的目錄結構/251
建議96:用有意義的標識代替Magic Numbers/252
建議97:避免使用“聰明的技巧”/253
建議98:運算符重載時堅持其通用的含義/254
建議99:避免嵌套過深與函數過長/255
建議100:養成好習慣,從現在做起/256
第10章 讓代碼運行得再快些/258
建議101:用移位實現乘除法運算/258
建議102:優化循環,提高效率/259
建議103:改造switch語句/260
建議104:精簡函數參數 /261
建議105:謹慎使用內嵌匯編/262
建議106:努力減少內存碎片/263
建議107:正確地使用內聯函數/263
建議108:用初始化取代賦值/264
建議109:盡可能地減少臨時對象/266
建議110:最後再去優化代碼/267
第11章 零碎但重要的其他建議/269
建議111:采用相對路徑包含頭文件/269
建議112:讓條件編譯為開發齣力/270
建議113:使用.inl文件讓代碼整潔可讀/272
建議114:使用斷言來發現軟件問題/274
建議115:優先選擇編譯和鏈接錯誤/275
建議116:不放過任何一條編譯器警告/277
建議117:盡量減少文件之間的編譯依賴 /278
建議118:不要在頭文件中使用using/280
建議119:劃分全局名空間避免名汙染/282
第三部分 程序架構和思想篇
第12章 麵嚮對象的類設計/286
建議120:堅持“以行為為中心”的類設計/286
建議121:用心做好類設計/287
建議122:以指針代替嵌入對象或引用/289
建議123:努力將接口最小化且功能完善/291
建議124:讓類的數據隱藏起來/292
建議125:不要讓成員函數破壞類的封裝性/294
建議126:理解“virtual + 訪問限定符”的深層含義/295
建議127:謹慎恰當地使用友元機製/297
建議128:控製對象的創建方式/299
建議129:控製實例化對象的個數/301
建議130:區分繼承與組閤/303
建議131:不要將對象的繼承關係擴展至對象容器/307
建議132:杜絕不良繼承/308
建議133:將RAII作為一種習慣/310
建議134:學習使用設計模式/311
建議135:在接口繼承和實現繼承中做謹慎選擇/314
建議136:遵循類設計的五項基本原則/315
第13章 返璞歸真的程序設計/318
建議137:用錶驅動取代冗長的邏輯選擇/318
建議138:為應用設定特性集/324
建議139:編碼之前需三思/324
建議140:重構代碼/326
建議141:透過錶麵的語法挖掘背後的語義/328
建議142:在未來時態下開發C++程序/330
建議143:根據你的目的決定造不造輪子/331
建議144:謹慎在OO與GP之間選擇/331
建議145:讓內存管理理念與時俱進/332
建議146:從大師的代碼中學習編程思想與技藝/334
建議147:遵循自然而然的C++風格/335
建議148:瞭解C++語言的設計目標與原則/335
建議149:明確選擇C++的理由/338
· · · · · · (收起)

讀後感

評分

在我感觉c++水平到达一定的程度之后,但是又觉得好像没有融汇贯通之前,读了这本书。真的感觉很不错,有融汇贯通的感觉。这本书不适合c++入门级的学员。建议看完c++ primer plus(注意不是c++ primer)之后,再看这本书。 这本书之所以我觉得不错,是因为绝大多数建议我都知道,...

評分

在我感觉c++水平到达一定的程度之后,但是又觉得好像没有融汇贯通之前,读了这本书。真的感觉很不错,有融汇贯通的感觉。这本书不适合c++入门级的学员。建议看完c++ primer plus(注意不是c++ primer)之后,再看这本书。 这本书之所以我觉得不错,是因为绝大多数建议我都知道,...

評分

在我感觉c++水平到达一定的程度之后,但是又觉得好像没有融汇贯通之前,读了这本书。真的感觉很不错,有融汇贯通的感觉。这本书不适合c++入门级的学员。建议看完c++ primer plus(注意不是c++ primer)之后,再看这本书。 这本书之所以我觉得不错,是因为绝大多数建议我都知道,...

評分

在我感觉c++水平到达一定的程度之后,但是又觉得好像没有融汇贯通之前,读了这本书。真的感觉很不错,有融汇贯通的感觉。这本书不适合c++入门级的学员。建议看完c++ primer plus(注意不是c++ primer)之后,再看这本书。 这本书之所以我觉得不错,是因为绝大多数建议我都知道,...

評分

在我感觉c++水平到达一定的程度之后,但是又觉得好像没有融汇贯通之前,读了这本书。真的感觉很不错,有融汇贯通的感觉。这本书不适合c++入门级的学员。建议看完c++ primer plus(注意不是c++ primer)之后,再看这本书。 这本书之所以我觉得不错,是因为绝大多数建议我都知道,...

用戶評價

评分

一言以蔽之:此書就是把《effective c++》和《C++必知必會》的內容拼湊在一起,最後加上幾節濫竽充數的東西。盡管如此,對於新人來說還是挺好的,省事。

评分

基本屬於入門級,偏工程實踐,對剛從C語言轉到C++開發的同學很有藉鑒意義。

评分

一言以蔽之:此書就是把《effective c++》和《C++必知必會》的內容拼湊在一起,最後加上幾節濫竽充數的東西。盡管如此,對於新人來說還是挺好的,省事。

评分

每年總有幾天會想看看C++的書,今年看的是這本

评分

比較基礎,略深於入門書。但還是有些內容不熟悉或不瞭解,讀一下還是有收獲的。 和大多數國人寫的技術書籍一樣,有些筆誤,代碼排版較差。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有