回首頁  
帳號
 
關於博碩 博碩好讀 校園圖書 MOCC認證 下載教學 元學堂

博碩好讀
  新書推薦
  出版預告
  名家名著
  iT達人祕笈
 

分類索引

 

出版總覽

 

讀者服務

  徵求作者
 
首頁 >> 書籍介紹
 
 
點我可放大圖片
 
書名:Software Mistakes and Tradeoffs中文版:掌握軟體開發中的錯誤、取捨與關鍵決策
書號:MP12304 作者:Tomasz Lelek、Jon Skeet ISBN: 978-626-414-473-5
定價:NT$980元 印刷:單色 頁數:464頁
書籍規格:18.5*23 上市日:2026/3/22 譯者:錢亞宏、盧國鳳 譯
學習定位:初階 本書附件:網路下載範例檔  
前往購買 >> 蝦皮購物 類別:電腦技術  
       
快速前往 快速前往        

 

 
    [名家名著] 37

    Software Mistakes and Tradeoffs中文版:掌握軟體開發中的錯誤、取捨與關鍵決策

    Software Mistakes and Tradeoffs: How to make good programming decisions


    ❝Teddy長期研究Pattern Language,有一個很深的體會:每一個設計決策,都只是「局部的回應」。真正困難的,是把這些局部組織成一個和諧的整體。

    AI可以提供大量「局部解法」,但整合這些解法需要的,是對「這個團隊、這個市場、這個時間點」的情境理解。這種情境沒辦法完全寫成規格書,因為它牽涉到人的能力邊界、組織的演進節奏、技術債的承受極限。這些東西每個專案都不一樣,而且會隨時間改變。這不是AI的context window再怎麼變大就能解決的問題。

    要看見整體,不能只盯著零件。AI幫你把門檻拉低之後,真正稀缺的能力,是在眾多可能性之中,做出有脈絡、能長期承擔的選擇。不是盲目的節制,而是清楚知道代價之後,有意識地決定扛下哪些、放掉哪些。

    如果鄉民們希望自己在AI時代,不只是會下提示詞的PM,而是能為系統負責的架構師,那麼這本書值得細細品味。❞

    ────「搞笑談軟工」板主Teddy Chen 專文推薦


    ❝在軟體工程的實務現場,幾乎沒有哪一個決策是「免費」的。每一次選擇某種架構、某種設計模式、某種API風格,或某種錯誤處理策略,實際上都意味著放棄其他可能性。這些放棄,往往不會在當下立即顯現代價,而是潛伏在未來的維護成本、效能瓶頸、擴充困難、組織協作摩擦與技術債之中。

    《Software Mistakes and Tradeoffs中文版》所關注的,正是這些在實際上線系統(production systems)中反覆出現的取捨問題。本書並不試圖建立一套抽象理論,而是從具體情境出發:在特定背景、限制與壓力之下,團隊如何做出選擇?有哪些替代方案?當時忽略了什麼?哪些後果在事後才浮現?哪些判斷其實是合理的,只是代價延後到未來?

    這樣的視角,使本書成為一本極具實務厚度的工程決策紀錄。❞

    ────博碩文化資深編輯與翻譯 盧國鳳


    ❝真希望我能在職涯更早期就讀到這本書。書中濃縮了許多從實務中得來的寶貴經驗。❞
    ────Dave Corun,Avanade


    ❝清楚而精準地總結了多年軟體工程實務的精華,新手與老手都值得一讀。❞
    ────Rafael Avila Martinez,萬事達卡(Mastercard)


    ❝本書深入剖析程式設計過程中內在的衝突,以及這些衝突如何實際影響你所寫的程式碼。❞
    ────Roberto Casadei,波隆那大學(Università di Bologna)


    ❝精準點出每位軟體開發者都會遇到的核心痛點,並以清楚、具教學性的方式提出解法。❞
    ────Nelson González,通用電氣(General Electric)



    在軟體專案的每一個階段,都充滿了取捨的抉擇。當你在效能、安全性、成本、交付時程、功能與更多因素之間取得平衡時,看似合理的設計選擇,往往會在正式上線後成為問題的根源。

    本書透過一個又一個真實且貼近實務的案例,說明那些在當下「看起來沒錯」的決策,為何會在實際環境中演變成錯誤,同時也帶領讀者思考,當初是否存在更好的選擇。

    兩位作者以數十年的軟體工程經驗為基礎,分享那些令人印象深刻甚至帶點「教訓意味」的錯誤經驗。書中不僅指出問題本身,更搭配具體可行的建議與實務技巧,協助讀者在未來的專案中,做出更成熟、更有前瞻性的設計決策。


    【內容亮點】
    以系統化的方式思考軟體設計
    挑選合適的工具、函式庫與框架
    緊耦合與鬆耦合,兩者如何影響團隊協作與系統演進
    寫出精確、容易實作也容易測試的需求規格
    適合中階至資深的軟體工程師與系統架構師,特別是經常需要對軟體設計與實作方向做出關鍵決策的讀者


    【下載範例程式檔案】
    https://github.com/tomekl007/manning_software_mistakes_and_tradeoffs
 
    齊聲讚譽
    推薦序
    譯者序/編輯導讀
    前言
    致謝
    關於本書
    關於作者
    關於封面插圖

    Chapter 01:概述
    1.1 所有決策與模式的採用都有其代價
    1.2 為何程式設計模式不是萬靈丹
    1.3 為何架構設計模式不是萬靈丹
    重點回顧

    Chapter 02:程式碼重複不一定是壞事:重複與彈性的取捨
    2.1 程式庫間的共用程式碼與重複
    2.2 函式庫與程式碼共用
    2.3 以微服務的形式共用
    2.4 利用重複來增進鬆耦合
    2.5 運用繼承機制透過API設計來減少重複
    重點回顧

    Chapter 03:例外與錯誤處理的設計模式
    3.1 例外的繼承關係
    3.2 在自造程式碼中的最佳錯誤處理模式
    3.3 例外處理的反模式
    3.4 來自第三方函式庫的例外
    3.5 多執行緒環境中的例外
    3.6 使用Try的函式型錯誤處理方式
    3.7 例外處理程式碼的效能比較
    重點回顧

    Chapter 04:彈性與複雜度的取捨
    4.1 穩健但無法擴充的API
    4.2 允許客戶端自行設定度量指標的框架
    4.3 透過hook提供API的擴充
    4.4 透過監聽器提供API的擴充
    4.5 分析API的彈性與維護的成本
    重點回顧

    Chapter 05:過早最佳化與要徑最佳化的取捨:影響程式碼效能的決策
    5.1 在什麼情況下過早最佳化並不好
    5.2 程式碼中的要徑
    5.3 具有潛在要徑的WordsService
    5.4 偵測程式碼中的要徑
    5.5 改善要徑的效能
    重點回顧

    Chapter 06:API在簡潔與維護成本上的取捨
    6.1 作為被其他工具引用的基礎函式庫
    6.2 直接暴露依賴函式庫的設定
    6.3 抽象化依賴函式庫設定的工具
    6.4 新增雲端客戶端函式庫的設定
    6.5 停用與移除雲端客戶端函式庫的設定
    重點回顧

    Chapter 07:有效率地處理日期與時間資料
    7.1 日期與時間資訊的概念
    7.2 準備處理日期與時間資訊
    7.3 實作日期與時間程式碼
    7.4 應該規格化並測試的邊界情況
    重點回顧

    Chapter 08:妥善運用資料落地與記憶體
    8.1 什麼是資料落地?
    8.2 資料的分割與切分
    8.3 跨多個分割合併大型資料集
    8.4 資料處理:記憶體vs.磁碟
    8.5 使用Apache Spark合併
    重點回顧

    Chapter 09:對第三方函式庫引用的取捨:外部也會成為自身的一部分
    9.1 對函式庫的設定負全責:當心那些預設值
    9.2 平行執行模型與可擴展性
    9.3 可測試性
    9.4 第三方函式庫的依賴關係
    9.5 第三方依賴關係的選擇與維護
    重點回顧

    Chapter 10:分散式系統中的一致性與不可分割性
    10.1 至少一次(at-least-once)的傳輸機制
    10.2 去重複函式庫的簡易實作
    10.3 在分散式系統中實作去重複時的常見錯誤
    10.4 讓邏輯具備不可分割性以防止爭用
    重點回顧

    Chapter 11:分散式系統在資訊傳輸上的語意
    11.1 事件驅動架構
    11.2 以Apache Kafka為基礎的生產者與消費者應用程式
    11.3 生產者端的邏輯
    11.4 消費者在傳送上的不同語意
    11.5 運用傳遞保證以提供容錯能力
    重點回顧

    Chapter 12:版本控管與版本相容性
    12.1 關於版本控管
    12.2 套件/函式庫的版本控管
    12.3 網路API的版本控管
    12.4 資料儲存的版本控管
    重點回顧

    Chapter 13:追趕技術趨勢與維護成本的取捨
    13.1 何時該使用依賴性注入框架
    13.2 何時該使用反應式程式設計
    13.3 何時該使用函式型程式設計
    13.4 惰性vs.積極評估與初始化
    重點回顧
 
    ✍作者簡介✍
    Tomasz Lelek
    長期投入於實際上線系統的開發,橫跨多種服務與系統架構,並精通JVM生態系。
    Jon Skeet
    Google資深工程師,以在Stack Overflow上的實務貢獻廣受工程師社群推崇,同時也是《C# in Depth》的作者。
 
 
 
     

博碩文化客服信箱
 

[email protected]

 
文教業務團隊
台北、新北、桃園、基隆、宜蘭、花蓮、金門
汪 玉 鳳
LINE ID:0925177716
0925-177716
[email protected]
助理分機 519
新竹、苗栗、台中、彰化、南投、雲林
嘉義、台南、高雄、屏東、台東、澎湖
林 月 玲
LINE ID:0926858627
0926-858627
[email protected]
助理分機 238
 

 

 
 

 

博碩文化股份有限公司 DrMaster Press Co., Ltd.
台灣新北市汐止區新台五路一段112號10樓A棟
Building A, 10F, No.112, Xintai 5th Rd., Sec.1,Xizhi Dist., New Taipei City 221, Taiwan
Tel:02-2696-2869 Fax:02-2696-2867 劃撥帳號:17484299

Copyright© DrMaster Press Co., Ltd. All Rights Reserved.