注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)軟件設(shè)計(jì)的哲學(xué)(第2版)

軟件設(shè)計(jì)的哲學(xué)(第2版)

軟件設(shè)計(jì)的哲學(xué)(第2版)

定 價(jià):¥69.80

作 者: [美]約翰·奧斯特豪特(John Ousterhout)
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787115655615 出版時(shí)間: 2024-11-01 包裝: 平裝-膠訂
開(kāi)本: 大32開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

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

  本書(shū)深入探討了軟件設(shè)計(jì)中的核心問(wèn)題:如何將復(fù)雜的軟件系統(tǒng)分解為可以相對(duì)獨(dú)立實(shí)現(xiàn)的模塊(例如類(lèi)和方法),從而降低其復(fù)雜性并提高開(kāi)發(fā)效率。本書(shū)首先介紹了軟件設(shè)計(jì)中的基本問(wèn)題,即復(fù)雜性的本質(zhì)。其次,討論了有關(guān)如何處理軟件設(shè)計(jì)過(guò)程的“哲學(xué)”問(wèn)題,如通用設(shè)計(jì)的重要性、與《代碼整潔之道》中設(shè)計(jì)哲學(xué)的對(duì)比,以及如何將重要的東西和不重要的東西區(qū)分開(kāi)等內(nèi)容。最后,總結(jié)了在軟件設(shè)計(jì)過(guò)程中應(yīng)遵循的一系列設(shè)計(jì)原則,以及一系列識(shí)別設(shè)計(jì)問(wèn)題的警示信號(hào)。本書(shū)適合軟件工程師、計(jì)算機(jī)科學(xué)專(zhuān)業(yè)的學(xué)生、教育者、對(duì)軟件設(shè)計(jì)和開(kāi)發(fā)感興趣的自學(xué)者和技術(shù)管理者閱讀。通過(guò)應(yīng)用本書(shū)中的思想,讀者可以最大限度地降低大型軟件系統(tǒng)的復(fù)雜性,從而更快地以更低的成本編寫(xiě)軟件,并構(gòu)建更易于維護(hù)和增強(qiáng)的系統(tǒng)。

作者簡(jiǎn)介

  [美]約翰·奧斯特豪特(John Ousterhout) 斯坦福大學(xué)計(jì)算機(jī)科學(xué)教授,美國(guó)國(guó)家工程院院士,曾任加州大學(xué)伯克利分校的計(jì)算機(jī)科學(xué)教授;獲得了包括ACM軟件系統(tǒng)獎(jiǎng)、ACM Grace Murray Hopper獎(jiǎng)、美國(guó)國(guó)家科學(xué)基金會(huì)總統(tǒng)青年研究者獎(jiǎng)和加州大學(xué)伯克利分校杰出教學(xué)獎(jiǎng)等多項(xiàng)榮譽(yù);聚焦于與構(gòu)建軟件系統(tǒng)的基礎(chǔ)設(shè)施相關(guān)的廣泛主題,包括分布式系統(tǒng)、操作系統(tǒng)、存儲(chǔ)系統(tǒng)、開(kāi)發(fā)框架和編程語(yǔ)言;在工業(yè)界有14年的經(jīng)驗(yàn),創(chuàng)辦了Scriptics 和Electric Cloud兩家公司;Tcl腳本語(yǔ)言的創(chuàng)建者,并且以分布式操作系統(tǒng)和存儲(chǔ)系統(tǒng)的相關(guān)工作而聞名。 譯者: 茹炳晟 騰訊Tech Lead(技術(shù)經(jīng)理),騰訊研究院特約研究員,騰訊集團(tuán)技術(shù)委員會(huì)委員,中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)TF研發(fā)效能SIG主席,“軟件研發(fā)效能度量規(guī)范”團(tuán)體標(biāo)準(zhǔn)核心編寫(xiě)專(zhuān)家,中國(guó)商業(yè)聯(lián)合會(huì)互聯(lián)網(wǎng)應(yīng)用技術(shù)委員會(huì)智庫(kù)專(zhuān)家,中國(guó)通信標(biāo)準(zhǔn)化協(xié)會(huì)TC608云計(jì)算標(biāo)準(zhǔn)和開(kāi)源推進(jìn)委員會(huì)云上軟件工程工作組副組長(zhǎng),國(guó)內(nèi)外各大技術(shù)峰會(huì)的聯(lián)席主席、出品人和Keynote演講嘉賓,公眾號(hào)“茹炳晟聊軟件研發(fā)”主理人。著有技術(shù)暢銷(xiāo)書(shū)《測(cè)試工程師全棧技術(shù)進(jìn)階與實(shí)踐》和《現(xiàn)代軟件測(cè)試技術(shù)之美》等,譯有《現(xiàn)代軟件工程》和《DevOps 實(shí)踐指南(第2版)》等。 王海鵬 1994年畢業(yè)于華東師范大學(xué),獲物理學(xué)理學(xué)學(xué)士學(xué)位和英國(guó)語(yǔ)言文學(xué)學(xué)士學(xué)位;是獨(dú)立咨詢顧問(wèn)、培訓(xùn)講師、譯者和軟件開(kāi)發(fā)者;擁有30年的軟件開(kāi)發(fā)經(jīng)驗(yàn),專(zhuān)注于軟件架構(gòu)和方法學(xué)研究,致力于提高軟件開(kāi)發(fā)的品質(zhì)與效率;翻譯了20余本軟件開(kāi)發(fā)相關(guān)圖書(shū),內(nèi)容涵蓋敏捷方法學(xué)、需求工程、UML 建模和測(cè)試等多個(gè)領(lǐng)域。

圖書(shū)目錄

第 1章 導(dǎo)言 001
1.1 如何使用本書(shū) 004
第 2章 復(fù)雜性的本質(zhì) 007
2.1 復(fù)雜性的定義 007
2.2 復(fù)雜性的表現(xiàn) 009
2.3 復(fù)雜性的原因 012
2.4 復(fù)雜性是增量的 014
2.5 結(jié)論 015
第3章 能工作的代碼是不夠的 017
3.1 戰(zhàn)術(shù)性編程 017
3.2 戰(zhàn)略性編程 019
3.3 投資多少? 020
3.4 初創(chuàng)企業(yè)與投資 022
3.5 結(jié)論 023
第4章 模塊應(yīng)該深 025
4.1 模塊化設(shè)計(jì) 025
4.2 接口包含哪些內(nèi)容? 027
4.3 抽象 028
4.4 深模塊 029
4.5 淺模塊 031
4.6 類(lèi)炎 033
4.7 示例:Java和UNIX I/O 033
4.8 結(jié)論 035
第5章 信息隱藏(和泄漏) 037
5.1 信息隱藏 037
5.2 信息泄漏 039
5.3 時(shí)序分解 040
5.4 示例:HTTP服務(wù)器 041
5.5 示例:類(lèi)過(guò)多 042
5.6 示例:HTTP參數(shù)處理 043
5.7 示例:HTTP響應(yīng)中的默認(rèn)值 045
5.8 類(lèi)內(nèi)的信息隱藏 046
5.9 過(guò)猶不及 047
5.10 結(jié)論 047
第6章 通用模塊更深 049
6.1 讓類(lèi)有點(diǎn)通用 049
6.2 示例:為編輯器存儲(chǔ)文本 051
6.3 更通用的API 052
6.4 通用性帶來(lái)更好的信息隱藏 054
6.5 要問(wèn)自己的問(wèn)題 055
6.6 將專(zhuān)用性向上推(和向下推) 056
6.7 示例:編輯器撤銷(xiāo)機(jī)制 057
6.8 消除代碼中的特例 060
6.9 結(jié)論 061
第7章 不同層,不同抽象 063
7.1 直通方法 064
7.2 接口重復(fù)何時(shí)可行? 066
7.3 裝飾器 067
7.4 接口與實(shí)現(xiàn) 069
7.5 直通變量 070
7.6 結(jié)論 073
第8章 降低復(fù)雜性 075
8.1 示例:編輯器文本類(lèi) 076
8.2 示例:配置參數(shù) 076
8.3 過(guò)猶不及 078
8.4 結(jié)論 078
第9章 合并好,還是分開(kāi)好? 079
9.1 如果共享信息,則合并 081
9.2 如果可以簡(jiǎn)化接口,則合并 081
9.3 消除重復(fù),則合并 082
9.4 區(qū)分通用代碼和專(zhuān)用代碼 085
9.5 示例:插入光標(biāo)和選擇區(qū)域 086
9.6 示例:?jiǎn)为?dú)的日志類(lèi) 087
9.7 拆分和連接方法 089
9.8 不同意見(jiàn):《代碼整潔之道》 092
9.9 結(jié)論 093
第 10章 避免處理異常 095
10.1 為何異常會(huì)增加復(fù)雜性 095
10.2 異常太多 098
10.3 定義錯(cuò)誤不存在 100
10.4 示例:Windows中的文件刪除 100
10.5 示例:Java的substring方法 101
10.6 異常屏蔽 103
10.7 異常聚合 104
10.8 就讓它崩潰 109
10.9 過(guò)猶不及 110
10.10 結(jié)論 111
第 11章 設(shè)計(jì)兩次 113
第 12章 為什么要寫(xiě)注釋?zhuān)?個(gè)借口 117
12.1 好的代碼自己就是文檔 118
12.2 我沒(méi)有時(shí)間寫(xiě)注釋 119
12.3 注釋會(huì)過(guò)時(shí),會(huì)產(chǎn)生誤導(dǎo) 120
12.4 我見(jiàn)過(guò)的注釋都沒(méi)有價(jià)值 121
12.5 寫(xiě)好注釋的好處 121
12.6 不同觀點(diǎn):注釋就是失敗 122
第 13章 注釋?xiě)?yīng)描述代碼中不明顯的內(nèi)容 125
13.1 選擇約定 126
13.2 不要重復(fù)代碼 127
13.3 低層注釋增加精確度 130
13.4 高層注釋增強(qiáng)直觀性 133
13.5 接口文檔 136
13.6 實(shí)現(xiàn)注釋?zhuān)鹤鍪裁春蜑槭裁?,而不是怎么?144
13.7 跨模塊設(shè)計(jì)決策 146
13.8 結(jié)論 149
13.9 13.5節(jié)問(wèn)題解答 150
第 14章 選擇名稱(chēng) 151
14.1 示例:糟糕的名稱(chēng)會(huì)導(dǎo)致缺陷 151
14.2 塑造形象 153
14.3 名稱(chēng)應(yīng)精確 153
14.4 一致地使用名稱(chēng) 157
14.5 避免多余的詞 158
14.6 不同意見(jiàn):Go風(fēng)格指南 159
14.7 結(jié)論 161
第 15章 先編寫(xiě)注釋 163
15.1 拖延的注釋是糟糕的注釋 163
15.2 先編寫(xiě)注釋 164
15.3 注釋是一種設(shè)計(jì)工具 165
15.4 早期注釋是有趣的注釋 166
15.5 早期注釋是否昂貴? 167
15.6 結(jié)論 168
第 16章 修改現(xiàn)有代碼 169
16.1 持續(xù)使用戰(zhàn)略性編程 169
16.2 維護(hù)注釋?zhuān)鹤屪⑨尶拷a 171
16.3 注釋屬于代碼,而非提交日志 172
16.4 維護(hù)注釋?zhuān)罕苊庵貜?fù) 173
16.5 維護(hù)注釋?zhuān)簷z查差異 175
16.6 更高層次的注釋更容易維護(hù) 175
第 17章 一致性 177
17.1 一致性的例子 177
17.2 確保一致性 178
17.3 過(guò)猶不及 181
17.4 結(jié)論 181
第 18章 代碼應(yīng)顯而易見(jiàn) 183
18.1 讓代碼更顯而易見(jiàn) 184
18.2 讓代碼不顯而易見(jiàn)的因素 186
18.3 結(jié)論 190
第 19章 軟件發(fā)展趨勢(shì) 191
19.1 面向?qū)ο缶幊毯屠^承 191
19.2 敏捷開(kāi)發(fā) 193
19.3 單元測(cè)試 194
19.4 測(cè)試驅(qū)動(dòng)開(kāi)發(fā) 196
19.5 設(shè)計(jì)模式 197
19.6 取值方法和設(shè)值方法 197
19.7 結(jié)論 198
第 20章 性能設(shè)計(jì) 199
20.1 如何考慮性能 199
20.2 修改前(后)的度量 202
20.3 圍繞關(guān)鍵路徑進(jìn)行設(shè)計(jì) 203
20.4 示例:RAMCloud的Buffer類(lèi) 204
20.5 結(jié)論 210
第 21章 確定什么是重要的 211
21.1 如何確定什么是重要的? 211
21.2 盡量減少重要的東西 212
21.3 如何強(qiáng)調(diào)重要的東西 213
21.4 錯(cuò)誤 213
21.5 更廣泛的思考 214
第 22章 結(jié)論 215
設(shè)計(jì)原則總結(jié) 217
警示信號(hào)總結(jié) 219

本目錄推薦

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