最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C++20代碼整潔之道:可持續(xù)軟件開(kāi)發(fā)模式實(shí)踐(原書(shū)第2版) [Clean C++20]

2023-07-29 21:02 作者:流浪在銀河邊緣的阿強(qiáng)  | 我要投稿

鏈接:https://pan.baidu.com/s/17ohlH9TwpTtFKB-ihQKibQ?pwd=yzo3?

提取碼:yzo3

*資深C++工程師20余年實(shí)踐經(jīng)驗(yàn)分享,助你掌握高效的現(xiàn)代C++編程法則
*暢銷(xiāo)書(shū)升級(jí)版,全面更新至C++20,既適用于“綠地項(xiàng)目”,又適用于“棕地項(xiàng)目”

*英文原書(shū):Clean C++20: Sustainable Software Development Patterns and Best Practices, Second Edition


內(nèi)容簡(jiǎn)介

使用現(xiàn)代C++可以編寫(xiě)可維護(hù)、可擴(kuò)展且持久的軟件。這本書(shū)針對(duì)最近發(fā)布的C++20標(biāo)準(zhǔn)進(jìn)行了更新,對(duì)于每個(gè)想精心設(shè)計(jì)C++代碼并希望節(jié)省開(kāi)發(fā)成本的開(kāi)發(fā)人員、軟件架構(gòu)師或團(tuán)隊(duì)負(fù)責(zé)人來(lái)說(shuō),這本書(shū)都是必讀之物。如果你想自學(xué)編寫(xiě)更好的C++代碼的方法,那么本書(shū)正是你需要的。它是為所有技能水平的C++開(kāi)發(fā)人員編寫(xiě)的,通過(guò)示例展示了如何編寫(xiě)易于理解、靈活、可維護(hù)且高效的C++代碼。即使對(duì)于經(jīng)驗(yàn)豐富的C++開(kāi)發(fā)人員來(lái)說(shuō),本書(shū)中的一些要點(diǎn)和數(shù)據(jù)點(diǎn)也很有用。


如果不認(rèn)真維護(hù)代碼庫(kù),就會(huì)遇到很多問(wèn)題,代碼會(huì)變得混亂、不可維護(hù),使用任何語(yǔ)言都如此。但是,C++項(xiàng)目的代碼尤其容易變得混亂,導(dǎo)致維護(hù)代碼如同噩夢(mèng)。有很多C++代碼看起來(lái)好像是在20世紀(jì)80年代編寫(xiě)的一樣,完全忽略了編寫(xiě)現(xiàn)代C++代碼應(yīng)遵循的原則和良好實(shí)踐。似乎C++開(kāi)發(fā)人員已經(jīng)被那些宣揚(yáng)軟件工藝和整潔代碼原則的人遺忘了。網(wǎng)絡(luò)上到處都是C++代碼示例,它們可能運(yùn)行得很快,很精巧,并且經(jīng)過(guò)了高度優(yōu)化,但其開(kāi)發(fā)人員完全忽略了編寫(xiě)良好代碼的基本原則。本書(shū)將解釋如何避免這種情況以及如何充分利用 C++代碼,幫助你高效地編寫(xiě)代碼,更重要的是,讓你帶著樂(lè)趣去編寫(xiě)。

通過(guò)閱讀本書(shū),你將能夠:
*獲得用C++編寫(xiě)整潔代碼的原則和規(guī)則;
*執(zhí)行測(cè)試驅(qū)動(dòng)開(kāi)發(fā) (TDD);
*更好地模塊化C++代碼庫(kù);
*發(fā)現(xiàn)和使用C++設(shè)計(jì)模式與習(xí)慣用法;
*以面向?qū)ο蟮娘L(fēng)格和函數(shù)式編程風(fēng)格編寫(xiě)C++代碼。

作者簡(jiǎn)介

作者簡(jiǎn)介

斯蒂芬;羅斯
(Stephan Roth)
德國(guó)咨詢(xún)公司oose Innovative Informatik eG的系統(tǒng)與軟件工程培訓(xùn)師、顧問(wèn)。在加入oose之前,他在無(wú)線(xiàn)電偵察及通信情報(bào)系統(tǒng)領(lǐng)域從事了多年的軟件開(kāi)發(fā)、軟件架構(gòu)和系統(tǒng)工程的工作,其間開(kāi)發(fā)過(guò)大量復(fù)雜的應(yīng)用程序,尤其是對(duì)性能要求很高的分布式系統(tǒng),以及使用C++和其他編程語(yǔ)言的圖形用戶(hù)界面系統(tǒng)。他還加入了系統(tǒng)工程社區(qū),是軟件工藝運(yùn)動(dòng)的積極支持者,關(guān)注整潔代碼開(kāi)發(fā)的原則和實(shí)踐。


譯者簡(jiǎn)介


連少華
先后就職于中興通訊、深交所、金證股份等知名公司,現(xiàn)就職于海外某知名金融科技公司。熱衷于軟件事業(yè),技術(shù)棧廣泛,主要涉及C++、C#、Java、Python和Golang等,對(duì)架構(gòu)設(shè)計(jì)和操作系統(tǒng)底層原理及實(shí)現(xiàn)有深入的理解和實(shí)踐,熟悉Linux內(nèi)核,曾經(jīng)給開(kāi)源庫(kù)貢獻(xiàn)過(guò)代碼和PR。在CSDN論壇擔(dān)任C++版塊的版主;目前在金融行業(yè)從事證券交易系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)工作,包括但不限于交易系統(tǒng)、行情系統(tǒng)、風(fēng)控系統(tǒng)、估值系統(tǒng)、賬戶(hù)系統(tǒng)、數(shù)據(jù)中臺(tái)、量化對(duì)沖基金相關(guān)系統(tǒng)等,一直從事一線(xiàn)編碼工作,是一名典型的技術(shù)控。

李國(guó)誠(chéng)
畢業(yè)于清華大學(xué),從事C++后臺(tái)開(kāi)發(fā)十余載,低延時(shí)交易系統(tǒng)專(zhuān)家,量化對(duì)沖基金技術(shù)主管。

吳毓龍
中國(guó)科學(xué)技術(shù)大學(xué)碩士,曾就職于ASML、華為2012實(shí)驗(yàn)室,對(duì)量化策略、數(shù)值計(jì)算、機(jī)器學(xué)習(xí)、圖像分類(lèi)/檢測(cè)、C++、Python等相關(guān)技術(shù)有深入的研究,積累了豐富的實(shí)踐經(jīng)驗(yàn)?,F(xiàn)就職于某知名金融科技公司。

謝鄭逸
畢業(yè)于華南理工大學(xué),曾就職于騰訊、百度等一線(xiàn)互聯(lián)網(wǎng)公司,有多年C++軟件設(shè)計(jì)和開(kāi)發(fā)經(jīng)驗(yàn),目前專(zhuān)注于科技金融行業(yè)。技術(shù)工作日常應(yīng)用英語(yǔ),多鄰國(guó)連勝精英俱樂(lè)部VIP。日常夜跑三公里。

目錄

第1章 引言1

1.1 軟件熵2

1.2 為什么使用C++3

1.3 整潔的代碼4

1.4 C++11—新時(shí)代的開(kāi)始5

1.5 本書(shū)適合的讀者6

1.6 本書(shū)使用的約定6

1.6.1 擴(kuò)展內(nèi)容7

1.6.2 注意事項(xiàng)、提示和警告7

1.6.3 示例代碼7

1.7 相關(guān)網(wǎng)站和代碼庫(kù)8

1.8 UML圖9


第2章 構(gòu)建安全體系10

2.1 測(cè)試的必要性10

2.2 測(cè)試入門(mén)12

2.3 單元測(cè)試14

2.4 關(guān)于質(zhì)量保證16

2.5 良好單元測(cè)試的原則16

2.5.1 單元測(cè)試代碼的質(zhì)量16

2.5.2 單元測(cè)試的命名17

2.5.3 單元測(cè)試的獨(dú)立性18

2.5.4 一個(gè)測(cè)試一個(gè)斷言19

2.5.5 單元測(cè)試環(huán)境的獨(dú)立初始化20

2.5.6 不對(duì)Getter和Setter做單元測(cè)試20

2.5.7 不對(duì)第三方代碼做單元測(cè)試21

2.5.8 不對(duì)外部系統(tǒng)做單元測(cè)試21

2.5.9 如何處理數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)21

2.5.10 不要混淆測(cè)試代碼和產(chǎn)品代碼22

2.5.11 測(cè)試必須快速執(zhí)行24

2.5.12 如何設(shè)計(jì)測(cè)試的輸入數(shù)據(jù)25

2.5.13 測(cè)試替身27


第3章 原則31

3.1 什么是原則31

3.2 保持簡(jiǎn)單和直接原則32

3.3 不需要原則33

3.4 避免復(fù)制原則33

3.4.1 關(guān)于避免復(fù)制原則的知識(shí)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 名稱(chēng)應(yīng)該不言自明50

4.1.2 使用領(lǐng)域中的名稱(chēng)52

4.1.3 選擇適當(dāng)抽象級(jí)別的名稱(chēng)53

4.1.4 避免冗余的名稱(chēng)54

4.1.5 避免晦澀難懂的縮寫(xiě)54

4.1.6 避免匈牙利命名法和

   命名前綴55

4.1.7 避免相同的名稱(chēng)用于

   不同的用途57

4.2 注釋57

4.2.1 讓寫(xiě)代碼像講故事一樣57

4.2.2 不要為易懂的代碼寫(xiě)注釋58

4.2.3 不要通過(guò)注釋禁用代碼59

4.2.4 不要寫(xiě)塊注釋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 使用容易理解的名稱(chēng)71

4.3.5 函數(shù)的參數(shù)和返回值72

4.4 C++項(xiàng)目中的C風(fēng)格代碼83

4.4.1 使用C++的string和stream來(lái)

   替代C風(fēng)格的char*83

4.4.2 避免使用printf()、sprintf()、

   gets()等85

4.4.3 使用標(biāo)準(zhǔn)庫(kù)的容器而不是使用

   C風(fēng)格數(shù)組88

4.4.4 使用C++類(lèi)型轉(zhuǎn)換代替C風(fēng)格

   類(lèi)型轉(zhuǎn)換91

4.4.5 避免使用宏92


第5章 現(xiàn)代C++的高級(jí)概念95

5.1 資源管理95

5.1.1 資源申請(qǐng)即初始化97

5.1.2 智能指針98

5.1.3 避免顯式的new和delete104

5.1.4 管理專(zhuān)有資源105

5.2 move語(yǔ)義106

5.2.1 什么是move語(yǔ)義107

5.2.2 左值和右值的關(guān)系108

5.2.3 右值引用109

5.2.4 不要濫用move語(yǔ)義111

5.2.5 零原則111

5.3 編譯器是你的搭檔115

5.3.1 自動(dòng)類(lèi)型推導(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 熟悉使用的庫(kù)132

5.6.1 熟練使用133

5.6.2 使用Boost140

5.6.3 應(yīng)該了解的其他庫(kù)141

5.7 正確處理異常和錯(cuò)誤142

5.7.1 防患于未然142

5.7.2 從字面上講,例外就是異常146

5.7.3 如果不能恢復(fù),則盡快退出147

5.7.4 用戶(hù)自定義異常148

5.7.5 值類(lèi)型拋出,常量引用類(lèi)型

   捕獲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 類(lèi)的設(shè)計(jì)原則165

6.3 模塊200

6.3.1 #include的缺點(diǎn)200

6.3.2 使用模塊來(lái)解決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 高級(jí)函數(shù)228

7.4 管道與范圍適配器233

7.5 整潔的函數(shù)式編程代碼236


第8章 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)238

8.1 傳統(tǒng)單元測(cè)試的缺點(diǎn)239

8.2 作為顛覆者的測(cè)試驅(qū)動(dòng)開(kāi)發(fā)240

8.2.1 TDD的流程240

8.2.2 TDD示例:羅馬數(shù)字的

   代碼招式243

8.3 TDD的優(yōu)勢(shì)261

8.4 不應(yīng)該使用TDD的場(chǎng)合262


第9章 設(shè)計(jì)模式和習(xí)慣用法266

9.1 設(shè)計(jì)原則與設(shè)計(jì)模式267

9.2 常見(jiàn)設(shè)計(jì)模式及應(yīng)用場(chǎng)景267

9.2.1 依賴(lài)注入模式268

9.2.2 適配器模式280

9.2.3 策略模式281

9.2.4 命令模式286

9.2.5 命令處理模式289

9.2.6 組合模式293

9.2.7 觀察者模式296

9.2.8 工廠模式300

9.2.9 門(mén)面模式302

9.2.10 貨幣類(lèi)模式304

9.2.11 特例模式306

9.3 什么是習(xí)慣用法310

附錄 UML簡(jiǎn)要指南321

參考文獻(xiàn)338


查看全部↓

前言/序言

Translator’s Words 譯者序

首先,歡迎入坑!自己選擇的路,跪著也要走到盡頭。C++是王者的語(yǔ)言,是強(qiáng)者的工具,如果沒(méi)有披荊斬棘的勇氣,建議你盡快學(xué)習(xí)其他簡(jiǎn)單的語(yǔ)言。

最近幾年,陸陸續(xù)續(xù)出現(xiàn)了一些新的計(jì)算機(jī)編程語(yǔ)言,有些語(yǔ)言甚至在誕生之初就被程序員們打上了替代C++語(yǔ)言的標(biāo)簽。同時(shí),有些程序員也會(huì)過(guò)度關(guān)注語(yǔ)言熱度排行榜,認(rèn)為學(xué)習(xí)C++語(yǔ)言已經(jīng)沒(méi)有前途了,真的是這樣嗎?我們不妨從幾個(gè)方面來(lái)簡(jiǎn)單地分析一下。



C++20代碼整潔之道:可持續(xù)軟件開(kāi)發(fā)模式實(shí)踐(原書(shū)第2版) [Clean C++20]的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
三江| 勐海县| 安岳县| 诸暨市| 高安市| 呼和浩特市| 赣榆县| 鄂尔多斯市| 定南县| 武定县| 油尖旺区| 海门市| 盘锦市| 滁州市| 兰考县| 汕尾市| 鸡东县| 肥乡县| 壤塘县| 嵊泗县| 伊宁市| 五华县| 新龙县| 五莲县| 桃园县| 平顶山市| 房产| 焦作市| 崇信县| 永泰县| 健康| 汾西县| 吴川市| 延庆县| 信阳市| 洛南县| 靖宇县| 贵溪市| 潼南县| 康保县| 宣城市|