C++20代碼整潔之道:可持續(xù)軟件開發(fā)模式實(shí)踐(原書第2版)
-
>
決戰(zhàn)行測5000題(言語理解與表達(dá))
-
>
軟件性能測試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈(zèng)1DVD.含語音視頻教學(xué)+辦公模板+PDF電子書)
C++20代碼整潔之道:可持續(xù)軟件開發(fā)模式實(shí)踐(原書第2版) 版權(quán)信息
- ISBN:9787111725268
- 條形碼:9787111725268 ; 978-7-111-72526-8
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
C++20代碼整潔之道:可持續(xù)軟件開發(fā)模式實(shí)踐(原書第2版) 本書特色
資深C++工程師20余年實(shí)踐經(jīng)驗(yàn)分享,CSDN論壇C++版主領(lǐng)銜翻譯,助你掌握高效的現(xiàn)代C++編程法則
C++20代碼整潔之道:可持續(xù)軟件開發(fā)模式實(shí)踐(原書第2版) 內(nèi)容簡介
本書全面更新至C++20,介紹如何使用現(xiàn)代C++編寫可維護(hù)、可擴(kuò)展和可持久的軟件。對于每一個(gè)對編寫整潔的C++代碼感興趣的開發(fā)人員、軟件架構(gòu)師或團(tuán)隊(duì)領(lǐng)導(dǎo)來說,這本書都是必需的。如果你想自學(xué)編寫整潔的C++代碼,本書也正是你需要的。本書旨在幫助所有級別的C++開發(fā)人員編寫可理解的、靈活的、可維護(hù)的和高效的C++代碼。即使是經(jīng)驗(yàn)豐富的C++開發(fā)人員,也將受益匪淺。
C++20代碼整潔之道:可持續(xù)軟件開發(fā)模式實(shí)踐(原書第2版) 目錄
1.1 軟件熵2
1.2 為什么使用C 3
1.3 整潔的代碼4
1.4 C 11—新時(shí)代的開始5
1.5 本書適合的讀者6
1.6 本書使用的約定6
1.6.1 擴(kuò)展內(nèi)容7
1.6.2 注意事項(xiàng)、提示和警告7
1.6.3 示例代碼7
1.7 相關(guān)網(wǎng)站和代碼庫8
1.8 UML圖9
第2章 構(gòu)建安全體系10
2.1 測試的必要性10
2.2 測試入門12
2.3 單元測試14
2.4 關(guān)于質(zhì)量保證16
2.5 良好單元測試的原則16
2.5.1 單元測試代碼的質(zhì)量16
2.5.2 單元測試的命名17
2.5.3 單元測試的獨(dú)立性18
2.5.4 一個(gè)測試一個(gè)斷言19
2.5.5 單元測試環(huán)境的獨(dú)立初始化20
2.5.6 不對Getter和Setter做單元測試20
2.5.7 不對第三方代碼做單元測試21
2.5.8 不對外部系統(tǒng)做單元測試21
2.5.9 如何處理數(shù)據(jù)庫的訪問21
2.5.10 不要混淆測試代碼和產(chǎn)品代碼22
2.5.11 測試必須快速執(zhí)行24
2.5.12 如何設(shè)計(jì)測試的輸入數(shù)據(jù)25
2.5.13 測試替身27
第3章 原則31
3.1 什么是原則31
3.2 保持簡單和直接原則32
3.3 不需要原則33
3.4 避免復(fù)制原則33
3.4.1 關(guān)于避免復(fù)制原則的知識34
3.4.2 構(gòu)建抽象有時(shí)很困難34
3.5 信息隱藏原則37
3.6 高內(nèi)聚原則40
3.7 松耦合原則42
3.8 小心優(yōu)化原則45
3.9 少驚訝原則46
3.10 童子軍原則46
第4章 C 代碼整潔的基本規(guī)范48
4.1 良好的命名49
4.1.1 名稱應(yīng)該不言自明50
4.1.2 使用領(lǐng)域中的名稱52
4.1.3 選擇適當(dāng)抽象級別的名稱53
4.1.4 避免冗余的名稱54
4.1.5 避免晦澀難懂的縮寫54
4.1.6 避免匈牙利命名法和
命名前綴55
4.1.7 避免相同的名稱用于
不同的用途57
4.2 注釋57
4.2.1 讓寫代碼像講故事一樣57
4.2.2 不要為易懂的代碼寫注釋58
4.2.3 不要通過注釋禁用代碼59
4.2.4 不要寫塊注釋59
4.2.5 特殊情況的注釋是有用的62
4.3 函數(shù)66
4.3.1 只做一件事情68
4.3.2 讓函數(shù)盡可能小69
4.3.3 函數(shù)命名70
4.3.4 使用容易理解的名稱71
4.3.5 函數(shù)的參數(shù)和返回值72
4.4 C 項(xiàng)目中的C風(fēng)格代碼83
4.4.1 使用C 的string和stream來
替代C風(fēng)格的char*83
4.4.2 避免使用printf()、sprintf()、
gets()等85
4.4.3 使用標(biāo)準(zhǔn)庫的容器而不是使用
C風(fēng)格數(shù)組88
4.4.4 使用C 類型轉(zhuǎn)換代替C風(fēng)格
類型轉(zhuǎn)換91
4.4.5 避免使用宏92
第5章 現(xiàn)代C 的高級概念95
5.1 資源管理95
5.1.1 資源申請即初始化97
5.1.2 智能指針98
5.1.3 避免顯式的new和delete104
5.1.4 管理專有資源105
5.2 move語義106
5.2.1 什么是move語義107
5.2.2 左值和右值的關(guān)系108
5.2.3 右值引用109
5.2.4 不要濫用move語義111
5.2.5 零原則111
5.3 編譯器是你的搭檔115
5.3.1 自動(dòng)類型推導(dǎo)116
5.3.2 編譯時(shí)的計(jì)算119
5.3.3 模板變量121
5.4 不允許出現(xiàn)未定義行為123
5.5 Type-Rich編程124
5.6 熟悉使用的庫132
5.6.1 熟練使用133
5.6.2 使用Boost140
5.6.3 應(yīng)該了解的其他庫141
5.7 正確處理異常和錯(cuò)誤142
5.7.1 防患于未然142
5.7.2 從字面上講,例外就是異常146
5.7.3 如果不能恢復(fù),則盡快退出147
5.7.4 用戶自定義異常148
5.7.5 值類型拋出,常量引用類型
捕獲149
5.7.6 注意catch的正確順序150
5.8 接口設(shè)計(jì)150
5.8.1 Attribute151
5.8.2 concept:模板參數(shù)的要求155
第6章 模塊化編程159
6.1 模塊化的基礎(chǔ)160
6.1.1 模塊設(shè)計(jì)的原則160
6.1.2 小結(jié)162
6.2 面向?qū)ο?63
6.2.1 面向?qū)ο笏枷?64
6.2.2 類的設(shè)計(jì)原則165
6.3 模塊200
6.3.1 #include的缺點(diǎn)200
6.3.2 使用模塊來解決202
6.3.3 底層實(shí)現(xiàn)203
6.3.4 使用模塊的三種方案204
6.3.5 模塊的影響207
第7章 函數(shù)式編程208
7.1 什么是函數(shù)式編程209
7.1.1 什么是函數(shù)210
7.1.2 純函數(shù)和非純函數(shù)211
7.2 現(xiàn)代C 中的函數(shù)式編程212
7.2.1 基于模板的函數(shù)式編程212
7.2.2 仿函數(shù)214
7.2.3 綁定包裝和函數(shù)包裝221
7.2.4 Lambda表達(dá)式223
7.2.5 通用Lambda表達(dá)式225
7.2.6 Lambda模板226
7.3 高級函數(shù)228
7.4 管道與范圍適配器233
7.5 整潔的函數(shù)式編程代碼236
第8章 測試驅(qū)動(dòng)開發(fā)238
8.1 傳統(tǒng)單元測試的缺點(diǎn)239
8.2 作為顛覆者的測試驅(qū)動(dòng)開發(fā)240
8.2.1 TDD的流程240
8.2.2 TDD示例:羅馬數(shù)字的
C++20代碼整潔之道:可持續(xù)軟件開發(fā)模式實(shí)踐(原書第2版) 作者簡介
斯蒂芬;羅斯(Stephan Roth),德國咨詢公司oose Innovative Informatik eG的系統(tǒng)與軟件工程培訓(xùn)師、顧問。在加入oose之前,他在無線電偵察及通信情報(bào)系統(tǒng)領(lǐng)域從事了多年的軟件開發(fā)、軟件架構(gòu)和系統(tǒng)工程的工作,其間開發(fā)過大量復(fù)雜的應(yīng)用程序,尤其是對性能要求很高的分布式系統(tǒng),以及使用C++和其他編程語言的圖形用戶界面系統(tǒng)。他還加入了系統(tǒng)工程社區(qū),是軟件工藝運(yùn)動(dòng)的積極支持者,關(guān)注整潔代碼開發(fā)的原則和實(shí)踐。 連少華,先后就職于中興通訊、深交所、金證股份等知名公司,現(xiàn)就職于海外某知名金融科技公司。熱衷于軟件事業(yè),技術(shù)棧廣泛,主要涉及C++、C#、Java、Python和Golang等,對架構(gòu)設(shè)計(jì)和操作系統(tǒng)底層原理及實(shí)現(xiàn)有深入的理解和實(shí)踐,熟悉Linux內(nèi)核,曾經(jīng)給開源庫貢獻(xiàn)過代碼和PR。在CSDN論壇擔(dān)任C++版塊的版主;目前在金融行業(yè)從事證券交易系統(tǒng)的設(shè)計(jì)和開發(fā)工作,包括但不限于交易系統(tǒng)、行情系統(tǒng)、風(fēng)控系統(tǒng)、估值系統(tǒng)、賬戶系統(tǒng)、數(shù)據(jù)中臺(tái)、量化對沖基金相關(guān)系統(tǒng)等,一直從事一線編碼工作,是一名典型的技術(shù)控。 李國誠,畢業(yè)于清華大學(xué),從事C++后臺(tái)開發(fā)十余載,低延時(shí)交易系統(tǒng)專家,量化對沖基金技術(shù)主管。 吳毓龍,中國科學(xué)技術(shù)大學(xué)碩士,曾就職于ASML、華為2012實(shí)驗(yàn)室,對量化策略、數(shù)值計(jì)算、機(jī)器學(xué)習(xí)、圖像分類/檢測、C++、Python等相關(guān)技術(shù)有深入的研究,積累了豐富的實(shí)踐經(jīng)驗(yàn),F(xiàn)就職于某知名金融科技公司。 謝鄭逸,畢業(yè)于華南理工大學(xué),曾就職于騰訊、百度等一線互聯(lián)網(wǎng)公司,有多年C++軟件設(shè)計(jì)和開發(fā)經(jīng)驗(yàn),目前專注于科技金融行業(yè)。技術(shù)工作日常應(yīng)用英語,多鄰國連勝精英俱樂部VIP。日常夜跑三公里。
- >
我與地壇
- >
巴金-再思錄
- >
名家?guī)阕x魯迅:朝花夕拾
- >
名家?guī)阕x魯迅:故事新編
- >
月亮虎
- >
朝聞道
- >
新文學(xué)天穹兩巨星--魯迅與胡適/紅燭學(xué)術(shù)叢書(紅燭學(xué)術(shù)叢書)
- >
史學(xué)評論