注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑設(shè)計(jì)代碼里的世界觀 通往架構(gòu)師之路

代碼里的世界觀 通往架構(gòu)師之路

代碼里的世界觀 通往架構(gòu)師之路

定 價(jià):¥59.00

作 者: 余葉
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115495235 出版時(shí)間: 1900-01-01 包裝: 平裝
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  本書分為兩大部分,第一部分講述程序員在編寫程序和組織代碼時(shí)遇到的很多通用概念和共同問題,比如程序里的基本元素,如何面向?qū)ο?,如何面向抽象編程,什么是耦合,如何進(jìn)行單元測試等。第二部分講述程序員在編寫代碼時(shí)都會(huì)遇到的思考和選擇,比如程序員的兩種工作模式,如何堅(jiān)持技術(shù)成長,程序員的組織生產(chǎn)方法,程序員的職業(yè)生涯規(guī)劃等。

作者簡介

  余葉,現(xiàn)任IBM架構(gòu)師,曾jiu職于是德科技和中國航信。愛代碼,愛思考。研究過已經(jīng)死亡的MFC,還精通步入頹勢的.NET,之后又在方興未艾的iOS領(lǐng)域做架構(gòu)師,順勢玩了玩Java,了解了服務(wù)端開發(fā)。不知不覺中,前端也積累了一定的經(jīng)驗(yàn)。越做越雜之后,有了個(gè)體面的稱呼“遮羞”:全棧工程師。

圖書目錄

第 1章 程序世界的兩個(gè)基本元素 1

1.1 數(shù)據(jù)和代碼的相互偽裝 1

1.2 數(shù)據(jù)和代碼的關(guān)系 3

1.3 總結(jié) 3

第 2章 用面向?qū)ο蟮姆绞饺ダ斫馐澜纭?

2.1 好的程序員是安徒生 4

2.2 封裝——招兵買馬,等級(jí)森嚴(yán) 5

2.2.1 從單細(xì)胞到高等生物 5

2.2.2 public——對(duì)象的外觀 6

2.2.3 private——水下的冰川 10

2.2.4 protected——內(nèi)外兼修 11

2.2.5 封裝總結(jié) 12

2.3 繼承——快速進(jìn)化 13

2.4 多態(tài)——抽象的基石 15

2.5 總結(jié) 16

第3章 面向抽象編程——玩玩虛的

更健康 17

3.1 抽象最討厭的敵人:new 17

3.2 消滅new的兩件武器 19

3.2.1 控制反轉(zhuǎn)——臟活讓別人去干 19

3.2.2 工廠模式——抽象的基礎(chǔ)設(shè)施 20

3.2.3 new去哪里了呢? 21

3.3 抽象到什么程度? 22

3.4 總結(jié) 23

第4章 耦合其實(shí)無處不在 24

4.1 耦合的種類 24

4.1.1 數(shù)據(jù)之間的耦合 24

4.1.2 函數(shù)之間的耦合 24

4.1.3 數(shù)據(jù)和函數(shù)之間的耦合 25

4.1.4 耦合種類的總結(jié) 26

4.2 耦合中既有敵人也有朋友 26

4.3 壞耦合的原因 28

4.3.1 刻舟求劍 28

4.3.2 “談戀愛”是個(gè)危險(xiǎn)的行為 29

4.3.3 侵占公共資源 29

4.3.4 需求變化——防不勝防 30

4.4 解耦的原則 30

4.4.1 讓模塊邏輯獨(dú)立而完整 30

4.4.2 讓連接橋梁堅(jiān)固而兼容 34

4.5 總結(jié) 35

第5章 數(shù)據(jù)的種類——生命如此多嬌 36

5.1 常用數(shù)據(jù)類型 36

5.1.1 string類型:人機(jī)溝通的

橋梁 36

5.1.2 int類型:多變的萬花筒 37

5.1.3 bool類型:能量巨大的原子 37

5.2 按生命周期劃分?jǐn)?shù)據(jù) 39

5.3 兩個(gè)重要的數(shù)據(jù)容器 40

5.3.1 數(shù)組——容器之王 40

5.3.2 散列表——銀行的保險(xiǎn)柜 41

5.3.3 容器總結(jié) 46

5.4 對(duì)象的種類 46

5.4.1 實(shí)體對(duì)象——光鮮的主角 46

5.4.2 值對(duì)象——配角或道具 46

5.5 描述數(shù)據(jù)的數(shù)據(jù) 47

5.6 總結(jié) 48

第6章 數(shù)據(jù)驅(qū)動(dòng)——把變化抽象成

數(shù)據(jù) 49

6.1 三個(gè)案例 49

6.2 數(shù)據(jù)驅(qū)動(dòng)的好幫手:反射 53

6.2.1 反射是將代碼數(shù)據(jù)化 54

6.2.2 反射也是一把雙刃劍 54

6.2.3 各種語言對(duì)反射的支持 55

6.3 總結(jié) 55

第7章 對(duì)象之間的關(guān)系——父子、

朋友或情人 57

7.1 繼承——父子關(guān)系 57

7.1.1 里氏替換原則——兒子頂替

父親 57

7.1.2 鴕鳥非鳥 58

7.1.3 不聽老人言 60

7.2 組合——朋友關(guān)系 61

7.2.1 組合與繼承的區(qū)別 62

7.2.2 組合和繼承的聯(lián)系 63

7.2.3 策略模式——組裝車間 64

7.2.4 組合的總結(jié) 66

7.3 依賴——情人關(guān)系 67

7.3.1 依賴和組合的差別 67

7.3.2 迷人的雙向依賴 68

7.3.3 撲朔迷離的訪問者模式 69

7.3.4 依賴的總結(jié) 74

7.4 總結(jié) 74

第8章 函數(shù)的種類——迷宮的結(jié)構(gòu) 75

8.1 面向?qū)ο蟮暮瘮?shù)叫方法 75

8.2 參數(shù)是函數(shù)的原材料 75

8.2.1 參數(shù)在函數(shù)中的地位 75

8.2.2 參數(shù)存在的形式 76

8.3 返回值對(duì)函數(shù)的意義 76

8.3.1 有返回值函數(shù) 77

8.3.2 void函數(shù) 77

8.4 值傳遞、引用傳遞和指針傳遞 78

8.5 有狀態(tài)函數(shù)和無狀態(tài)函數(shù) 80

8.6 靜態(tài)函數(shù)和普通函數(shù) 82

8.7 能駕馭其他函數(shù)的函數(shù) 84

8.8 編譯器做過手腳的函數(shù) 84

8.8.1 函數(shù)重載 84

8.8.2 泛型函數(shù) 85

8.9 總結(jié) 86

第9章 面向接口編程——遵循契約

辦事 87

9.1 接口和抽象類——分工其實(shí)挺明確 87

9.2 接口的應(yīng)用場景 89

9.2.1 先簽約,后對(duì)接 90

9.2.2 專注抽象,脫離具體 92

9.2.3 解開耦合,破除纏繞 93

9.2.4 3個(gè)場景的總結(jié) 95

9.3 接口和函數(shù)指針 95

9.3.1 原來是親兄弟 95

9.3.2 接口的優(yōu)勢 96

9.3.3 函數(shù)指針的優(yōu)勢 97

9.3.4 兩兄弟的總結(jié) 99

9.4 函數(shù)指針的應(yīng)用場景 99

9.4.1 簡化版的Command模式 99

9.4.2 行為外包 101

9.4.3 結(jié)尾回調(diào)——異步搭檔 103

9.5 總結(jié) 104

第 10章 if…else的多面性 105

10.1 兩條兄弟語句 105

10.2 if…else的黑暗面 106

10.2.1 永無止境的長長鐵鏈 106

10.2.2 牽一發(fā)而動(dòng)全身 107

10.2.3 其實(shí)黑化不是我的錯(cuò) 108

10.3 開閉原則——if…else的天敵 108

10.3.1 擴(kuò)展和修改的區(qū)別 109

10.3.2 為什么擴(kuò)展比修改好? 110

10.4 化解if…else黑暗面 110

10.4.1 抽出共性 110

10.4.2 利用多態(tài) 112

10.4.3 數(shù)據(jù)驅(qū)動(dòng) 114

10.4.4 動(dòng)態(tài)類型 114

10.5 總結(jié) 116

第 11章 挖掘一件神秘武器——

static 117

11.1 static神秘在哪里? 117

11.2 static的特性 118

11.2.1 對(duì)代碼的直接訪問 118

11.2.2 隔離性和游離性 119

11.2.3 將函數(shù)參數(shù)反客為主 119

11.3 static的應(yīng)用場景 120

11.3.1 實(shí)現(xiàn)工具包函數(shù) 120

11.3.2 實(shí)現(xiàn)單例也有門道 120

11.3.3 實(shí)現(xiàn)類擴(kuò)展 123

11.3.4 讓數(shù)據(jù)互動(dòng)起來 128

11.3.5 構(gòu)建上層建筑 128

11.4 總結(jié) 131

第 12章 把容易變化的邏輯,放在

容易修改的地方 132

12.1 一個(gè)和用戶的故事 132

12.2 一個(gè)和銷售的故事 134

12.3 一個(gè)和產(chǎn)品經(jīng)理的故事 136

12.4 一個(gè)和運(yùn)維的故事 136

12.5 總結(jié) 137

第 13章 隱式約定——猶抱琵琶半

遮面 139

13.1 撥開隱式約定的神秘面紗 139

13.1.1 隱式約定就在你身邊 139

13.2.2 隱式約定的重要特征 141

13.2.3 隱式約定的其他形式 142

13.2.4 隱式約定的風(fēng)險(xiǎn)與缺陷 142

13.2 調(diào)料包數(shù)據(jù) 143

13.3 越簡單的功夫越厲害 145

13.4 總結(jié) 148

第 14章 異常,天使還是魔鬼? 150

14.1 三個(gè)江湖派別 150

14.2 異常的種類 151

14.3 異常的throw:手榴彈什么時(shí)

候扔? 153

14.4 異常的catch——能收炸彈的

垃圾筐 154

14.5 異常的使用技巧 156

14.5.1 看病要趁早 156

14.5.2 不要加大catch的負(fù)擔(dān) 156

14.5.3 避免try花了眼 157

14.5.4 保持克制,不要濫用 157

14.6 總結(jié) 158

第 15章 多線程編程——在混沌中

永生 159

15.1 幾個(gè)基礎(chǔ)概念 159

15.1.1 每個(gè)線程都有獨(dú)立的安全

港——棧區(qū) 159

15.1.2 超乎想象的細(xì)微步驟——

線程安全 160

15.2 互斥——相互競爭 161

15.3 同步——相互協(xié)作 163

15.3.1 同步的本質(zhì) 163

15.3.2 共享變量——一塊公用的

黑板 164

15.3.3 條件變量——用交通燈來

指揮 165

15.3.4 同步和互斥——本是同根

生 165

15.4 異步——各忙各的 166

15.4.1 異步的本質(zhì) 166

15.4.2 等待燒水,順便洗碗 167

15.4.3 明修棧道,暗度陳倉 167

15.4.4 異步和函數(shù)回調(diào) 169

15.4.5 有關(guān)異步的問與答 170

15.4.6 異步總結(jié) 171

15.5 阻塞與非阻塞 172

15.6 總結(jié) 173

第 16章 單元測試——對(duì)代碼庖丁

解?!?74

16.1 單元測試的誕生 174

16.2 單元測試的進(jìn)化 175

16.2.1 大量繁殖 175

16.2.2 尋找盟友 176

16.2.3 劃分地盤 176

16.2.4 反客為主 177

16.3 編寫單元測試的基本原則 178

16.4 如何讓代碼面向單元測試 181

16.4.1 買一個(gè)西瓜,無須先買

菜市場 181

16.4.2 只是演習(xí),不玩真的 183

16.4.3 人機(jī)交互代碼,怎么

攻克? 183

16.5 最后的忠告:無招勝有招 185

16.6 總結(jié) 186

第 17章 代碼評(píng)審——給身體排排毒 187

17.1 排毒要養(yǎng)成習(xí)慣 187

17.2 磨刀不誤砍柴工 188

17.3 經(jīng)驗(yàn)點(diǎn)滴——關(guān)鍵是流程化 188

17.4 11個(gè)案例 189

17.5 總結(jié) 196

第 18章 編程就是用代碼來寫作 197

18.1 程序員與作家的區(qū)別 197

18.2 如何提高寫作水平 198

18.2.1 英語還是躲不了的 198

18.2.2 重視的態(tài)度 198

18.2.3 需要長期的積累 199

18.3 案例解析——咬文嚼字很重要 201

18.4 謹(jǐn)慎對(duì)待注釋 202

18.4.1 必須存在的注釋 203

18.4.2 做做樣子的注釋 203

18.5 總結(jié) 204

第 19章 程序員的精神分裂——

扮演上帝與木匠 205

19.1 一個(gè)腦袋,兩種身份 205

19.2 上帝模式:開天辟地,指點(diǎn)江山 205

19.2.1 “上帝”在干什么 206

19.2.2 和產(chǎn)品設(shè)計(jì)的爭奪 206

19.3 木匠模式:致富只有勤勞一條路 208

19.4 總結(jié) 209

第 20章 程序員的技術(shù)成長——

打怪升級(jí)之路 210

20.1 技術(shù)成長三部曲 210

20.2 碼農(nóng)都是好老師 211

20.3 重視編程效率 212

20.4 盡量通過工作去鍛煉 212

20.5 三分之一的工匠精神 214

20.6 明白架構(gòu)師的含義 214

20.7 總結(jié) 214

第 21章 語言到底哪種好——

究竟誰是屠龍刀 216

21.1 軍隊(duì)的背后是國家實(shí)力的較量 216

21.2 專一和多情哪個(gè)好? 216

21.2.1 切換語言的成本到底有多大? 217

21.2.2 海、陸、空齊備最好 217

21.3 如何快速學(xué)習(xí)一門新語言 218

21.3.1 邊學(xué)邊練 219

21.3.2 抓住該語言的主要特性去學(xué) 219

21.4 總結(jié) 219

第 22章 程序員的組織生產(chǎn)——

讓大家更高效和親密 220

22.1 敏捷開發(fā):及時(shí)反饋,小步快跑 220

22.2 雙人編程:雙人搭配,干活超累 222

22.3 封閉開發(fā):并不是蹲大獄 222

22.4 總結(jié) 223

第 23章 程序員的職業(yè)生涯——

選擇比努力更重要 224

23.1 程序員到底能干多久? 224

23.2 程序員的中年危機(jī) 225

23.3 自問一:你適不適合當(dāng)程序員? 226

23.4 自問二:程序員是否最適合你? 227

23.5 自問三:問問自己有沒有雙門檻 228

23.6 自問四:程序員最適合轉(zhuǎn)什么行? 229

23.7 總結(jié) 230

 


本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)