軟件開發中的決策-權衡與取捨 托馬斯.萊萊克 喬恩.斯基特 9787115635167 【台灣高等教育出版社】

圖書均為代購,正常情形下,訂後約兩周可抵台。
物品所在地:中國大陸
原出版社:人民郵電
NT$635
商品編號:
供貨狀況: 尚有庫存

此商品參與的優惠活動

加入最愛
商品介紹
*完成訂單後正常情形下約兩周可抵台
*本賣場提供之資訊僅供參考,以到貨標的為正確資訊。
印行年月:202411*若逾兩年請先於私訊洽詢存貨情況,謝謝。
台灣(台北市)在地出版社,每筆交易均開具統一發票,祝您中獎最高1000萬元。
書名:軟件開發中的決策-權衡與取捨
ISBN:9787115635167
出版社:人民郵電
著編譯者:托馬斯.萊萊克 喬恩.斯基特
頁數:336
所在地:中國大陸 *此為代購商品
書號:1688662
可大量預訂,請先連絡。

內容簡介

本書詳細闡述如何在設計、規劃和實現軟體時做出更好的決策,通過真實的案例,以抽絲剝繭的方式分析那些失誤的決策,探討還有哪些可能的解決方案,並對比各種方案的優缺點,摸索軟體設計的常青模式。本書通過實例來說明某些決策的後果,例如代碼重複如何影響系統的耦合與演進速度,以及如何在日期和時間信息方面隱藏細微差別。本書還介紹如何根據帕累托法則有效地縮小優化範圍,確保分散式系統的一致性。 通過閱讀本書,讀者很快就可以將作者來之不易的經驗應用到自己的項目中,以預防錯誤並採取更合適的編程決策。 本書適合負責軟體設計與實現決策的中高級開發人員和架構師閱讀。

作者簡介

喬恩·斯基特(Jon Skeet),谷歌高級軟體工程師,微軟C# MVP,擁有近20年C#項目開發經驗。自2002年來,他一直是C#社區、新聞組、國際會議和Stack Overflow網站中非常活躍的技術專家,回答了數以萬計的C#和 NET相關問題,是Stack Overflow上的傳奇貢獻者。

目錄

第1章 引言
1 1 決策的後果與模式
1 1 1 單元測試
1 1 2 單元測試與集成測試的比例
1 2 設計模式及其失效分析
1 3 架構設計模式及其失效分析
1 3 1 可擴展性與彈性
1 3 2 開發速度
1 3 3 微服務的複雜性
小結
第2章 代碼重複不一定是壞事:代碼重複與靈活性的權衡
2 1 代碼庫間的通用代碼及重複代碼
2 1 1 添加新需求導致的代碼重複
2 1 2 實現新的業務需求
2 1 3 結果評估
2 2 通過庫在代碼庫之間共享代碼
2 2 1 共享庫的取捨與不足
2 2 2 創建共享庫
2 3 抽取代碼為一個獨立的微服務
2 3 1 採用獨立微服務方式的取捨與弊端
2 3 2 關於獨立微服務的總結
2 4 通過代碼重複改善松耦合
2 5 利用繼承減少API設計中的重複
2 5 1 抽取出一個請求處理器作為基類
2 5 2 繼承與緊耦合的取捨
2 5 3 繼承與組合的取捨
2 5 4 一貫性的重複與偶然性的重複
小結
第3章 異常及其他——代碼錯誤的處理模式
3 1 異常的層次結構
3 2 代碼異常處理的最佳模式
3 2 1 公共API的已檢測異常處理
3 2 2 公共API的未檢測異常處理
3 3 異常處理的反模式
3 3 1 異常時,關閉資源
3 3 2 反模式:利用異常控制應用流
3 4 源自第三方庫的異常
3 5 多線程環境中的異常
3 6 使用Try以函數式的途徑處理異常
3 6 1 在生產代碼中使用Try
3 6 2 混合使用Try與拋出異常的代碼
3 7 異常處理策略的性能對比
小結
第4章 靈活性與複雜性的權衡
4 1 一個健壯但無法擴展的API
4 1 1 設計一個新組件
4 1 2 從最簡單的代碼開始
4 2 允許客戶使用自己的指標框架
4 3 通過鉤子為你的API提供可擴展性
4 3 1 防範鉤子API的過度使用
4 3 2 鉤子API的性能影響
4 4 通過偵聽器為你的API提供可擴展性
4 4 1 使用偵聽器與鉤子的取捨
4 4 2 設計的不可修改性
4 5 API的靈活性分析及維護開銷的權衡
小結
第5章 過早優化vs熱路徑優化:影響代碼性能的決策
5 1 過早優化是萬惡之源
5 1 1 構建賬戶處理管道
5 1 2 依據錯誤的假設進行優化處理
5 1 3 對性能優化進行基準測試
5 2 代碼中的熱路徑
5 2 1 從軟體系統的角度理解帕累托法則
5 2 2 依據SLA配置線程(併發用戶)數
5 3 具有潛在熱路徑的word服務
5 3 1 獲取每日一詞
5 3 2 驗證單詞是否存在
5 3 3 使用HTTP服務,向外提供WordsService
5 4 檢測你代碼中的熱路徑
5 4 1 使用Gatling創建API的性能測試
5 4 2 使用MetricRegistry度量代碼路徑
5 5 改進熱路徑的性能
5 5 1 為現有代碼創建JMH微基準測試
5 5 2 利用緩存優化word-exists程序
5 5 3 調整性能測試,使用更多的輸入單詞
小結
第6章 API的簡潔性vs維護成本
6 1 一個為其他工具服務的基礎庫
6 1 1 創建雲服務客戶端
6 1 2 漫談認證策略
6 1 3 理解配置的機制
6 2 直接暴露依賴庫的配置
6 3 一個將依賴庫的配置抽象化的工具
6 4 為雲服務客戶端庫添加新的配置
6 4 1 為批處理工具添加新配置
6 4 2 為流處理工具添加新配置
6 4 3 方案對比:用戶體驗的友好性vs維護成本
6 5 棄用刪除雲服務客戶端庫的某個配置
6 5 1 刪除批處理工具的某個配置
6 5 2 刪除流服務中某個配置
6 5 3 兩種方案用戶體驗與維護成本的比較
小結
第7章 高效使用日期和時間數據
7 1 日期和時間信息的概念
7 1 1 機器時間:時間戳、紀元以及持續時間
7 1 2 民用時間:日曆系統、日期時間以及期間
7 1 3 時區、UTC以及UTC偏移量
7 1 4 讓人頭疼的日期和時間概念
7 2 準備處理日期和時間信息
7 2 1 對範疇做限定
7 2 2 澄清日期和時間的需求
7 2 3 使用恰當的庫或者包
7 3 實現日期和時間代碼
7 3 1 保持概念的一致性
7 3 2 通過避免使用默認值提升可測試性
7 3 3 以文本方式表示日期和時間
7 3 4 通過註釋解釋代碼
7 4 有必要單獨指出並測試的極端情況
7 4 1 日曆計算
7 4 2 發生在午夜時分的時區轉換
7 4 3 處理不明確或者跳過的時間
7 4 4 處理不斷變化的時區數據
小結
第8章 利用機器的數據本地性和內存
8 1 數據本地性是什麼
8 1 1 將計算移動到數據處
8 1 2 用數據本地性擴展數據處理
8 2 數據的分區
8 2 1 線下大數據分區
8 2 2 分區和分片的區別
8 2 3 分區演算法
8 3 連接多個分區上的大數據集
8 3 1 在同一台物理機上連接數據
8 3 2 需要數據移動的連接
8 3 3 利用廣播優化連接
8 4 在內存還是磁碟中進
詳細資料或其他書籍請至台灣高等教育出版社查詢,查後請於PChome商店街私訊告知ISBN或書號,我們即儘速上架。
規格說明
運送方式
已加入購物車
已更新購物車
網路異常,請重新整理